垃圾回收机制

java的内存分配和垃圾回收都是JRE在后台进行的,JRE会负责回收JVM堆中那些不再使用的内存,这种机制称为垃圾回收机制(GC)。

JRE在后台提供一个线程来检测和控制,一般都是在CPU空闲或者是内存不足使自动回收,程序员无法精确控制垃圾回收的时间和顺序。
 
除了回收无用内存外,还可以清楚内存记录碎片,
 
程序员可以通过调用Runtime 的gc()或System.gc()来提醒系统进行垃圾回收。
 
垃圾回收算法:  (1)标记-清除算法
将有用的对象标记,清除掉没标记的对象。会产生碎片化。
      (2)复制算法
将有用的内存复制到另外一块区域,将原来的空间清理掉。用于回收新生代。
      (3)标记-整理算法
将有用的对象标记并放到内存的一端,将区域外的部分清理掉。
      (4)分代回收算法
将java堆分成新生代和老年代,永久代,不同的代使用不同的算法。
新生代       java 堆    (Eden大80%,Survivor0小10%,Survivor1小10%)  Minor
老年代        java堆,    Major(Full    GC)
永久代        方法区。
 
参考连接:http://blog.csdn.net/mccand1234/article/details/52078645
内存泄漏:无用对象持续占有内存或无用对象内存得不到释放。
posted @ 2018-02-09 14:19  -1℃  阅读(107)  评论(0编辑  收藏  举报