引用和引用对象的区别
2015-10-06 10:33
323 查看
如下表达式: A a1 = new A(); 它代表A是类,a1是引用,a1不是对象,new A()才是对象,a1引用指向new A()这个对象。 在JAVA里,“=”不能被看成是一个赋值语句,它不是在把一个对象赋给另外一个对象,它的执行过程实质上是将右边对象的地址传给了左边的引用, 使得左边的引用指向了右边的对象。JAVA表面上看起来没有指针,但它的引用其实质就是一个指针,引用里面存放的并不是对象,而是该对象的地址, 使得该引用指向了对象。在JAVA里,“=”语句不应该被翻译成赋值语句,因为它所执行的确实不是一个赋值的过程,而是一个传地址的过程,被译成赋值语句会造成很多误解,译得不准确。 再如: A a2; 它代表A是类,a2是引用,a2不是对象,a2所指向的对象为空null; 再如: a2 = a1; 它代表,a2是引用,a1也是引用,a1所指向的对象的地址传给了a2(传址),使得a2和a1指向了同一对象。 综上所述,可以简单的记为,在初始化时,“=”语句左边的是引用,右边new出来的是对象。 在后面的左右都是引用的“=”语句时,左右的引用同时指向了右边引用所指向的对象。 再所谓实例,其实就是对象的同义词。
相关文章推荐
- C#-利用NOPI处理Excel的代码
- 探讨:编译时常量和运行时常量
- Defining BJT Noise Equations
- Android 自定义横向滚动条
- GitHub上README.md教程
- 世界坐标转为局部坐标
- 7_4:verify arg
- php常用验证函数
- firefox os 2.0版模拟器QQ初体验
- 消息循环
- 引用和应用对象的区别
- 算法导论12.3插入和删除 练习总结
- poj 1061 扩展欧几里德同余方程求解
- 字符串去空格
- UVA-12657 Boxes in a Line (双向链表)
- MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践
- Java的字符串分割的不同实现
- Java的字符串分割的不同实现
- 第一次写博客
- UVA - 10763 Foreign Exchange