![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
文章平均质量分 85
帅气Dee海绵宝宝
这个作者很懒,什么都没留下…
展开
-
深入理解 Java 虚拟机 学习:总结 GC 的知识点,面试问 GC 有这一篇就足够了
GC GC是如何判断对象是否存活 引用计数算法 介绍:给每一个对象添加一个引用计数器,当有引用指向对象时,计数器加一,引用移除时,计数器减一,当计数器为0时,说明对象未被引用,可以回收 存在问题:两个对象互相引用,此时不会被回收。 使用:java虚拟机不采用 根搜索算法 介绍:通过一系列的名为“GC Roots”的对象作为起点,从这些节点向下搜索,经过的路径称为引用链,当一个对象没有引用链即是可回收状态。 java语言中的GC Roots 的对象包括: 1.虚拟机栈中的引用对象 2.方法区中的类静原创 2020-06-12 14:01:09 · 471 阅读 · 0 评论 -
深入理解 Java 虚拟机 学习:Java虚拟机内存区域
一.运行时数据区域 Java 虚拟机在执行 Java 程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁时间,有的区域随着虚拟机进程的启动而存在,有些区域则是依赖用户线程的启动和结束而建立和销毁。根据《 Java 虚拟机规范(第二版)》的规定,Java 虚拟机所管理的内存将会包含以下几个运行时数据区域 1.运行时数据区域图 2.程序设计器: ...原创 2020-04-15 16:38:18 · 253 阅读 · 0 评论 -
深入理解 Java 虚拟机 学习:对象访问
对象访问 学习资料:《 深入理解 Java 虚拟机:JVM高级特性与最佳实践》 对象访问在 Java 语言中无处不在,是最普通的程序行为,但即使是最简单的访问,也会涉及 Java 栈,Java 堆,方法区这三个做重要的内存区域之间的关联关系。 Object obj = new Object(); 这句代码会分成两部分存储 Object obj 这部分的语义会反映到 Java 栈的本地变量表中,作为一个 reference 类型数据出现 new Object() 这部分的语义将会反映到 Java原创 2020-06-10 11:48:00 · 167 阅读 · 0 评论