黑马程序员技术交流社区

标题: 对象在内存中的结构 [打印本页]

作者: 海狮    时间: 2015-10-23 22:20
标题: 对象在内存中的结构
对象在内存中的结构:
跟数组储存在内存中的结构类似
Student stu1=new Student("小王",15);
Student stu2=new Student("小花",16);
这里创建了两个新Student对象,并分别把其引用赋值给stu1和stu2
stu1和stu2分别储存了 对应的储存在堆内存Student对象 的引用地址,并被存放在栈内存中
所以stu1,stu2储存的并非对象的数据,而是对象再堆内存的地址。
stu2=stu1;//表示把stu1的引用赋值给stu2
stu2.setName("小红");,//是在操作Student("小王",15)这个对象
同时原来stu2指向的new Student("小花",16)对象由于没有了引用,在不定时之后会被清除,释放内存
这上边涉及基本数据类型作为参数传递和引用数据类型作为参数传递的不同。
在java中,方法参数的传递永远都是传值,而这个值,对于基本数据类型,值就是你赋给变量的那个值。
而对于引用数据类型,这个值是对象的引用,而不是这个对象本身。



作者: 奔跑的小红帽    时间: 2015-10-23 23:12
不错,很好




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2