Write Once Run Anywhere,一次编写多处运行
一、判断垃圾的方法
Java判断垃圾的算法主要是以下两种:
引用计数算法
- 给对象中添加一个引用计数器,当有一个地方引用它,计数器加1,当引用失效,计数器减1,任何时刻计数器为0的对象就是不可能再被使用的 。实现非常简单。
- 没办法解决循环引用问题。比如:对象A有一个引用指向B对象,B也有一个引用指向A,如果A和B都没有被其他对象引用,其实已经是垃圾,但是没办法回收。
- 并不实用,几乎没有主流的编程语言用这种GC判断算法(书本上一般按照这个来讲)
根搜索算法
二、JVM常见的垃圾回收算法
1、标记-清除算法(Mark-Swap)
2、标记-整理算法(Mark-Compact)
3、复制算法(Copying)
4、分代算法(Generational)

深入理解Java虚拟机(四) 垃圾回收机制
原文:http://www.cnblogs.com/shiguangzhe2013/p/6501843.html