首页 > 学院 > 开发设计 > 正文

Java编舟录三 外篇ObjectReference 与 数组

2019-11-14 08:54:01
字体:
来源:转载
供稿:网友

java编舟录三 外篇ObjectReference 与 数组

对象引用的作用


Reference: 可以看作一个路标,来指明具体对象在哪个位置,而不是实际的具体事物.专业说法:类似于C语言中的指针效果.Reference: 运行期间只能控制被程序员声明的指定类型对象,不能一会引用到狗,又引用到龙猫身上.Reference: 可以引用为null...null也是一个值,但这个值不会被使用.Reference: 当堆中的对象没有任何引用时,则会被定时被垃圾回收器回收.

PRimitive数据类型和引用


声明两个Dog的引用变量并创建两个Dog对象,将Dog对象赋值给引用变量.现在这2个Dog对象生活在堆上Dog Black = new Dog();Dog White = new Dog(); //引用数2 , 对象数2 此时的Black 与White2个引用变量 在内存的stack上,而创建出来的2个具体狗对象在内存heap.并由垃圾回收器管理声明新的Dog引用变量,但不创建新的Dog对象而将变量White的值赋值给变量yellow,这表示:将White的字节组复制了一份给引用变量yellow.Dog yellow = White; //White 和 yellow 引用到一个对象,相同的字节组复制类似于一只具体的狗有了2种叫法,小黄.小白.都是指那条具体的狗. 引用数3, 对象数2.White = Black //表示Black中字节组赋值给了White,此时White指向了heap中的另一个具体狗对象//狗1被 Black 和 White 引用,而狗2被 yellow引用

heap环境中的生与死


Dog Black = new Dog();Dog White = new Dog(); 声明两个Dog的引用变量并创建两个Dog对象,将Book对象赋值给引用变量.目前这2只new出来的Dog在heap上发呆中..White = Black; 变量Black的字节组赋值给变量White,两者引用变量都指向了同一个对象..此时对象1被抛弃且能够被垃圾回集器处理...对象1已经没有任何引用,变成了无法存取的.White = null;将null赋值给White引用变量,代表着它不再引用任何事物,但是它还是能被用来指定其他Dog的引用变量.对象2还被Black引用着,所以不被垃圾收回器标记:有意义的引用数: 1null引用数: 1可存取的对象:1被抛弃的对象: 1

数组如酒吧中的杯架


primitive数据类型:

1.声明一个int数组变量,数组变量是数据对象的引用.int[] nums;2.创建大小为10的数组,并将它赋值给之前声明为int[]的变量numsnums = new int[5];3.赋值int数组的每一个元素一个int值,在int数组的每个元素都是为int类型的变量nums[0] = 11;nums[1] = 21;nums[2] = 13;nums[3] = 15;理解数组中的每个元素都是变量:1. Java中如需有效率地排列元素时,数组作为最基本的容器可以使用位置索引来快速,随机地存取其中的元素.2. 8种primitive数据变量中的一种,都可以作为元素存储在指定类型的数组中,要不就是引用类型,所以int数组,每个元素都可装载一个int.但是注意:引用数据类型,如Dog[] 每个是装载的是实体对象的引用地址.引用变量只会保存具体对象的引用,Dog数组中的元素也只能存储dog类型对象的引用地址.

数组引用类型:

1. 声明一个Dog数组变量Dog[] pets;2. 创建大小为7的Dog数组,并赋值给前面所声明的Dog[]类型变量petspets = new Dog[5];3. 创建新的Dog对象并将它们赋值给数组的元素,Dog数组中只带有Dog的引用变量..还需要Dog的具体对象pets[0] = new Dog();pets[1] = new Dog();pets[2] = new Dog();pets[3] = new Dog();

最后一点: 数组是个对象,也就是引用数据类型.无论它被定义成primitive还是Reference数据类型,它就是一个对象,JAVA注重类型.数组被声明出来,就只能装入所声明类型的元素..


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表