锁定老帖子 主题:深入理解JVM
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2010-09-02
膜拜
还有吗? |
|
返回顶楼 | |
发表时间:2010-09-02
图文并茂,直接清晰,概括的很好。
学习... |
|
返回顶楼 | |
发表时间:2010-09-02
最后修改:2010-09-02
引用 大大,小的觉着怪的是操作数栈明明只能通过load/store/push/pop/ldc/dup/swap指令来操作,操作的单元也是entry而不是slot,但“深度”却还是要把double和long计算为2,多别扭 拿个实际例子来说吧: int i = 10; long l = 10L; 0 bipush 10 # < 10 > 2 istore_1 # < > 3 ldc2_w <Long 10> # < 10Low, 10High > 6 lstore_2 # < > 你看第3条指令,ldc之后,10L占2个槽位(到底是0在第一个槽位还是第2个槽位,其实你自己定都可以),因为这个Long有8个字节,而一个槽位(也就是一个Entry)只有4个字节,当然深度为2罗。 即使 boolean, byte, short, char等类型只需要1bit, 1byte, 2byte, 2byte,但在操作栈及local中,都是以4个字节来占位的。 不过,Object Reference,按照现有的虚拟机规范,是只占一个槽位的,但我估计,在64b的JVM中,实际上是占用2个槽位,除非你启动了 compressed oop选项。 |
|
返回顶楼 | |
发表时间:2010-09-02
看得不是十分的懂,刚接触Java不久···
|
|
返回顶楼 | |
发表时间:2010-09-02
《深入java虚拟机》一直想看,一直却静不下心来看!
|
|
返回顶楼 | |
发表时间:2010-09-03
有一本书叫《深入Java虚拟机》 这篇文章讲的内容,在那本书里面都有相应的内容,而且讲的更加详细。建议楼主看看,
|
|
返回顶楼 | |
发表时间:2010-09-03
NSCoffee 写道 有一本书叫《深入Java虚拟机》 这篇文章讲的内容,在那本书里面都有相应的内容,而且讲的更加详细。建议楼主看看, 的确,是不错,建议大家都看看! |
|
返回顶楼 | |
发表时间:2010-09-03
更一步了解了JVM,顶一个.
|
|
返回顶楼 | |
发表时间:2010-09-03
漂亮,图文并茂,内容也不错。
|
|
返回顶楼 | |
发表时间:2010-09-03
引用 不过,Object Reference,按照现有的虚拟机规范,是只占一个槽位的,但我估计,在64b的JVM中,实际上是占用2个槽位,除非你启动了 compressed oop选项。 我记得JVM规范说Object reference的长度必须被一个JVM word(即槽位)存储,而double/long是两个word。但是JVM word的长度不一定非得是32b,可以是64b。所以,无论是不是64b的JVM,引用类型应该都是1个槽位。 |
|
返回顶楼 | |