java中for循环new出10个对象,引用是1个还是10个,要大神解答,菜鸟就算了
for(inti=1;i<=10;i++){Personp=newPerson();}首先,肯定是在内存创建了10个对象,但我的问题是,引用p在内存有几个,1个还是10个...
for(int i = 1; i <= 10; i++){
Person p = new Person();
}
首先,肯定是在内存创建了10个对象,但我的问题是,引用p在内存有几个,1个还是10个?如果引用p也有10个,那么10个引用都是p,在Java程序中是不被允许的,请问这怎么解释?我研究过这个p应该是有10个,但10个p又不是同一个1个p,有点绕,因为当你改成 final Person p = new Person(); 时候,程序是没问题的,被final修饰的p地址值不许改变,说明内存创建的10个对象,相当于有10个引用指向他们,但是这里我们的引用只有p一个,内存是如何实现的,哪位大神能画一张堆栈内存图解释一下,谢谢大神! 展开
Person p = new Person();
}
首先,肯定是在内存创建了10个对象,但我的问题是,引用p在内存有几个,1个还是10个?如果引用p也有10个,那么10个引用都是p,在Java程序中是不被允许的,请问这怎么解释?我研究过这个p应该是有10个,但10个p又不是同一个1个p,有点绕,因为当你改成 final Person p = new Person(); 时候,程序是没问题的,被final修饰的p地址值不许改变,说明内存创建的10个对象,相当于有10个引用指向他们,但是这里我们的引用只有p一个,内存是如何实现的,哪位大神能画一张堆栈内存图解释一下,谢谢大神! 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询