Thinking in Java 第五章 控制执行流程

第五章 初始化与清理


构造器

  • Java为对象分配空间时,会调用相应的构造器。java类默认有一个无参构造器,构造器和类名相同,没有返回值。如果定义了有参构造器,那么就无法调用无参构造器了,如果要使用需要在类内显式定义。
  • 多个构造器,都是同名的,只是参数不同,这就是 重载(overload)。方法重载与类型转换,当无法找到对应参数的方法时,会找到更高精度的方法。例如char类似如果找不到对应参数的方法,会调用int参数的方法。
  • 可以在构造器中调用构造器。

this 关键字

如果需要在方法内部获取当前对象的引用,可以使用 this 关键字。this关键字能在方法内部使用,而且不能是静态方法(因为静态方法不需要实例对象)。

初始化的顺序

  1. 静态变量
  2. 静态初始化块
  3. 变量
  4. 初始化块
  5. 构造器

可变参数列表

void f(int  required, Object... args) {
   #use required
   #foreach args
}

 

枚举类 enum

  • 默认从0开始排序
  • 会自动产生 toString() , ordinal() 等方法,ordinal这个方法表示枚举常量的声明顺序。

清理

Java中使用垃圾回收器清理无用的对象,由jvm决定回收的时间,程序员只能通过“`System.gc“`建议回收,但不一定生效。

finalize 的使用

finalize() 在对象进行垃圾回收的时候调用,可以做一些清理工作,并且每个对象只会调用一次。因为调用finalize的时候,可以把把该对象“救活”,在第二次回收时,不会再执行。

 

关注我的公众号

只说一点点点点

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据