如何清除java碎片

来源:百度知道 编辑:UC知道 时间:2024/06/23 14:13:57

JVM具有自己的内存回收机制:
参考http://coreoak.javaeye.com/blog/91594
对象创建->对象丢弃->对象回收
1)对象丢弃
JAVA中的回收机制包含的一种叫引用计数法,用来回收垃圾。当所有对该对象的引用不存在时,则将该对象置于待回收列表中,但并不立即销毁。
2)对象回收
因为对象回收需要较大的系统开销,JAVA中的回收机制包含其它其它算法用于判断何时及如何做回收。一般来说,当满足两个条件:有对象要回收并且系统需要回收,如JVM内容空间紧张时,立即回收。
根据上述,要影响回收的话,可以使用方法:1、把所有对该对象引用移走;2、调用System.gc(),一般来说JVM自己的回收器会在某些情况下自动扫描需要回收的对象,调用该方法可以让扫描提前,但不是立即。
回收时会调用对象的finalize方法,所以可以修改该方法来对控制对象的销毁。不过它与C++中的析构函数不同的地方在于析构函数是在对象离开作用域时调用的。

JVM会自己清理,多数情况下你不用操心

这就是java的好处,它有内存清理机制的!