
深入理解java虚拟机
凌晨写博客
万行天书平地起,耗尽三千烦恼丝
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
深入理解java虚拟机(三)——类加载器
1 类的加载时机虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型,这就是虚拟机的类加载机制。在java语言中,类型的加载、连接和初始化过程都是在程序运行期间完成的,java语言天生可以动态扩展的语言特性就是依赖运行期动态加载和动态连接这个特点实现的。java虚拟机规范中并没有进行强制约束,这点可以交给虚...原创 2019-12-30 21:28:57 · 246 阅读 · 0 评论 -
深入理解java虚拟机(二)——垃圾收集算法与垃圾收集器
1 对象的死亡判断1.1 引用计数法给对象中添加一个引用计数器,每当一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的。缺点:很难解决对象之间循环引用的问题。1.2 可达性分析算法通过一系列称为“GC Roots”的对象为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链,当一个对象到GC Roots没有任...原创 2019-12-27 10:11:28 · 312 阅读 · 0 评论 -
深入理解java虚拟机(一)——Java内存区域与内存溢出
1 运行时数据区域(1)程序计数器:线程私有,当前线程所执行的字节码的行号指示器。执行java方法时,计数器指示的是字节码指令的地址;执行Native方法时,计数器值为null。并且此区域是唯一一个java虚拟机规范中没有规定任何OOM情况的区域。(2)java虚拟机栈:线程私有,生命周期与线程相同,描述的是java方法执行的内存模型:每个方法在执行是都会创建一个栈帧用于存...原创 2019-12-13 11:08:17 · 276 阅读 · 0 评论