第五章 初始化与清理
构造器
- Java为对象分配空间时,会调用相应的构造器。java类默认有一个无参构造器,构造器和类名相同,没有返回值。如果定义了有参构造器,那么就无法调用无参构造器了,如果要使用需要在类内显式定义。
- 多个构造器,都是同名的,只是参数不同,这就是 重载(overload)。方法重载与类型转换,当无法找到对应参数的方法时,会找到更高精度的方法。例如char类似如果找不到对应参数的方法,会调用int参数的方法。
- 可以在构造器中调用构造器。
this 关键字
如果需要在方法内部获取当前对象的引用,可以使用 this 关键字。this关键字能在方法内部使用,而且不能是静态方法(因为静态方法不需要实例对象)。
初始化的顺序
- 静态变量
- 静态初始化块
- 变量
- 初始化块
- 构造器
可变参数列表
void f(int required, Object... args) {
#use required
#foreach args
}
枚举类 enum
- 默认从0开始排序
- 会自动产生
toString()
,ordinal()
等方法,ordinal这个方法表示枚举常量的声明顺序。
清理
Java中使用垃圾回收器清理无用的对象,由jvm决定回收的时间,程序员只能通过```System.gc```建议回收,但不一定生效。
finalize 的使用
finalize() 在对象进行垃圾回收的时候调用,可以做一些清理工作,并且每个对象只会调用一次。因为调用finalize的时候,可以把把该对象“救活”,在第二次回收时,不会再执行。
关注我的公众号