对象引用与对象的区别
来源:互联网 发布:水光面膜怎么样 知乎 编辑:程序博客网 时间:2024/05/19 17:59
(一篇通俗易懂讲解对象引用概念的好文章)
原文地址http://blog.163.com/luyufen_luise/blog/static/5777392520086230367627/int passengers;
int fuelcap;
int mpg;
}
有了这个模板,就可以用它来创建对象:
通常把这条语句的动作称之为创建一个对象,其实,它包含了四个动作。
1)右边的“newVehicle”,是以Vehicle类为模板,在堆空间里创建一个Vehicle类对象(也简称为Vehicle对象)。
2)末尾的()意味着,在对象创建后,立即调用Vehicle类的构造函数,对刚生成的对象进行初始化。构造函数是肯定有的。如果你没写,Java会给你补上一个默认的构造函数。
3)左边的“Vehicleveh1”创建了一个Vehicle类引用变量。所谓Vehicle类引用,就是以后可以用来指向Vehicle对象的对象引用。
4)“=”操作符使对象引用指向刚创建的那个Vehicle对象。
我们可以把这条语句拆成两部分:
Vehicle veh1;
veh1 = new Vehicle();
效果是一样的。这样写,就比较清楚了,有两个实体:一是对象引用变量,一是对象本身。
就又做了一根绳,还没系上汽球。如果再加一句:
系上了。这里,发生了复制行为。但是,要说明的是,对象本身并没有被复制,被复制的只是对象引用。结果是,veh2也指向了veh1所指向的对象。两根绳系的是同一只汽球。
veh2 = new Vehicle();
则引用变量veh2改指向第二个对象。
按上面的推断,veh1也指向了第二个对象。这个没问题。问题是第一个对象呢?没有一条绳子系住它,它飞了。多数书里说,它被Java的垃圾回收机制回收了。这不确切。正确地说,它已成为垃圾回收机制的处理对象。至于什么时候真正被回收,那要看垃圾回收机制的心情了。
new Vehicle();
不对。它是合法的,而且可用的。譬如,如果我们仅仅为了打印而生成一个对象,就不需要用引用变量来系住它。最常见的就是打印字符串:
字符串对象“I am Java!”在打印后即被丢弃。有人把这种对象称之为临时对象。
- 对象引用与对象的区别
- 对象引用与对象的区别
- 对象引用与对象的区别
- 对象引用与对象的区别
- 对象引用与对象的区别
- 对象引用与对象的区别
- 对象引用与对象的区别
- 对象引用与对象的区别
- 对象引用与对象的区别
- 对象引用与对象的区别
- Java 对象与对象引用的区别
- 对象引用与对象的区别
- 对象引用与对象的区别
- Java对象引用与对象的区别
- 对象与对象引用变量的区别
- 对象引用与对象的区别
- 对象引用与对象的区别
- 对象引用与对象的区别
- css3的文本效果text-justify
- 数据库对象
- 一道abc+cba=1333的问题
- IP地址的分类
- 常见JAVA运行时异常有哪些?
- 对象引用与对象的区别
- 浅谈window.attachEvent
- 传统神经网络ANN简介
- Installing Backtrack5 tools + menu in Ubuntu 10.10
- Git Gui 查看分支历史的时候中文显示乱码
- IOS开发之关键字category详解
- ubuntu 下mysql安装
- Canvas上写字drawText -- 确定字符串居中位置
- Linux中iptables防火墙配置实例分享