A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 海狮 中级黑马   /  2015-10-23 22:20  /  278 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

对象在内存中的结构:
跟数组储存在内存中的结构类似
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中,方法参数的传递永远都是传值,而这个值,对于基本数据类型,值就是你赋给变量的那个值。
而对于引用数据类型,这个值是对象的引用,而不是这个对象本身。


1 个回复

正序浏览
不错,很好
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马