自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 虚拟机执行子系统 类文件结构之二 属性表集合 学习笔记(《深入理解java虚拟机》之八 类文件结构)

Class文件结构 属性表集合(attributes_count,attributes) 最后两项就是属性表集合了 属性表(attribute_info)在前面的讲解之中已经出现过数次,在Class文件、字段表、方法表都可以携带自己的属性表集合,以用于描述某些场景专有的信息。 与Class文件中其他的数据项目要求严格的顺序、长度和内容不同,属性表集合的限制稍微宽松了一些, (宽松了哪...

2019-02-20 18:00:20 1191

原创 虚拟机执行子系统 类文件结构之一 学习笔记(《深入理解java虚拟机》之七 类文件结构)

目录 无关性的基石 Class类文件的结构 魔数与Class文件的版本(magic,minor_version,major_version) 常量池(constant_pool_count, constant_pool) 访问标志(access_flags) 类索引、父类索引与接口索引集合(this_class,super_class,interfaces_count,interfac...

2019-02-18 18:35:27 353

原创 JVM 垃圾收集器 学习笔记(《深入理解java虚拟机》之六 垃圾收集)

目录 新生代收集器 Serial收集器 ParNew收集器 Parallel Scavenge收集器 老年代收集器 Serial Old收集器 Parallel Old收集器 CMS收集器 Removed GC Options G1收集器 Basic Concepts Heap Layout Garbage Collection Cycle 如果说收集算法是内存回收的方...

2019-01-09 17:14:45 594 1

原创 JVM HotSpot的算法实现笔记(《深入理解java虚拟机》之五 HotSpot的算法实现理解)

枚举根节点 (如何枚举/知道/列出 所有GC-ROOTs)   从可达性分析中从GC Roots节点找引用链这个操作为例,可作为GC Roots的节点主要在全局性的引用(例如常量或类静态属性)与执行上下文(例如栈帧中的本地变量表)中,现在很多应用仅仅方法区就有数百兆,如果要逐个检查这里面的引用,那么必然会消耗很多时间。(由于逐个检查会消耗很多时间,所以下下段是这么解决的)   (这里说明...

2019-01-08 18:33:49 282

原创 JVM 垃圾收集算法笔记(《深入理解java虚拟机》之四 垃圾收集算法理解)

 标记-清除算法 最基础的收集算法是“标记-清除”(Mark-Sweep)算法,如同它的名字一样,算法分为“标记”和“清除”两个阶段: 一:首先标记出所有需要回收的对象 二:在标记完成后统一回收所有被标记的对象 之所以说它是最基础的收集算法,是因为后续的收集算法都是基于这种思路并对其不足进行改进而得到的。它的主要不足有两个: 一:是效率问题,标记和清除两个过程的效率都不高; 二:是空间问...

2019-01-08 16:27:23 270

原创 JVM 对象生与死 学习笔记(《深入理解java虚拟机》之三 对象已死吗?)

    其中程序计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而灭;栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作。每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的,因此这几个区域的内存分配和回收都具备确定性,在这几个区域内就不需要过多考虑回收的问题,因为方法结束或者线程结束时,内存自然就跟随着回收了。而Java堆和方法区则不一样,一个接口中的多个实现类需要的内存...

2019-01-08 11:16:26 249

原创 JVM 对象创建内容学习笔记(《深入理解java虚拟机》之二 对象创建内容)

这部分看的时候手写了笔记,于是偷懒一下好了     P48,49的内容: 2.3.3 对象的访问定位 建立对象是为了使用对象,我们的Java程序需要通过栈上的reference数据来操作堆上的具体对象。由于 reference类型在Java虚拟机规范中只规定了一个指向对象的引用,并没有定义这个引用应该通过何种方式去定 位、访问堆中的对象的具体位置,所以对象访问方式也是取决于虚拟...

2019-01-08 10:35:41 226

原创 JVM 运行时数据区域 学习笔记(《深入理解java虚拟机》之一运行时数据区域理解)

整理笔记: 详细说明: 运行时数据区域图示 程序计数器 《深入理解java虚拟机》原文解释:         程序计数器(Program Counter Register)是一块较小的内存空间,它可以看作是当前线程所执行的字节码的 行号指示器。在虚拟机的概念模型里(仅是概念模型,各种虚拟机可能会通过一些更高效的方式去实现),字节码 解释器工作时就是通过改变这个计数器的值来选取...

2018-07-05 17:06:44 302

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除