你的位置:首页 > Java教程

[Java教程]五、初始化与清理


一、创建对象时,如果其类有构造器,Java就会在用户有能力操作对象之前自动调用相应的构造器,从而保证了初始化的进行。

 

二、每个重载方法都必须有独一无二的参数类型列表

  如果传入的数据类型小于方法中声明的形式参数类型,实际数据类型就会被提升。

  如果传入的数据类型较大,就得通过类型转换来执行窄化转换。

 

三、如果写的类中没有构造器,编译器就会自动帮你创建一个默认构造器。

 

四、this关键字只能在方法内部使用,表示对“调用方法的那个对象”的引用

  this关键字也可以用于将当前对象传递给其他方法

  使用this在一个构造器中调用另外一个构造器,除构造器内之外,编译器禁止在其他任何方法中调用构造器,并且必须将构造器调用置于最起始处。

  static方法就是没有this的方法,在static方法的内部不能调用非静态方法。

 

五、1.对象可能不被垃圾回收

  2.垃圾回收并不等于“析构”

  3.垃圾回收只于内存有关

  Java中允许在类中定义一个名为finalize()的方法清理内存:一旦垃圾回收器准备好释放对象占用的存储空间,首先调用该方法,并且在下一次垃圾回收动作发生时,才会真正回收对象占用的内存,但是要尽量少地使用这个方法。

  Java虚拟机将采用一种自适应的垃圾回收技术,即 停止-复制 以及 标记-清扫 (<Java编程思想> P90-91)

 

六、如果一个域是静态的基本类型域,且也没有对它进行初始化,那么他就会获得基本类型的标准初值,如果他是一个对象引用,他的默认初始化值为null

  初始化的顺序是先静态对象,而后是非静态对象,静态对象的初始化只执行一次。

  Java允许将多个静态初始化动作组织成一个特殊的“静态子句”

 

七、数组初始化 int[] a1或者int a2[]

  Arrays.toString()方法属于java.util标准类库,它将产生一位数组的可打印版本。

  可变参数列表: Object[] args 或者 Integer... args 等

  可变参数列表与自动包装机制可以和睦相处

 

八、使用enum创建枚举类型

  创建enum时,编译器会自动添加一些有用的特性,会自动创建toString()方法,可以显示实例的名字,ordinal()方法用于表示某个enum常量的声明顺序