一、概念
1.有名字的对象
Person p1 = new Person();
p1是对象名,new Person()是堆中真正的对象,通过对象名p1访问堆中的对象
2.没有名字的对象,就是匿名对象
new Person() 就是匿名对象
二、应用场景
1)如果某个对象的方法,就使用一次,以后就再也不用这个对象了,可以使用匿名对象
例如:
1.通过匿名对象调用实例方法
Car myCar = new Car();
new Factory().changeCarColor(myCar,”black”);
2)如果在调用某个方法时,这个方法需要一个对象参数,实参对象可以是匿名对象
例如:
2.方法的实参是一个匿名对象
Factory factory = new Factory();
factory.changeCar( new Car() );
三、优点
减少栈中变量的引用,方便垃圾回收