![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
深入理解Java虚拟机
火贪三刀
这个作者很懒,什么都没留下…
展开
-
深入理解JVM(1)—Java虚拟机基本结构
最近开始看周志明著的《深入理解Java虚拟机》一书,此书作为Java虚拟机的经典畅销书,果然是非常优秀的,在学习它的过程中逐渐理解了Java运行机理、内存分配与回收等知识,收获颇多。 要学习Java虚拟机,首先要了解其历史与基本构造。Java虚拟机的发展历史不做详述,大家只要知道SunJDK和OpenJDK中所带的是HotSpot虚拟机,我们之后的学习也是基于HotSpot虚拟机就可以了。原创 2016-03-12 15:36:41 · 3184 阅读 · 0 评论 -
深入理解JVM(3)—垃圾回收
Java内存分为五个部分,其中程序计数器、虚拟机栈、本地方法栈三个区域是线程私有的,随线程生而生,随线程灭而灭。方法区和Java堆的分配和回收则是动态的,内存的回收也是针对这部分内存的。1、如何确定对象已死? 要对对象进行回收,就需要判断对象是否已经“死去”(即接下来程序不再使用它或者很长一段时间不再使用它)。常用的方法是:(1)引用计数算法 给对象添加一个引用计数器,每当有地方使用它原创 2016-03-20 20:22:55 · 687 阅读 · 0 评论 -
深入理解JVM(2)—Java虚拟机内存区域
在Java项目中,内存的分配与回收由Java虚拟机进行管理,为开发者省去了回收内存的工作。不过,当出现内存泄漏和溢出问题的时候,如果不理解虚拟机的内存管理,就会很难发现问题。 Java虚拟机的内存结构如图: 虚拟机内存包括左侧的方法区、堆和右侧的虚拟机栈、本地方法栈和程序计数器。其中左侧的两个区为线程共享区,右侧为线程所私有,随线程的销毁而收回。 程序计数器与操作系统中的程序计数器功能非常原创 2016-03-15 22:28:10 · 664 阅读 · 0 评论