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