这段话不知道你在哪里找到的,
Java 是没有析构函数的,甚至连对象销毁的时间都是无法确定的,某个对象不用了以后直接就当成Garbage扔那儿了事,等到虚拟机高兴的时候才gc掉,如果资源比较富裕,可能到有的不用的对象要到虚拟机退出的时候才会销毁。所以java才设置了这么个机制,在销毁垃圾之前调用finalize方法,清理对象构造的时候申请的资源,不然就会有内存泄漏之类的麻烦。gc之前调用finalizer确实很影响效率,更讨厌的是finalizer是用java写的,速度更慢,所以j2me里面sun干脆就把整个finalizer机制取消了,要释放资源自己到本地代码里写去,很痛苦:S, gc是虚拟机的一部分,gc启动两次才回收一块内存的说法我没有看懂,
Java 是没有析构函数的,甚至连对象销毁的时间都是无法确定的,某个对象不用了以后直接就当成Garbage扔那儿了事,等到虚拟机高兴的时候才gc掉,如果资源比较富裕,可能到有的不用的对象要到虚拟机退出的时候才会销毁。所以java才设置了这么个机制,在销毁垃圾之前调用finalize方法,清理对象构造的时候申请的资源,不然就会有内存泄漏之类的麻烦。gc之前调用finalizer确实很影响效率,更讨厌的是finalizer是用java写的,速度更慢,所以j2me里面sun干脆就把整个finalizer机制取消了,要释放资源自己到本地代码里写去,很痛苦:S, gc是虚拟机的一部分,gc启动两次才回收一块内存的说法我没有看懂,
而且java对垃圾搜集机制:在对象不再使用的时候释放它们,但具体何时释放是不知道的。
垃圾搜集机制以低优先级在后台自动运行,没有必要考虑这个问题。
如果真的很在意效率问题,有第三方专门的工具提供处理内存释放问题。