Java虚拟机的内存区域中,程序计数器、虚拟机栈和本地方法栈三个区域是线程私有的,随线程生而生,随线程灭而灭;栈中的栈帧随着方法的进入和退出而进行入栈和出栈操作,每个栈帧中分配多少内存基本上是在类结构确定下来时就已知的,因此这三个区域的内存分配和回收都具有确定性。垃圾回收重点关注的是堆和方法区部分的...
分类:
编程语言 时间:
2014-10-09 16:21:48
阅读次数:
304
Java堆内存被划分为新生代和年老代两部分,新生代主要使用复制和标记-清除垃圾回收算法,年老代主要使用标记-整理垃圾回收算法,因此java虚拟中针对新生代和年老代分别提供了多种不同的垃圾收集器,JDK1.6中Sun HotSpot虚拟机的垃圾收集器如下:图中如果两个垃圾收集器直接有连线,则表明这两个...
分类:
编程语言 时间:
2014-10-09 16:05:28
阅读次数:
313
Java语言从诞生之时就宣称一次编写,到处运行的跨平台特性,其实现原理是源码文件并没有直接编译成机器指令,而是编译成Java虚拟机可以识别和运行的字节码文件(Class类文件,*.class),字节码文件是一种平台无关的中间编译结果,字节码文件由java虚拟机读取,解析和执行,java虚拟机屏蔽了不...
分类:
编程语言 时间:
2014-10-09 14:41:58
阅读次数:
348
深入理解java虚拟机系列(二):垃圾收集器与内存分配策略...
分类:
编程语言 时间:
2014-10-07 14:59:23
阅读次数:
208
主要是阅读《深入理解java虚拟机:JVM高级特性与最佳实践》第二章:Java内存区域与内存溢出异常的笔记。...
分类:
编程语言 时间:
2014-10-04 03:07:25
阅读次数:
250
《深入理解java虚拟机》一书中介绍到jvm的内存溢出情况,对理解jvm的自动内存管理机制有一定帮助,下面通过几个实例来进行说明。 java虚拟机的规范描述中,除了程序计数器外,java堆,虚拟机栈,本地方法区等运行时区都会发生outOfMemoryError的可能。 《1》java堆溢出 ...
分类:
其他好文 时间:
2014-09-16 20:23:11
阅读次数:
187
今天拿到复印到75页概述,估计很少讲解细节的,准备在网上订的《深入JAVA虚拟机 原书第二版》,看来需要2天时间,京东和亚马逊还没有,嗨,毕竟是2000年的书籍,基于jdk1.4的。据说2002年出现一本《java虚拟机规范 1.7SE》,还是比较不错的。2010之后出现了2本国人写的《深入理解Java虚拟机++JVM高级特性与最佳实践》,书的内容比较新,剧很多人反应,学习虚拟机还是要从00年的那本看看。面对正义,所以先找了概述看看。总结几张图,看完基本上了解了。很多细节的白天补上去。毕竟深夜在寝室敲文字会...
分类:
其他好文 时间:
2014-09-11 23:51:02
阅读次数:
309
java类的加载过程。参考书籍:深入理解JAVA虚拟机 书中错误的地方,p222. 字段解析,在解析一个未解析过的字段时,书中说的是先解析字段表的class_index, 但是,字段表示没有class_index, 跟在字节码指令后边的字段的符号引用是CONSTANT_Field_info。 先对其中的cla..
分类:
其他好文 时间:
2014-09-10 03:02:40
阅读次数:
629
在部分的商用虚拟机中,Java 程序最初是通过解释器( Interpreter )进行解释执行的,当虚拟机发现某个方法或代码块的运行特别频繁的时候,就会把这些代码认定为“热点代码”。为了提高热点代码的执行效率,在运行时,即时编译器(Just In Time Compiler )会把这些代码编译成与本地平台相关的机器码,并进行各种层次的优化。...
分类:
编程语言 时间:
2014-09-10 00:30:49
阅读次数:
294
2014年8月29日参考书籍:深入理解java虚拟机我们可以用javap-verbose字节码来直观的查看字节码文件,参考我在《常量池》中的描述,很容易就可以看得懂javap结果中的常量池。那么方法区呢?应该怎么看?这部分在我的参考书籍中有详细的描述,下边,我总结性的描述一下。为了能够..
分类:
编程语言 时间:
2014-09-09 13:33:39
阅读次数:
278