引用对象就相当于是为对象起的一个名称,以后就可以在程序中使用栈中的引用对象来访问堆中的对象。引用只是存放一个对象的内存地址,并非存放一个对象。
见如下代码
package test;
public class CreateObject {
public CreateObject()
{System.out.println("创建对象");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
CreateObject a;
a=new CreateObject();
}
}
程序结果会输出创建对象。
其中CreateObject a;a=new CreateObject();
如果只执行了第一条语句,还没执行第二条,此时创建的引用变量
a还没指向任何一个对象,它的值是null。引用变量可以指向某个对象,或者为null。只有通过new创建一个对象,然后将a赋予该对象地址,就像给予该地址一个叫做a的名片一样。
而在c++中,第一条语句便已经创建了对象,而不是java中只运行第一句的a没有任何值。