![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
深入理解Java虚拟机
三岛专业
现阶段追求的是生活上的自律。
展开
-
深入理解JVM第二章 Java内存区域笔记
jvm运行时内存区域分为:方法区:线程共享,主要用来存储类信息、常量、静态变量、即时编译代码。运行时常量池:属于方法区的一部分,主要存储编译器生成的各种字面量和符号引用 字面量:指常量,如:文本字符串,声明为final的常量值等 符号引用:类和接口的全限定名、字段名称和描述符、方法的名称和描述符虚拟机栈:线程私有,用来描述方法的执行内存模型,主要存储局部变量表、操作数栈、动态链接以及方...原创 2019-06-17 01:27:51 · 134 阅读 · 0 评论 -
深入理解JVM第三章 垃圾收集器与内存分配策略 笔记
如何判断对象是否存活?引用计数算法:给对象添加一个引用计数器,每当有一个地方引用它时,计数器值就加1,当引用失效时,计数器减1,计数器值为0的对象则判定死亡。优点:简单易实现;缺点:很难解决循环引用等问题。 可达性分析算法:通过一系列的称为 GC Root的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链,当一个对象到GC Root没有任何引用链相连时,则证明此对象是不可用...原创 2019-06-19 06:33:06 · 108 阅读 · 0 评论 -
深入理解JVM 第七章 虚拟机类加载机制 笔记
类加载时机类的生命周期:加载、验证、准备、解析、初始化、使用、卸载。其中加载、验证、准备、初始化、卸载的顺序是固定的。虚拟机没有强制规定类加载的时机。但规定当遇到主动引用时,必须要初始化。遇到new、getstatic、putstatic、invokestatic指令时需要初始化 使用反射机制解析一个类时需要初始化 父类先于子类初始化(但不会要求实现的接口先初始化) 虚拟机执行时主类要...原创 2019-06-22 03:44:46 · 124 阅读 · 0 评论