我个人的观点:
垃圾回收器与垃圾存在这样的关系:垃圾回收只在必要的时候启动,它对垃圾的检查是随启动而进行的。诸如如下简单语句:Float a=new Float(3.00F);a=null; 此时垃圾产生,但是垃圾收集并没有随之启动,故在执行垃圾回收时候检索速度很慢,效率低下。好像,现在的垃圾回收技术能再a=null之后,进行垃圾分块但并没有进行收集,从这个意义上来说,a=null之后,垃圾回收机制就已经产生效果了!个人观点而已
垃圾回收器与垃圾存在这样的关系:垃圾回收只在必要的时候启动,它对垃圾的检查是随启动而进行的。诸如如下简单语句:Float a=new Float(3.00F);a=null; 此时垃圾产生,但是垃圾收集并没有随之启动,故在执行垃圾回收时候检索速度很慢,效率低下。好像,现在的垃圾回收技术能再a=null之后,进行垃圾分块但并没有进行收集,从这个意义上来说,a=null之后,垃圾回收机制就已经产生效果了!个人观点而已
画面的线条等等~~~~
而finalize()则更是没有必要使用的一个函数,除非你在Java里面调用了非Java语言写的内容。比如:你用C写的malloc(),则在最后不需要的时候需要用java的finalize()中调用C中相应的函数来把C生成的函数清理掉。Java的GC是不会发现这些用非Java语言生成的对象的。在Java里面,一切都是对象,所以就没有什么东西能够逃离GC。Java的GC还是比较有效率的,看《Think in Java》就知道啦。