
Java虚拟机
三大爷的键
这个作者很懒,什么都没留下…
展开
-
Java虚拟机——类文件结构(一)
《深入理解Java虚拟机》第二版 周志明目录第六章 类文件结构 ~p162~无关性基石Class类文件的结构1. 魔数与Class文件的版本2. 常量池3. 访问标志4. 类索引、父类索引与接口索引集合5. 字段表集合 ~p175~6. 方法表集合 ~p178~7. 属性表集合 ~p180~· code属性 ~p182~· Exceptions属性 ~p188~· LineNumberTable属性 ~p189~· LocalVariableTable属性 ~p189~· SourceFile属原创 2020-05-19 07:48:38 · 1168 阅读 · 0 评论 -
Java虚拟机——Java内存区域管理(虚拟机管理的几个运行时数据区域)
Java虚拟机在执行Java程序的过程中会把它所管理的内存划分尾若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范(Java SE 7版)》的规定,Java虚拟机所管理的内存将会包括以下几个运行时数据区域。程序计数器,Java虚拟机栈,本地方法栈,Java堆,方法区,运...原创 2019-07-23 21:02:47 · 170 阅读 · 0 评论 -
Java虚拟机——对象的创建、内存布局、访问定位
对于对象是如何创建、如何布局以及如何访问的,这样的细节问题必须把讨论范围限定在具体的虚拟机和集中在某一个内存区域上才有意义。本文以虚拟机HotSpot和内存区域Java堆为例,探讨对象的分配、布局和访问的全过程。虚拟机遇到一条new指令时,首先将去检查这个指令的参数时候能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类...转载 2019-07-23 21:54:46 · 213 阅读 · 0 评论 -
Java虚拟机——垃圾回收(一)
垃圾收集(Garbage Colection,GC),需要完成三件事情:哪些内存需要回收? 什么时候回收? 如何回收?垃圾收集器主要关注Java堆和方法区这两部分内存,本章后续讨论中的“内存”分配与回收也仅指这一部分内存。哪些内存需要回收Java堆里存放着Java世界中几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事情就是要确定这些对象之中哪些还“存活”着,哪些已经“死去...转载 2019-07-27 22:57:39 · 147 阅读 · 0 评论 -
Java虚拟机——垃圾回收(二)
垃圾收集算法算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象。缺点:一个是效率问题,标记和清除两个过程的效率都不高;另一个是空间问题,标记清除之后会产生大量不连续的内存碎片,空间碎片太多可能会导致以后在程序运行过程中需要分配较大对象时,无法找到足够的连续内存而不得不提前触发另一次垃圾收集动作。 标记 - 清除算法 为解决效...转载 2019-07-27 23:37:17 · 110 阅读 · 0 评论 -
Java虚拟机——垃圾回收(三)
垃圾收集器单线程收集器,是虚拟机运行在Client模式下的默认新生代收集器。他也有着优于其他收集器的地方:简单而高效(与其他收集器的单线程比),对于限定单个CPU的环境来说,Serial收集器由于没有线程交互的开销,专心做垃圾收集自然可以获得最高的单线程收集效率。在用户的桌面应用场景中,分配给虚拟机管理的内存一般来说不会很大,收集几十兆甚至一两百兆的新生代(仅仅是新生代使用的内存,桌面应用基本...原创 2019-08-01 17:32:55 · 142 阅读 · 0 评论