JVM
文章平均质量分 93
X S
这个作者很懒,什么都没留下…
展开
-
JVM 类加载机制
类是在运行期间第一次使用时动态加载的,而不是一次性加载所有类。因为如果一次性加载,那么会占用很多的内存。 类的生命周期 包括以下 7 个阶段: 加载(Loading) 验证(Verification) 准备(Preparation) 解析(Resolution)(它在某些情况下可以在初始化阶段之后再开始,这是为了支持 Java 语言的运行时绑定特性,也称为动态绑定或晚期绑定) 初始化(Initialization) 使用(Using) 卸载(Unloading) 类加载过程 包含了加载、验证、准备、解原创 2021-01-22 16:39:27 · 105 阅读 · 0 评论 -
JVM 垃圾收集
垃圾收集主要是针对堆和方法区进行。程序计数器、虚拟机栈和本地方法栈这三个区域属于线程私有的,只存在于线程的生命周期内,线程结束之后就会消失,因此不需要对这三个区域进行垃圾回收。 判断一个对象是否可被回收 1.引用计数算 为对象添加一个引用计数器,当对象增加一个引用时计数器加 1,引用失效时计数器减 1。引用计数为 0 的对象可被回收。 在两个对象出现循环引用的情况下,此时引用计数器永远不为 0,导致无法对它们进行回收。正是因为循环引用的存在,因此 Java 虚拟机不使用引用计数算法。 public clas原创 2021-01-21 20:49:14 · 80 阅读 · 0 评论 -
JVM运行时数据区
运行时数据区,JDK 1.6: 运行时数据区,JDK 1.8: 程序计数器(PC寄存器 Program Counter Register) 作用:程序计数器用来存储指向下一条指令的地址。由执行引擎读取下一条指令。 特点:它是一块很小的内存空间,几乎可以忽略不记。也是运行速度最快的存储区域。 每个线程都有它自己的程序计数器,是线程私有的,生命周期与线程的生命周期保持一致。 任何时间一个线程都只有一个方法在执行,也就是所谓的当前方法。程序计数器会存储当前线程正在执行的Java方法的JVM指令地址;如果是原创 2021-01-20 17:44:29 · 91 阅读 · 0 评论