栈内存结构
java中的栈是什么
- 栈是JVM中的一块特殊的内存区域,而JVM也是操作系统创建出来的一个进程,对于每一个程序来说,内存的使用都要通过操作系统来管理,java为了让内存管理起来更加方便,在JVM启动的时候,直接从操作系统中申请一大块内存,自行管理
- JVM对申请到的一大块内存进行进一步的区域划分,其中的一块区域就叫做栈。
- 栈内存:方法调用的时候,该方法需要的空间在栈内存分配;
方法不调用的时候不会再栈中分配空间的
方法只有在调用的时候才会分配空间,并且调用的时候就是压栈
方法执行结束之后,该方法所需要的空间就会释放,此时发生弹栈动作 - 方法调用叫做:入栈,压栈。分配空间;
- 方法结束叫做:出栈,弹栈。释放空间;
栈内存的图示
栈内存的特点:
1、先进后出原则;
2、处于栈顶的元素具有活跃权
3、栈帧永远只主指向的是栈顶部的元素;
方法调用的过程
我们在main方法中调用fun1方法,并在fun1方法中调用fun2方法,
每个方法都进行了开始和结束的提示。
public class MethodTest01 {
public static void main(String[] args) {
System.out.println("main begin");
fun1();
System.out.println("main over");
}
public static void fun1() {
System.out.println("fun1 begin");
fun2();
System.out.println("fun1 over");
}
public static void fun2() {
System.out.println("fun2 begin");
System.out.println("fun2方法正在执行");
System.out.println("fun2 over");
}
}
运行结果