jvm 的局部变量表

2019-06-28 10:51:37 浏览数 (1)

Java中方法的局部变量是放在虚拟机栈的局部变量表里面,形参也算一个。本地变量表,就是局部变量表,只是翻译不同。代码说明

代码语言:javascript复制
public static void main(String[] args) {
    byte[] waste = new byte[6 * 1024 * 1024];
	int new_var = 0;  
	System.gc();  
}

反编译得到:

代码语言:javascript复制
public static void main(java.lang.String[]);  
	flags: ACC_PUBLIC, ACC_STATIC      
	Code:
		stack=1, locals=3, args_size=1  
			0: ldc           #2                  // int 6291456   
			2: newarray       byte  
			4: astore_1   
			5: iconst_0   
			6: istore_2   
			7: invokestatic  #3                  // Method java/lang/System.gc:()V   
			10: return

结果:locals=3 也就是说局部变量表长度是3.

0 人点赞