在本例中,在构造函数中调用了一个动态绑定的方法sayHello(),这时,会使用那个方法被覆盖的定义,而这时对象尝未完全构建好,所以School还没有赋值。 因此,可能的话,在构建器中避免调用任何方法,用尽可能简单的方法使对象进入就绪状态。 惟一能够安全调用的是具有final属性的方法。 5.4 对象清除与垃圾回收 new创建对象。 自动清除,清除过程称为垃圾回收。 5.4.1 对象的自动清除 对象回收是由 Java虚拟机的垃圾回收线程来完成的。 系统中的任何对象都有一个引用计数器,当其值为0时,说明该对象可以回收。 String method(){ String a,b; a=new String(“hello world”); b=new String(“game over”); System.out.println(a+b+”Ok”); a=null; a=b; return a; } 5.4.2 System.gc()方法 它是System类的static方法, 它可以要求系统进行垃圾回收。但它仅仅只有建议权。 5.4.3 finalize()方法 关闭打开的文件、清除一些非内存资源等工作需要在对象懂得回收时进行,这可以通过覆盖Object 的finalize()方法来实现。因为系统在回收时会自动调用对象的finalize() 方法。 一般
原创力文档

文档评论(0)