JVM内存结构------栈

参考链接:
JVM栈和帧
JVM

JAVA/JVM中栈的官方定义:

每个JVM线程拥有一个私有的 Java虚拟机栈,创建线程的同时栈也被创建。
一个JVM栈由许多帧组成,称之为"栈帧"。
JVM中的栈和C等常见语言中的栈比较类似,都用于保存局部变量和部分计算结果,同时也参与方法调用和返回。

调用方法时,会在栈中压入一个栈帧,用来存储这个方法的参数和局部变量。
方法返回时,栈帧就会弹出,这个方法的局部变量和参数就会清除。

简单的代码:

	public static void main(String[] args) {
		int a = 1;
		int b = 2;
		int c = add(a, b);	
		System.out.println(c);
	}
	public static int add(int a, int b) {		
		int c = a + b;
		return c;
	}

在这个代码块中main方法首先压栈,然后main方法的调用会在栈帧区中压入一个栈帧用于存储局部变量表、操作栈、动态链接、方法出口等信息。
方法入栈执行到方法add时,方法add压栈,add方法的调用会在栈帧区中压入栈帧,即当前栈帧为add方法的栈帧。
add方法压栈add方法return之后,栈帧和方法弹栈将return的值赋值给main方法中的变量c。
完毕之后应该有println方法压栈再弹栈。
最后main方法弹栈。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值