请问下this本身是储存在栈内存还是堆内存中? 我的理解是this属于一个引用,它本身存的是指向对象的内存地址,而这个对象储存在堆内存中。但它本身是存在栈内存还是堆内存呢? 因为如果按照引用来理解,就相当于以下代码中的s Student s=new Student(); 那这个s是储存在栈内存中,放的值是new出来的学生对象的内存地址。类比的话this应该也是储存下栈内存中的。可是我询问别人得到的答案是存放在堆内存当中,因此感到非常困惑。
理论上应该是s作为指针在栈上,具体的数据在堆上吧。
我昨天又去问了下别人。他说是因为this在对象的方法中使用,所以开辟的内存在堆内存里面,是这样的吗?
@迟睿: 不知道了,得看源码了,是不是类内部的this和Student s = new Student(); 的这个s是两个指针。。
@顾晓北: 好像是的,this是Student类里面的一个方法用到的。