
JAVA虚拟机
Zackpard
这个作者很懒,什么都没留下…
展开
-
JAVA虚拟机对象内存布局和访问定位-《深入理解JAVA虚拟机》读书笔记
深入理解java虚拟机做的一些总结笔记原创 2016-07-30 16:50:24 · 392 阅读 · 0 评论 -
Java虚拟机对象的创建-《深入理解Java虚拟机》读书笔记
根据《深入浅出JAVA虚拟机》而总结的一下笔记,总结了一下一个对象的JAVA虚拟机中的创建过程原创 2016-07-30 13:13:45 · 415 阅读 · 0 评论 -
运行时数据区域-《深入理解JAVA虚拟机》
运行时数据区域java虚拟机在执行的时候会将内存划分为不同的数据区域,这些区域有各自的用途,如下图所示: 数据区域分为:方法区,堆,虚拟机栈,本地方法栈,程序计数器 程序计数器:占据很小的一段内存,是当前线程的字节码行号指示器,通过改变指示器的值来获取下条指令,程序计数器是线程私有的。如果执行的java方法,那么记录的是正在执行的虚拟机字节码指令的地址,如果执行的是native方法,那么这个计数器原创 2016-07-30 17:49:10 · 767 阅读 · 0 评论 -
对象的生存与死亡
垃圾收集器在对堆中的对象进行回收时,需要先判断对象是否还存活,如果确认该对象已经死亡,才开始回收该对象占用的内存。 判断对象是否死亡的方法有如下几种:引用计数算法算法描述:给对象中添加一个引用计数器,每当有一个地方引用他时,该计数器就+1,引用失效时,计数器-1,任何时候计数器为0时表示没有该对象不可能再被使用,这种时候就可以确认这个对象已经死亡,可以被回收了。这个算法实现起来比较简单,效率也高,原创 2016-08-06 12:37:27 · 415 阅读 · 0 评论 -
Java的<init>,<cinit>与类的初始化顺序
<init>与<clinit><init>Java在编译之后会在字节码文件中生成<init>方法,称之为实例构造器,该实例构造器会将语句块,变量初始化,调用父类的构造器等操作收敛到<init>方法中,收敛顺序(这里只讨论非静态变量和语句块)为:原创 2016-09-19 22:29:12 · 6745 阅读 · 2 评论