For Example:
Person person = new Person(); 通常我们把这段代码称为创建一个对象,其实,它包含了4个动作。
1.new Persion(); 在heap中创建一个Person对象。
2。末尾的()意味着,在对象创建后,立即执行默认的构造函数。对应初始化的对象如果没有写构造函数,java会给你一个默认的构造函数。
3.Person person 创建了一个Person类的引用变量。所谓的Person引用,就是以后用来指向Person对象的引用。
4. = 操作符使Person person这个引用指向Person()对象。
一般对象的引用存在了heap空间,对象的本身存在stack空间。
我们一般创建了一个对象引用为Person person 为什么要创建对象引用呢?
new Person(); 相当于我们创建一个Person对象。这些对象名不可能全部都叫Person吧。
所以需要一个引用来访问它。
For Example:
Person person1 = new Person();
Person person2 = new Person();
开辟了两个内存空间 并且都用引用指向,如果对象没有被引用指向,那么JVM就会把它标记为要回收的对象。等待JVM回收。