diff --git a/README.md b/README.md index 38cea3f..d58c947 100644 --- a/README.md +++ b/README.md @@ -161,12 +161,14 @@ - 垃圾收集器是什么?它是如何工作的 - 所有的对象实例都在JVM管理的堆区域分配内存 - - 只要对象被引用,JVM就会认为它还存活于进程中。 - - 一旦对象不再被引用,就不能被应用程序所访问, - - 垃圾收集器将删除它并重新声明未使用的内存。 + + 现在一般采用[根搜索算法](http://wiki.jikexueyuan.com/project/java-vm/garbage-collection-mechanism.html)来判断对象是否存活, + + 而不是使用计算被引用次数的方式(它很难解决对象之间的相互循环引用的问题). + + 对于根搜索算法无法到达的对象, + + 垃圾收集器对它会进行标记,在下一次GC时,会被回收并重新声明未使用的内存 - 比较 `Arrays` 和 `ArrayLists`。