在下面这个代码中有以下疑问,求教!
class Person{
String name = "张三";
}
public class Test{
public static void main(String args[]){
Person p = new Person();
}
}
1.当new一个Person对象的时候,引用变量p是存放在栈内存中,而产生的Person对象存放在堆内存中。但是在Person类中的name也是一个引用变量,是不是理解为这个name也是存放在栈内存中,而“张三”是存放在堆内存中?2.如果新产生的Person对象和“张三”都在堆内存中,那两者是什么关系呢?是包含还是独立还是其他的关系?
class Person{
String name = "张三";
}
public class Test{
public static void main(String args[]){
Person p = new Person();
}
}
1.当new一个Person对象的时候,引用变量p是存放在栈内存中,而产生的Person对象存放在堆内存中。但是在Person类中的name也是一个引用变量,是不是理解为这个name也是存放在栈内存中,而“张三”是存放在堆内存中?2.如果新产生的Person对象和“张三”都在堆内存中,那两者是什么关系呢?是包含还是独立还是其他的关系?
解决方案 »
- 一道面試題,两个服务器提供文件共享服务!
- Browser样式的问题
- 考考你你JAVA基础
- 如何缩放任意格式图片?
- 初学Java,帮我看看为何无法通过编译?
- 以前用jdk运行的,现在用jbuilder运行怎么不行啊?!
- JAVA里怎样象C++一样传引用啊?紧急!!!
- rmi中的策略文件*.policy的问题
- JBuilderIDE中怎么才能支持鼠标的滚动轴啊?这都不支持好别扭~
- 我刚刚拿到了SCJP的证书,在证书里还有一份协议,需要填写后寄给sun公司?请问大家这是作什么样用的?
- 怎么样才能入门java呀,请求大家的帮助。都说万事开头难,我都不知道该如何做起!充满了疑惑和迷茫,听的课程都听不懂。究竟该怎么做那,请大哥大姐们多多指教!
- javasocket通讯
楼主看看这篇文章之后就应该理解了
实例变量和对象驻留在堆上,局部变量驻留在栈上。
Person对象和“张三”都在堆内存中,他们没有直接的联系,Person中的变量name是“张三”的引用而已。