JVM
realRyu
这个作者很懒,什么都没留下…
展开
-
JVM垃圾回收器的工作机制 (转载)
1、 在堆上分配对象的代价十分高昂,然而java的垃圾回收机制可以和其他语言从堆栈上分配空间的速度想媲美,但是,释放对上的存储空间也有开销; 2、 当它工作的时候,将一面回收空间,一面使堆中的对象紧凑排列。这样就尽量避免了页面错误。通过垃圾回收器对对象重新排列,实现了一种高速的、有限空间可供分配的堆模型; 3、 其他系统的垃圾回收机制: a、 引用计数是一种简单但速度...原创 2011-10-31 15:56:46 · 92 阅读 · 0 评论 -
JVM摘要--JVM的结构--01
[color=brown]【题外话】最近在坛子上看到了一篇介绍JVM的牛文,其中提到了一本书《The Java™ Virtual Machine Specification》,由于是英文的,啃起来颇为费劲,所以写一点摘要以免忘记... 写的很零散,主要是给自己看的,望海涵[/color] JVM可以执行的编译后的JAVA代码是与硬件和操作系统无关的二进制文件;一般都存在一个文件当中,即.c...原创 2011-11-08 14:53:17 · 140 阅读 · 0 评论 -
JVM摘要--PC Registers 和 JVM Stacks
[b]1.PC Register(Program Counter Register);[/b] 即程序计数器寄存器 JVM支持同一时间同时运行多个线程,每一个线程都有它们自己的pc register。在同一个时刻,JVM的线程只能运行一个单独方法中的代码,此方法称为该线程的当前方法(Current Method)。 如果这个当前方法不是native的,PC register就指向正在被执行的J...原创 2011-11-09 14:30:04 · 250 阅读 · 0 评论 -
JVM摘要--Heap和Method Area
[b]Heap(堆)[/b] 所有的JVM线程共享一个Heap。 Heap中存放的是所有类的instances和数组。Heap在VM启动时就创建了,堆中的存储空间是由一个自动空间管理系统(也称之为垃圾回收器)来负责回收的;对象从不明确的被释放(Objects are never explicitly deallocated.),JVM没有强调用何种垃圾回收技术。堆的尺寸也可以是固定或者动态增减的...原创 2011-11-09 15:08:23 · 120 阅读 · 0 评论 -
JVM摘要--Frames
[b]Frames (帧)[/b] [b]帧[/b]是用来存储数据和部分结果(Partial results)的,同时,也用与动态链接,方法的返回值并分发异常等。 当一个方法被调用时,就会创建一个新的帧(即方法和帧是紧密关联的)。当方法调用结束后(包括正常结束或异常退出,比如抛出一个未被捕捉的异常),帧会被销毁。帧是从JVM的栈里得到内存空间的。每一个帧都有它们自己的局域变量数组(Array ...原创 2011-11-09 16:08:43 · 174 阅读 · 0 评论 -
JVM摘要--指令集介绍01
一个JVM的指令包含了1个字节的操作码,该操作码用来表示要操作的动作,然后是0个或多个表示操作码的操作对象:参数或者其他数据。许多指令都没有操作数,而只有一个操作码。 不考虑异常的损耗,JVM解释器的内循环是很有效率的: do{ atomically calculate pc and fetch opcode at pc; If (op...原创 2011-11-14 10:39:40 · 167 阅读 · 0 评论 -
JVM摘要--指令集介绍02
[color=brown]【题外话】由于有大牛在论坛里贴出翻译的《Java虚拟机规范》,我也就不用写那么详细了,哈哈,觉得那里需要写就写一下吧[/color] Java代码的字节码可以通过 javap 命令生成 JVM的指令通用格式为: [ [...]] [] 可以认为,方法的JVM字节码存放在一个Code[]数组中, • 就是该数组中存放的操作码的索引, • 是操...原创 2011-11-17 10:20:36 · 196 阅读 · 0 评论 -
JVM摘要--指令集介绍03
[color=brown] 【题外话】只要学过编译原理,计算机组成类似的课程的,就不会觉得JVM的字节码太难理解。有兴趣的人,只要边看书,边写几个例子后,再javap一下慢慢看几个就大概心里有数了,其实学习JVM的东西,主要是为了让自己对它的运行方式多一些了解,在实际编程过程中心里有个概念,有些特性的底层实现心里有数就行。 毕竟在大多数编程中,JVM的知识不会直接的影响...2011-11-17 14:04:41 · 141 阅读 · 0 评论 -
JVM摘要--Class文件格式
Class文件是JVM虚拟机可以理解的字节码文件,class文件并不是JAVA的专用文件,现在有很多语言都会生成可在JVM上运行的.class文件,比如JRuby,Groovy等等。 这里介绍一下.class文件的具体结构。 Class文件是二进制流,其中包含了一组8为字节为单位的基本单位,其中,各个基本元素之间都是紧密相连的,彼此之间没有空隙。当一个元素的数据...2011-11-24 11:14:20 · 174 阅读 · 0 评论