自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(5)
  • 收藏
  • 关注

原创 《深入理解 Java 虚拟机》- 笔记 - HotSpot 的垃圾收集算法实现

枚举根节点从可达性分析中从 GC Roots 节点找引用链这个操作为例,可以作为 GC Roots 的节点主要有:全局性的引用(如常量、类静态属性),执行上下文(如栈帧中的本地变量表);有些应用的方法区多达上百兆,如果要逐个检查引用将会消耗很多时间。可达性分析会导致 GC 停顿,因为可达性分析期间整个执行系统被冻结在某个时间点上,期间对象引用关系不会发生变化,将使所有 Java 执行线程停顿。目前主

2017-03-20 19:44:52 237

原创 《深入理解 Java 虚拟机》- 笔记 - 垃圾收集算法

标记 - 清除算法算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象。不足:标记和清除两个过程的效率都不高。标记清除之后会产生大量不连续的内存碎片,空间碎片太多可能会导致以后再程序运行过程中需要分配较大对象时,无法找到足够的连续内存而不得不提前触发另一次垃圾收集动作。复制算法将可用内存按容量划分大小相等的两块,每次只使用其中的一块。当这一块的

2017-03-20 19:41:00 256

原创 《深入理解 Java 虚拟机》- 笔记 - 对象存活判断

引用计数(Reference Counting)算法给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加 1;当引用失效时,计数器就减 1;任何时刻计数器为 0 的对象就是不可能再被使用。但是此算法难以解决对象之间的相互循环引用的问题。可达性分析(Reachability Analysis)算法通过以下列的称为“GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索走过的路径称

2017-03-20 19:29:07 336

原创 《深入理解 Java 虚拟机》- 笔记 - HotSpot 虚拟机对象

对象的创建虚拟机遇到一条 new 指令时,首先去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。在类加载检查通过后,接下来虚拟机将为新生对象分配内存。对象所需内存大小在类加载完成后就可以完全确定下来,为对象分配空间的任务等同于把一块大小确定的内存从 Java 堆中划分出来。内

2017-03-19 20:42:13 230

原创 《深入理解 Java 虚拟机》- 笔记 - Java 运行时数据区域

Java 虚拟机栈Java虚拟机栈(Java Virtual Machine Stacks)是线程私有的,它的生命周期与线程相同。虚拟机栈描述的是 Java 方法执行的内存模型:每个方法在执行的同时都会创建一个栈帧用于存储局部变量表、操作数栈、动态链接、方法出口等信息。每一个方法从调用直至执行完成的过程,就对应着一个栈帧在虚拟机栈中入栈到出栈的过程。局部变量表存放了编译期可知的各种基本数据类型、对象

2017-03-19 20:27:07 369

空空如也

空空如也

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

TA关注的人

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