Java编舟录三 外篇ObjectReference 与 数组
2017-02-05 17:20
316 查看
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引用着,所以不被垃圾收回器标记: 有意义的引用数: 1 null引用数: 1 可存取的对象:1 被抛弃的对象: 1
数组如酒吧中的杯架
primitive数据类型:1.声明一个int数组变量,数组变量是数据对象的引用. int[] nums; 2.创建大小为10的数组,并将它赋值给之前声明为int[]的变量nums nums = 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[]类型变量pets pets = 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注重类型.数组被声明出来,就只能装入所声明类型的元素..
相关文章推荐
- Flex array数组到java Object[] 的转换方法
- Error!]the type java.lang.object cannot be resolved. it is indirectly referenced from required .class files
- JAVA Object References in JVM--Soft References
- Java-使用object接收数组
- Java中对不变的 data和object reference 使用 final
- eclipse:The type java.lang.Object cannot be resolved. It is indirectly referenced from required
- The type java.lang.Object cannot be resolved. It is indirectly referenced from required .class files
- The type java.lang.Object cannot be resolved It is indirectly referenced ... .
- The type java.lang.Object cannot be resolved. It is indirectly referenced from required .class files
- he type java.lang.Object cannot be resolved. It is indirectly referenced from required .class files
- [Error!]the type java.lang.object cannot be resolved. it is indirectly reference
- 神奇的java Object ( Object和数组关系) Object数据互转
- The type java.lang.Object cannot be resolved.It is indirectly referenced from required.class files
- JAVA Object References in JVM--Strong References
- android The type java.lang.Object cannot be resolved It is indirectly referenced ...
- Java Study Note:Reference and Object
- C通过JNI调用JAVA——创建Object数组参数
- The type java.lang.Object cannot be resolved It is indirectly referenced ...
- Java Object References in JVM -- Phantom References
- The type java.lang.Object cannot be resolved. It is indirectly referenced from required .class files