
JVM
对Java虚拟机的探索与总结
风萧水丶寒
Stay hungry Stay foolish
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JVM类加载机制简单介绍
本文为《深入理解Java虚拟机JVM高级特效与最佳实践(第三版)》一书的摘要总结类加载时机Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程被称做虚拟机的类加载机制。在Java语言中,类型的加载、连接和初始化过程都是在程序运行期间完成的,这种策略为Java应用提供了极高的扩展性和灵活性,Java天生可以动态扩展的语言特性就是依赖运行期间动态加载和动态连接这个特点实现的。类的生命周期:其中加载.原创 2020-06-29 07:34:47 · 4247 阅读 · 0 评论 -
JVM 类文件结构分析
本文为《深入理解Java虚拟机JVM高级特效与最佳实践(第三版)》一书的摘要总结概念介绍Class文件格式采用一种类似于C语言结构体的伪结构来存储数据,这种伪结构中只有两种数据类型:“无符号数”和“表”:无符号数:属于基本数据类型,以u1,u2,u4,u8来代表1,2,4,8个字节的无符号数表:由多个无符号数或其他表作为数据项构成的复合数据类型,为了便于区分,所有表名都习惯性地以"_info"结尾。整体结构:版本号次版本号:JDK1.2到JDK11都没有用,全部固定为0。到了JDK.原创 2020-06-28 11:59:23 · 311 阅读 · 0 评论 -
JVM经典垃圾收集器的简单介绍
本文为《深入理解Java虚拟机JVM高级特效与最佳实践(第三版)》一书的摘要总结HotSpot虚拟机的垃圾收集器:从JDK9开始,Serial+CMS与ParNew + CMS的组合就不再被支持Serial 收集器Serial收集器属于新生代收集器,他是一个单线程工作的收集器,在它进行垃圾收集时,必须暂停所有其他的工作线程,直到它收集完成。Serial+Serial Old收集器的运行过程:Serial收集器是HotSpot虚拟机运行在客户端模式下的默认新生代收集器,他是所有收集器里额外.原创 2020-06-28 11:57:29 · 254 阅读 · 0 评论 -
Java虚拟机——垃圾回收流程与算法
如何判断对象是否不再被引用引用计数法(Referentce Counting)在对象中添加一个引用计数器,每当有一个地方引用,计数器值就加1,当一个引用失效时,计数器值就减1。该方法需要额外的存储空间,虽然算法简单,实现简单,但是会引起一些问题,主流的Java虚拟机都没有采用这种方式。可达性分析法(Reachability Analysis)通过一系列称为“GC Roots”的根对象作为起始节点集,从这些节点开始,根据引用关系向下搜索,搜索构成所走过的路径称为“引用链(Reference Chain原创 2020-05-09 10:41:59 · 334 阅读 · 1 评论 -
Java虚拟机——运行时数据区与对象内存布局
运行时数据区程序计数器记录线程当前正在执行的虚拟机字节码指令的地址;如果正在执行的是本地方法,则计数器值为空(Undefined)。它是程序控制流的指示器,分支,循环,跳转、异常处理、线程恢复等功能都需要依赖这个计数器来完成。Java虚拟机栈它描述了Java方法执行的线程内存模型:每个方法 被调用时,Java虚拟机都会同步创建一个 栈帧,该栈帧用于存放该方法的局部变量表、操作数栈、动态连接、方法出口等信息。方法的调用与完成对应着栈帧的入栈和出栈。在局部变量表中,存放的是:java虚拟机基本原创 2020-05-09 00:00:50 · 238 阅读 · 0 评论