深入理解Java虚拟机读书笔记(一)- java内存区域和垃圾收集

jvm内存模型如下图

垃圾回收:

  方法区: 这部分的垃圾回收性价比低,一般不要求回收,暂认为是永久代

  heap:新生代和永久代之分。永久代主要回收废弃常量和无用的类。

 

垃圾回收算法: 

  1. 标记-清除算法

    标记判断: a) 该类所有实例都已经被回收,也就是heap中,不存在该类任何实例。

          b) 加载该类的ClassLoader已经被回收

          c) 该类对应的java.long.Class对象没有任何地方被引用,无法在任何地方通过反射访问该类的方法。

    问题:1. 效率不高 2.空间问题,造成大量不连续内存碎片。

  2. 复制算法

    内存按容量划成相等的两块,每次只使用其中一块,当这块内存用完,就将还存活的对象都复制到另一块。在把之前使用的内存清理。

    问题:内存空间缩小为原来的一半。

  3.

posted on 2017-10-11 21:18  parkin  阅读(76)  评论(0编辑  收藏  举报

导航