论坛首页 Java企业应用论坛

java指令详解

浏览 15248 次
精华帖 (3) :: 良好帖 (4) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-10-09  
yunzhiyifeng 写道
public  void  getValue(int j) 
    { 
        int i=j; 
        System.out.println(i); 
    }
这段方法里面不是应该有this, i, j三个本地本量么,而stack是2,那哪个没有入栈?

请参考这帖的图吧:虚拟机随谈(一):解释器,树遍历解释器,基于栈与基于寄存器,大杂烩

JVM里每个Java线程都有一个Java方法调用栈,以栈帧为单位;每个栈帧里又有一个操作数栈、局部变量区还有其它一些数据。方法的参数和局部变量是放在这个局部变量区里的,操作数栈则是在表达式求值过程中用来存临时参数、结果的地方。javap看到的stack值就是操作数栈的最大高度,跟局部变量的个数没关系。
0 请登录后投票
   发表时间:2010-10-10  
stack明白了,多谢楼上的兄弟,明白了stack在那里的意思就很容易理解了
0 请登录后投票
   发表时间:2010-10-10  
只是就是不断的积累
0 请登录后投票
   发表时间:2011-02-27  
引用
void V    
int char byte short long float double 都是类型第一个字母(大写)    
boolean 比较特别,用J表示  ,因为B被byte给占用了

boolean用Z,long用J,array用[(JVMS2_4.3.2)
0 请登录后投票
   发表时间:2011-02-27  
william_ai 写道
引用
void V    
int char byte short long float double 都是类型第一个字母(大写)    
boolean 比较特别,用J表示  ,因为B被byte给占用了

boolean用Z,long用J,array用[(JVMS2_4.3.2)



boolean是用Z,我记错了,long  怎么会是J呢?
0 请登录后投票
   发表时间:2011-02-27  
L被class instance占用了
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics