内存模型中的局部变量和对象是什么?

时间:2017-03-29 11:30:05

标签: java

我有一个下面给出的课程。在这个类中,将要存储在堆中的变量是什么,以及将存储在Java内存模型的Thread堆栈中的变量是什么。我知道局部变量存储在堆栈中,对象存储在堆中。但我需要从给定的课程解释。

class School {

     public int id =1;

     public Student student=new Student();;

     public void method(Student st, int f ){

        Student stud = new Student();
        int fees = 100;
    }

}

感谢

1 个答案:

答案 0 :(得分:0)

Student stud是对象的引用,而不是对象。引用在堆栈上,对象在堆上。

Student stud = new Student();
        ^            ^
reference on stack   object on heap

注意:使用Escape Analysis,对象也可以放在堆栈中,尽管这是您通常不需要知道的优化。