4:初始化与清理
用构造函数确保初始化
new表达式确实会返回这个新创建的对象和reference,但是构造函数本身不返回任何值。
方法的重载
区分经重载的方法
对primitive进行重载
用返回值重载
不能用返回值来区分重载的方法。
默认的构造函数
this关键词
this关键词只能用于方法内部,它负责返回调用这个方法的对象的reference。
static的含义
不能在static方法里调用非static的方法(虽然反过来是可以的),但是却可以不通过对象,直接对类调用static方法。
在构造函数里调用构造函数
清理:finalization和垃圾回收
为什么要有finalize()?
1。对象不一定会被垃圾回收器回收。
2。垃圾回收不是拆构(destruction)。
3。垃圾回收只与内存有关。
你必须亲自进行清理
中止条件
垃圾回收器是如何工作的
指定初始化
用构造函数进行初始化
初始化的顺序是由变量在类的定义里面的顺序锁决定的。
变量的初始化会先于任何方法,甚至是构造函数的调用。
静态数据的初始化
如果尚未创建类的对象,因而其static的成员尚未初始化的话,初始化会先处理其static成员,再处理非static的对象。只有创建第一个对象时,static成员被初始化,此后static对象就不会再作初始化。
显示的静态初始化
静态初始化只运行一次。
非静态的实例初始化
数组的初始化
可以访问的最大的数组下标是length-1
多维数组
总结:本章主要讲述了JAVA初始化方面的机制和一些规则和技巧,也对JAVA的内存回收,垃圾处理机制做了一定的介绍和分析。