之前看过一篇关于return和finally执行顺序的文章,仅在Java的语言层面做了分析,其实我倒觉得直接看bytecode可能来的更清晰一点。
最近一直在看Java虚拟机规范,发现直接分析bytecode更能加深对Java语言的理解。
先看一个只有try-finally,没有catch的例子。
try - finally
public class ExceptionTest {...
分类:
其他好文 时间:
2014-10-19 23:18:20
阅读次数:
225
内存区域 Java虚拟机在执行Java程序的过程中会把他所管理的内存划分为若干个不同的数据区域。Java虚拟机规范将JVM所管理的内存分为以下几个运行时数据区:程序计数器、Java虚拟机栈、本地方法栈、Ja...
分类:
编程语言 时间:
2014-10-15 13:58:11
阅读次数:
217
转载出处:http://blog.csdn.net/wind5shy/article/details/8349559模型JVM运行时数据区域JVM执行Java程序的过程中,会使用到各种数据区域,这些区域有各自的用途、创建和销毁时间。根据《Java虚拟机规范(第二版)》(下文称VM Spec)的规定,...
分类:
其他好文 时间:
2014-09-15 19:05:39
阅读次数:
360
今天拿到复印到75页概述,估计很少讲解细节的,准备在网上订的《深入JAVA虚拟机 原书第二版》,看来需要2天时间,京东和亚马逊还没有,嗨,毕竟是2000年的书籍,基于jdk1.4的。据说2002年出现一本《java虚拟机规范 1.7SE》,还是比较不错的。2010之后出现了2本国人写的《深入理解Java虚拟机++JVM高级特性与最佳实践》,书的内容比较新,剧很多人反应,学习虚拟机还是要从00年的那本看看。面对正义,所以先找了概述看看。总结几张图,看完基本上了解了。很多细节的白天补上去。毕竟深夜在寝室敲文字会...
分类:
其他好文 时间:
2014-09-11 23:51:02
阅读次数:
309
VM运行时数据区域:根据《Java虚拟机规范(第二版)》的规定,JVM包括下列几个运行时区域:我们思考几个问题:1.jVM是怎么运行的?2.JVM运行时内存是怎么分配的?3.我们写的java代码(类,对象,方法,常量,变量等等)最终存放在哪个区?VM运行时数据区域:1.程序计数器(program C...
分类:
编程语言 时间:
2014-08-19 18:58:16
阅读次数:
315
自动内存管理机制 Java虚拟机(JVM)在执行Java程序过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有的区域则是依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范 第2版》规定,运行时数据区包....
分类:
编程语言 时间:
2014-08-07 22:01:56
阅读次数:
349
很多人认为方法区(或者HotSpot虚拟机中的永久代)是没有垃圾收集的,Java虚拟机规范中确实说过可以不要求虚拟机在方法区实现垃圾手机,而且在方法区进行垃圾收集的“性价比”一般比较低:在堆中,尤其是在新生代中,常规应用进行一次垃圾收集一般可以回收70%~90%的空间,而永久..
分类:
其他好文 时间:
2014-07-29 15:42:19
阅读次数:
246
直接内存并不是虚拟机运行时数据区的一部分,也不是Java虚拟机规范中定义的内存区域,但是这部分内存也被频繁的使用,而且也可能导致OutOfMemoryError异常出现,在JDK1.4中新加入了NIO类,引入了一种基于通道与缓冲区的I/O方式,它可以使用Native函数库直接分配堆外内存,然后..
分类:
其他好文 时间:
2014-07-23 21:15:26
阅读次数:
228
《Java虚拟机规范(Java SE 7版)》作者:Tim Lindholm、Frank Yellin、Gilad Bracha、Alex
Buckley 摘要:第二章 Java虚拟机结构(第1部分)
本规范描述的是一种抽象化的虚拟机的行为,而不是任何一种被广泛使用的虚拟机实现。
2.5 运行时数据区
Java虚拟机定义了若干种程序运行期间会使用到的运行时...
分类:
编程语言 时间:
2014-07-10 20:50:21
阅读次数:
217
《Java虚拟机规范(Java
SE 7版)》作者:Tim Lindholm、Frank Yellin、Gilad Bracha、Alex Buckley 摘要:第二章 Java虚拟机结构(第1部分)
本规范描述的是一种抽象化的虚拟机的行为,而不是任何一种被广泛使用的虚拟机实现。
2.1 Class 文件格式
编译后被Java虚拟机所执行的代码使用了一种平台中立(不依赖于...
分类:
编程语言 时间:
2014-06-25 10:48:16
阅读次数:
272