在JAVA中,当我们新new一个对象时,通常会在同时将它赋值给一个变量。这样,在虚拟机的栈和堆中
各开辟了一个新的空间。
比如:
Student a=new Student();
栈和堆各开辟了一个空间。
但是在某些时候,新new的对象赋值给变量并不是必要的。
例如
(1)将新new的对象传参给某个方法:
Student a=new Student();
int b=Calculate(a);
可以简写为:
int b=Calculate(new Student());
注:new Student()不会被回收,因为方法里有使用。
(2)对象只使用一次
Student. a==new Student();
a.getName();
可以简写为:
new Student().getName();
注:简写后的new Student()执行后立即就会被回收。
这样可以节省在栈中开辟的空间。
总结:只要考虑到垃圾回收的问题,可以使用匿名对象节省栈空间的使用