![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
之井
路漫漫其修远兮
展开
-
【2019秋冬】【面经】JVM
Java运行时数据区/内存区域 程序计数器 虚拟机栈 基本数据类型和对象引用 Java堆 对象实例及数组 本地方法栈 native方法 方法区 被虚拟机加载的类,静态变量,常量,编译后代码 判断常量是废弃常量 看这个常量是否还被引用 判断类是无用类 1.该类不存在任何实例 2.该类的类加载器已经被回收 3.无法通过反射的方法调用该类 垃圾收集算法,特点 1.标记清除 常用于老年代,把要回收的进行标...原创 2020-02-24 20:37:11 · 114 阅读 · 0 评论 -
【2019秋冬】【JVM】深入理解Java虚拟机 第七章
类加载机制:把描述类的文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型 过程:加载,连接(验证,准备,解析),初始化,使用,卸载 解析和初始化可以换顺序,解析在初始化后为动态绑定 按顺序开始,不一定按顺序结束 加载 完成三个步骤(自我理解) 1.通过类的名字来获取class文件 2.把class文件放入方法区 3.生成一个代表该类的class对象,方便...原创 2020-01-04 10:57:06 · 99 阅读 · 0 评论 -
【2019秋冬】【JVM】深入理解Java虚拟机 第三章
哪些内存需要回收? 什么时候回收? 怎么回收? 程序计数器,虚拟机栈,本地方法栈都为线程私有 需要处理的是Java堆和方法区 判断对象是否已死 1.引用计数法 给对象添加一个引用计数器,当有引用时加一,引用失效时减一,当计数器为0时可以回收 实现简单,效率高,但难以解决循环引用问题 2.可达性分析算法 在GC root向下搜索,不和GC Root相连的就是可回收 GC Root可以是: 虚拟机栈(...原创 2020-01-02 17:21:16 · 394 阅读 · 2 评论 -
【2019秋冬】【JVM】深入理解Java虚拟机 第二章
JVM运行时数据区域 1.程序计数器 记录下一条指令地址,线程私有 2.虚拟机栈 线程私有,生命周期与线程相同,每个方法在执行的同时都会创建一个栈帧,用于存储局部变量表,操作数栈,动态链接、方法出口等信息 局部变量表存放编译期可知的基本数据类型(8个)对象引用(reference)和返回地址(returnAddress) 3.本地方法栈 与虚拟机栈类似,虚拟机栈执行Java方法,本地方法栈执行Na...原创 2019-12-29 18:06:27 · 129 阅读 · 0 评论