java的对象的引用是指java对象在堆中的内存地址么?
RT..
------解决方案--------------------不是,对象的引用是放在栈里面的。对象本身是放到堆里面的。
------解决方案--------------------貌似对象的引用就是那个变量名吧 他是放在栈内存里,而那个对象放在堆内存了。。
例如:
class Person
{
Person()
{
System.out.println();
}
}
class Demo
{
public static void main(String[] args)
{
Person p=new Person();//这个变量名p就是你说的那个对象的引用。new Person()就是新生成的对象
}
}
我也是新手 也搞不大明白 你借鉴一下嘛 肯定还有高手告诉你的 然后你在理解一下吧
------解决方案--------------------是的,引用变量在栈中,它的值如果不是null的话就是一个堆中对象的地址
------解决方案--------------------是啊,不过是虚拟地址。。
------解决方案--------------------是的,对象的引用放在栈中,对象放在堆中,引用指向堆中的地址,来确定其所对应的对象。
------解决方案--------------------
------解决方案--------------------不知道你说的虚拟地址是什么意思,表示地址的方法应该是相对地址+偏移量算出物理地址
------解决方案--------------------引用不是内存地址,是对象的别名,在jvm中有着某种映射关系,将应用与内存地址一一对应起来
------解决方案--------------------应该是虚拟内存地址,因为JAVA堆并不要求物理内存地址要连续,是要使逻辑连续的即可,所以我想应该这部分的内存地址都应该由JVM做过处理的吧。