我们把new出来的这个对象叫实例,对象和实例在这个角度上来讲是等价的。
举例:实例化一个cat;

public class Cat {
   public Cat() {
       System.out.println("这是构造方法");
   }
}



Cat c = new Cat();
 
  
Cat c:在内存中分配一个变量叫c 类型是cat;
 
  
new Cat();:new cat对象,当程序运行时会调用 cat()构造方法,等cat()执行完这个变量创造完成了,并且真正存在内存中了。



使用new创建出来的对象,被分配在内存的堆区(heap),而且使用new关键字创建出来一个对象后,会把这个对象的内存地址返回,通过这个地址才可以找到对象。



所以 Cat c = new Cat();的意思是说:new 了一个对象cat,返回的地址赋值给变量c,c的类型是cat,这就是java中的引用概念,c就叫做引用或者叫引用变量 或者叫变量,都是它。
c得值就是一个内存地址,或者叫引用地址,通过这个地址,我们就可以找到我们刚才创建的对象了,调用对象方法或者做其他的事情,都用这个引用。




c到底是对象还是引用,好多人说c就是Cat类的一个实例,这是非常错误的,c就是引用,不是对象!我们new出来的这个东西,真正在内存中的这个东西叫做对象,叫做实例