Java再学习重要知识点总结
网页右上角应该有目录,不知道你们能不能看到
数字可以用下划线分隔方便我们数清位数
static 修饰符
final修饰符 常量
- final 修饰的类不能被继承
位运算
字符串位置导致输出不同
导包的通配符
* 为通配符
hasNext()…判断输入内容的相关应用
switch注意case穿透,注意写break;
while 和 do while的区别
do while 先执行,再判断,所以至少执行一次
for循环和增强for循环
数组推荐使用for循环,下标更快
相关总结,右上角应该有目录可以更快找到
循化的标签
值传递和引用传递
- 值传递,把原变量a的值拷贝一份赋给新变量b。对新变量b的值进行修改,不改变原变量a的值。
- 引用传递,在使用方法对对象的属性值进行更改时可以体验到,如下图
方法重载
命令行传参
命令行执行找不到或无法加载主类,回退目录到包的上一级,然后用全包名执行
方法的可变参数
内存分析
数组初始化方式
toString方法输出
Arrays类常用方法
稀疏数组(压缩的原理)
OOP面向对象编程
OO表示面向对象的意思
构造器也构造方法
封装
高内聚,低耦合
继承
- final 修饰的类不能被继承
- 所有类都默认继承Object类
- 私有的无法被继承
- 子类默认先使用父类构造方法,super()默认写在子类构造方法里的第一行
super、this
方法的重写
-
静态方法和非静态方法有区别
-
静态方法,方法的调用只跟左边的有关
-
非静态方法,重写。子类重写父类方法,就执行子类的方法
多态方法间的关系
- 父类引用指向子类对象时,子类和父类都有的方法(子类重写了父类的方法),执行子类的,子类没有重写,就执行父类的
instanceof
- 有继承关系才能比较,否则直接报错
代码块
- 匿名代码块,在构造器(方法)之前
- 静态代码块,类加载时直接执行,且只执行一次
- 静态代码块之只执行一次
静态导入包
-
导包前,类名点方法名调用
-
导包后,直接使用
抽象类、抽象方法
- 抽象类里的抽象方法只需要写方法名即可,不需要写的方法体(因为抽象方法必须要被子类重写)
- 抽象类中可以定义普通方法,定义普通方法要有方法体,子类中可以重写也可以不重写。如果不重写,调用的则是父类的方法。
- 抽象类不能new对象,只能被继承
- 抽象类的抽象方法必须被子类重写
- 如果一个类里有抽象方法,那么这个类一定要加abstract修饰(即这个类一定是抽象类)
接口
- 接口中只能声明方法
- 实现接口的类必须重写接口中的方法
- 接口可以多继承
- 接口中定义的属性值,默认加上
public static final
,即为常量(一般不这么干) - 接口中定义的方法默认加上
public abstract
- 接口不能被实例化,不是类,没有构造方法
内部类
- 非静态内部类可以获得外部类的私有属性,并使用外部类的方法
- static内部类,无法访问外部类的非static属性
- 写在方法里的类是局部内部类
- 匿名内部类
- new 接口,紧接着重写方法,返回的是实现了接口的class
异常
- 五个关键字
- try
- catch
- finally 一定会执行
- throw
- throws
捕获异常try catch finally
- try 里的语句一旦出现异常,立刻跳转到catch语句。
- catch括号里填写需要捕获到的异常的类型
- 异常的最高类型是Throwable,包括Error和Exception
- finally不论有没有try到exception都会执行,通常用来处理善后工作,如关闭流等
- finally可以不写
- 捕获多个异常时使用多个catch语句,但是括号里的异常的范围要从小到大写。(只会执行一个catch语句,一旦满足括号里的异常,就不执行其他的catch语句了)
catch 里的异常打印
e.printStackTrace()
打印出来你抓到的什么异常(和你不try系统自动蹦出来的差不多),通常在前面加一行自己的输出信息。
if (b==0){ //主动抛出异常
throw new ArithmeticException();
}
【参考】
B站狂神