Java中方法调用的内存分析

70 阅读1分钟

方法没有被调用的时候,都在方法区中的字节码文件(.class)中存储。

方法被调用的时候,需要进入到栈内存中运行。方法每调用一次就会在栈中有一个入栈动
作,即给当前方法开辟一块独立的内存区域,用于存储当前方法的局部变量的值。
当方法执行结束后,会释放该内存,称为出栈,如果方法有返回值,就会把结果返回调用
处,如果没有返回值,就直接结束,回到调用处继续执行下一条指令。

栈结构:先进后出,后进先出

举例分析:

public class Person {  
    public static void main(String[] args) {  
        Person p1 = new Person();  
        p1.eat();  
    }  
    public static void eat() {  
        sleep();  
        System.out.println("人:吃饭");  
    }  
    public static void sleep(){  
        System.out.println("人:睡觉");  
        doSport();  
    }  
    public static void doSport(){  
        System.out.println("人:运动");  
    }  
}  

内存分析:

image.png