JVM
文章平均质量分 65
借点头发吧
这个作者很懒,什么都没留下…
展开
-
JVM: G1垃圾收集器【思维导图】
G1垃圾收集器堆的逻辑划分堆被划分了多个同等份的区域,每个区域叫做RegionHumongous(大对象)区域存储特别大的对象(大于Region内存的一半)若没有引用指向大对象,就可直接在Minor GC中被回收掉对于「小区域」回收容易控制它的「收集时间」(STW)Minor GC(Young GC)触发时机同之前,等到Eden区满了之后会触发年轻代和老年代占堆空间(有参数设置)会动态根据「最大停顿时间」进行调整,控制MInor GC开销GC过程根扫描同初始化标记.原创 2022-03-14 20:59:52 · 539 阅读 · 0 评论 -
JVM:CMS垃圾收集器【思维导图】
CMS垃圾收集器以获取最短回收停顿为目标,基于标记清除算法运作过程初始标记(STW)GC Roots能直接关联到的对象及「年轻代」指向「老年代」的对象速度快:因为没有「向下追溯」(只标记一层)并发标记从GC Roots向下「追溯」,标记所有可达的对象并发预处理针对老年代的对象:类cardtable扫描可能由于「并发标记」过程中导致老年代发生变化的对象,会再扫描一遍标记为dirty的卡页针对新生代遍历新生代判断在「并发标记」过程中有没有对象引用了老年.原创 2022-03-14 20:53:47 · 212 阅读 · 0 评论 -
JVM:垃圾回收机制【思维导图】
垃圾回收机制判断对象不再被使用 p70可达性分析从GC Roots向下搜(一组一定活跃的引用)只要跟「GC Roots」没有直接或者间接引用相连就是垃圾引用计数被引用+1,引用失败-1,计数器为0时不再被引用缺点:若存在:互相依赖(引用)的A、B,引用计数不为0,导致无法回收垃圾回收算法标记清除【标记】哪些没有被「GC Roots」引用的对象【清除】不被「GC Roots」关联的都清除存在问题【内存碎片】标记复制【标记】【复制】:把「标记」.原创 2022-03-14 16:30:09 · 1029 阅读 · 0 评论 -
JVM的内存结构【思维导图】
JVM的内存结构程序计数器记录各个线程执行的字节码地址如果程序正在执行的是一个java方法,PC Register记录的是正在执行的虚拟机字节码指令的地址如果正在执行一个本地方法,这个PC Register值应该为空虚拟机栈每个方法被执行的时候,JVM同步创建一个栈帧,用于存储。每个方法被调用直至执行完毕,对应一个栈帧在虚拟战中入栈出栈的过程。局部变量表操作数栈动态链接返回地址、方法出口本地方法栈同上指非Java方法,一般本地方法用C实现方法区主要用来存放已被JVM加.原创 2022-03-12 15:45:39 · 1554 阅读 · 0 评论 -
JVM: Java从编译到执行的过程【思维导图】
Java从编译到执行的过程编译语法分析编译语义分析编译注解处理泛型擦除 、lombokclass文件加载加载装载(p263)装载时机为节省内存开销并不会一次性将所有类加载进JVM中。先保证程序正常运行所需要的基础类完全加载,其他类需要的时候再加载。装载规则双亲委派机制类加载器(通过类加载器加载到jvm中)启动(Bootstrap)java核心类库java、javax、sun本地方法拓展(Extension)扩.原创 2022-03-11 13:33:15 · 715 阅读 · 0 评论