今天见到了类名+变量的写法,如定义了一个Person类,
有一行写法为: Person person;
这个其实是定义了一个Person对象的引用。
我们知道new一个对象的语句是:
Person person = new Person('张三');
其实这行代码等价于以下两行:
Person person;
person = new Person("张三");
第一行的person其实是对象的引用,指向对象的地址,此时为null,第二行创建了一个对象然后将其指向引用person。
实质是将新创建的Person对象的地址赋给对象引用person,从此person与该对象关联,通过person即可操纵该对象 。可类比遥控器(对象引用)和电视机(对象)的关系。
存储空间上,它们存储在不同的地方,对象一般存储在堆中,而引用存储在栈中。在Java中new是用来在堆上创建对象用的。