1.JVM内存的分类程序计数器当前线程执行的代码的行号虚拟机栈.PDFVIP

  • 46
  • 0
  • 约4.28千字
  • 约 4页
  • 2017-06-28 发布于天津
  • 举报

1.JVM内存的分类程序计数器当前线程执行的代码的行号虚拟机栈.PDF

1.JVM内存的分类程序计数器当前线程执行的代码的行号虚拟机栈

1. JVM 内存的分类 程序计数器:当前线程执行的代码的行号 虚拟机栈: 本地方法栈: Java 堆: 方法区: 运行时常量池(属于方法区): 直接内存: 2. GC 标记对象的死活 A .引用计数法 给对象添加一个引用计数器,没当被引用的时候,计数器的值就加一。引用失效的时候减一, 当计数器的值为0 的时候就表示改对象可以被GC 回收了。 弊端:A-》B,B-》A ,那么AB 将永远不会被回收了。也就是引用有环的情况。 B.根搜索算法GC Roots Tracing 通过一个叫GC Roots 的对象作为起点,从这些结点开始向下搜索,搜索所走过的路径称为 引用链,当一个对象没有与任何的引用链相连的时候则改对象就可以被GC 回收回收了。GC Roots 包括:java 虚拟机栈中引用的对象,本地方法栈中引用的对象,方法区中常量引用的 对象,方法区中静态属性引用的对象。 当一个对象没有出现在引用链的时候,对象的生命就被判了缓刑:如果对象没有重写finalize() 方法或者finalize()方法已经被执行了一次了,这时候对象在GC 来到时候一定会被回收了, 否则会进入一个F-Queue 队列,执行finalize()方法。 3. GC 回收算法 A .标记-清除法:标记出没有用的对象,然后一个一个回收掉。两个问题:效率和空间

文档评论(0)

1亿VIP精品文档

相关文档