jvm
MatrixRevolutions
It takes a strong man to save himself, and a great man to save another.
展开
-
JVM系列二(虚拟机对象创建、布局、定位)
**一 对象创建**Java是一门面向对象的编程语言,在Java程序运行过程中无时无刻都有对象被创建出来。在语言层面上,创建对象(如克隆、反序列化)通常仅仅是一个new关键字而已,而在虚拟机中,对象(文中讨论的对象限于普通Java对象,不包括数组和Class对象等)的创建又是怎么样一个过程呢?虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符原创 2017-07-12 10:19:18 · 411 阅读 · 0 评论 -
JVM系列一(基本结构)
一 JVM基本结构示意图二 JVM结构详解一 程序计数器程序计数器是一块较小的内存空间,它是当前线程所执行的字节码的行号指示器,如果线程执行的是一个Java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址,如果是一个Native方法,则这个计数器的值为空(Undefined). 由于Java虚拟机的多线程是通过线程轮流切换并分配处理器的执行时间来实现的,在任何一个确定的时刻,一个处原创 2017-07-05 14:45:05 · 536 阅读 · 0 评论 -
JVM系列四(大名鼎鼎的GC)
Garbage Collection一 锡安和Matrix我们暂不讨论和深究黑客帝国中的现实世界和虚拟世界,用这部电影来映射此文也有很多牵强并且不恰当的地方,我们的目的是更深刻的理解JVM而已,最后让我们致敬这部思想史上的巨著。1 锡安在Java运行时区域的各个部分,程序计数器,虚拟机栈,本地方法栈三个区域随着线程而生,随线程而灭。 栈中的栈帧随着方法的进入和推出而有条不紊的执行着出栈和入栈操作。原创 2017-07-03 15:08:07 · 319 阅读 · 0 评论 -
JVM系列五(垃圾收集算法)
垃圾收集算法原创 2017-07-12 21:01:39 · 262 阅读 · 0 评论 -
JVM系列六(HotSpot的算法实现)
HotSpot的算法实现在HotSpot上实现对象存活算法和垃圾收集算法时,必须对算法的执行效率有严格的考量,才能保证虚拟机高效运行。一 枚举根节点从可达性分析中从GC Roots节点找引用链这个操作为例,可作为GC Roots的节点主要在全局性的引用(例如常量活静态属性)与执行上下文(例如栈帧中的本地变量表)中,现在很多应用仅仅方法区就有数百兆,如果要逐个检查这里面的引用,那么必然会消耗很多时间。原创 2017-07-17 17:44:39 · 352 阅读 · 0 评论 -
JVM系列七(垃圾收集器)
各种垃圾收集器比较垃圾收集器原创 2017-07-19 22:06:20 · 347 阅读 · 0 评论