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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© faith 中级黑马   /  2014-4-14 13:34  /  1335 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package javaTest;
public class ArrayTest{
public static void main(String[] args){
Person[] students;
students = new Person[2];
Person zhang = new Person();
zhang.age = 15;
zhang.height = 158;
Person lee = new Person();
lee.age = 15;
lee.height = 161;
students[0] = zhang;
students[1] = lee;
lee.info();
students[1].info();
}
}
最终结果
我的年龄是:15,我的身高是:161.0
我的年龄是:15,我的身高是:161.0
执行Person[] students;代码时,这行代码仅仅在栈内存定义了一个引用变量 就是一个指针,
这个指针并没指向任何有效的内存区 在栈内存中定义了一个students变量,他仅仅是一个引
用并未指向任何有效内存。直到初始值:null,这意味着依然不能直接使用student数组元素
两个对象指向同一个内存区 所以修改zhang变量所指向的Person实例的Field,所修改的其实
是同一个内存区,所以必然互相影响。同理,Lee和students[1]也是引用同一个Person对象,
具有相同的效果。

1 个回复

倒序浏览
搜噶,顶一个,等你爱我
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马