我有一个下面给出的课程。在这个类中,将要存储在堆中的变量是什么,以及将存储在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;
}
}
感谢
答案 0 :(得分:0)
Student stud
是对象的引用,而不是对象。引用在堆栈上,对象在堆上。
Student stud = new Student();
^ ^
reference on stack object on heap
注意:使用Escape Analysis,对象也可以放在堆栈中,尽管这是您通常不需要知道的优化。