JAVA虚拟机
风中情
这个作者很懒,什么都没留下…
展开
-
类初始化与类对象初始化
类的生命周期:加载——> 验证、准备、解析——>初始化——>使用——>卸载类初始化进行的5种情况:1.遇到new、getstatic、putstatic或invokestatic这4条字节码指令时,如果类没有进行过初始化,则需要先触发其初始化。生成这4条指令的最常见的java代码场景是:使用new关键字实例化对象的时候、读取或者设置一个类的静态字段(被final修饰的除外),以及调用一原创 2015-08-13 23:26:43 · 1418 阅读 · 0 评论 -
CMS垃圾回收器
一、垃圾回收流程1、初始标记(STW) 1.1、标记老年代中所有的GC Roots对象 1.2、标记老年代中被年轻代中活着的对象引用的对象2、并发标记 2.1、从初始标记收集到的"根"对象引用开始,遍历出所有被引用的对象 PS:因为是并发运行的,在运行期间会发生新生代的对象晋升到老年代、或者是直接在老年代分配对象、或者更新老年代对象的引用关系等等,对...原创 2019-06-20 21:03:16 · 630 阅读 · 0 评论 -
G1垃圾回收器
引言1、垃圾回收器需要做三件事: 分配内存:垃圾回收算法的设计往往制约了内存分配的方式; 确保存活对象不会被回收 回收垃圾对象(垃圾是指那些不再被使用的对象)2、对于垃圾回收器的回收来说,不管算法怎么样,基本思路都是基于以下流程: 扫描得到根节点——>从根节点扫描被引用存活对象——>删除不再应用到的对象一、G1垃圾回收器特点1、G1的...原创 2019-06-20 23:15:52 · 1817 阅读 · 0 评论