虚拟机
可乐不渴了
这个作者很懒,什么都没留下…
展开
-
深入理解Java虚拟机之Javac编译器
#javac编译器(前端编译器)就是把.java(源代码)文件编译成.class(字节码)文件.编译过程----- 1.词法,语法分析 词法分析是将源代码一个字节一个字节的读进来,根据关键字、变量名,字面量,运算符进行做Token标记.就是把Java代码分解,成为一个个独立的词并进行标记,构成标记集合.如下: // Token.PUBLIC Token.VOID Token.TES...原创 2019-06-05 21:30:24 · 466 阅读 · 0 评论 -
深入理解Java虚拟机之运行时数据区
运行时数据区 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域.每个区域都各有用途,以及自己的创建和销毁时间,有的区域随着虚拟机进程的启动而存在,而有的区域则依赖用户线程的启动和结束而建立和销毁.程序计数器 程序计数器(Program Counter Register)是 一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号器.字节码解释...原创 2019-06-06 14:06:33 · 213 阅读 · 0 评论 -
深入理解Java虚拟机之判断对象是否存活算法
判断对象是否存活算法引用计数法 给对象添加一个引用计数器,每当有一个地方引用它时,计数器就加1;当引用失效时,计数器就减1;任何时刻计数器为0的对象就是不可能再被使用的. 引用计数法的实现简单,判断效率很高,.**但主流的Java虚拟机并没有选用引用计数法来管理内存,主要原因是它很难解决对象之间相互循环引用的问题. public class Test{ private Object ...原创 2019-06-06 14:55:46 · 182 阅读 · 0 评论 -
深入理解Java虚拟机之垃圾收集算法
垃圾收集算法标记-清除算法 最基础的收集算法就是"标记-清除"(Mark-Sweep)算法,算法分为"标记"和"清除"阶段,首先标记出所有需要回收的对象,在标记完成后统一回收 所有被标记的对象,它的标记过程其实在上面的对象标记判定时已经介绍过了,之所以说它是最基础的收集算法,是因为后续的收集算法都是基于这种思路并对其不足进行...原创 2019-06-06 15:02:51 · 106 阅读 · 0 评论 -
深入理解Java虚拟机之HotSpot的算法实现
HotSpot的算法实现 上述从理论上介绍了对象存活判定算法和垃圾收集算法,而在HotSpot虚拟机上实现这些算法时,必须对算法的执行效率有严格的考量,才能保证虚拟机高效运行.枚举根节点 从可达性分析中从G...原创 2019-06-06 15:10:24 · 326 阅读 · 0 评论 -
深入理解Java虚拟机之垃圾收集器
垃圾收集器 Java虚拟机规范对垃圾收集器应该如何实现并没有任何规定,因此不同的厂商,不同的版本的虚拟机所提供的垃圾收集器都可能会有很大差别,并且一般都会提供参数供用户根据自己的应用特点和要求组合出各个年代所使用的收集器.这里讨论的收集器基于JDK1.7 Update 14之后的HotSpot虚拟机(在...原创 2019-06-06 16:05:42 · 107 阅读 · 0 评论 -
深入理解Java虚拟机之类加载机制
类的加载机制标签(空格分隔): 未分类类的生命周期加载验证准备解析初始化使用卸载 加载、验证、准备、和卸载,这5个阶段的顺序是确定的,类的加载过程必须按照这个顺序开始,而解析阶段则不一定:它可能在初始化之后才会开始,这是为了支持Java的运行时绑定.五种情况必须对类进行初始化 1.遇见new、getstatic、putstatic...原创 2019-06-06 23:22:28 · 103 阅读 · 0 评论