java中以下的代码,在栈内存和堆内存是怎样运行的,有图解最好了
classDemo{intx=3;publicstaticvoidmain(String[]args){Demod=newDemo();d.x=9;show(newDem...
class Demo
{
int x=3;
public static void main(String[] args)
{
Demo d=new Demo();
d.x=9;
show(new Demo());
System.out.println(d.x);
}
public static void show(Demo d)
{
d.x=4;
}
} 展开
{
int x=3;
public static void main(String[] args)
{
Demo d=new Demo();
d.x=9;
show(new Demo());
System.out.println(d.x);
}
public static void show(Demo d)
{
d.x=4;
}
} 展开
3个回答
展开全部
之前我也是迷糊的看到这些东东。
博大精深,晚生佩服。
上楼的仁兄说的对啊 。
String str = "abc"; 确实是放在常量池中的啊。 栈中只不过存放的是引用啊 。我是这么理解的。
博大精深,晚生佩服。
上楼的仁兄说的对啊 。
String str = "abc"; 确实是放在常量池中的啊。 栈中只不过存放的是引用啊 。我是这么理解的。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
栈里有两个变量d,进入main时创建一个,进入show方法是创建一个,各自都指向堆里的不同的对象。
追问
show(new Demo());语句,是在堆中新建一个对象,那么内存分配给这个对象的地址是指向哪个变量的?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询