Java中,在堆的资源分配是比较高昂的。而垃圾回收期可以提高对象的创建速度。
假如某些对象在执行完某个操作的时候,不用了,随着程序的运行,这些废对象所占资源就比较的大。
为了解决这些问题,可以用:
一:堆指针
只是简单的移动到未分配的空间。不过这种方式在Java虚拟机中并没有很广用,因为如果多次移进移出。会严重的影响调度的效率
二:引用计数的方式
当有引用连接到对象的时候,引用计数+1,假如该引用离开了开始的作用域的时候或者被置为空的时候,,则引用计数-1,垃圾回收器在执行过程中呢,他会遍历所有对象,如果该引用为0,则立即释放,但是存在缺陷:例如:这个对象本应该被回收,可是他的因引用计数不为0的时候,此对象包含所有的引用....反正也就是说效率低了,对象变成死的。这种方式没有采用
三:自适应的回收机制
。。。。抱歉搞不懂,,,,,以后再补充。。。。。(停止-复制,标记-清扫)