java – 更高效?清空一个对象或创建一个新对象?

“新”多贵?我的意思是说,我是否应该重新使用同一个对象,或者如果对象“超出范围”,那么它是否排空呢?

例如,说一个方法创建一个列表:

List<Integer> list = new ArrayList<Integer>();

在方法结束时,列表不再被使用 – 这是否意味着没有内存分配给它,或者这意味着它有一个空指针(因为它是“创建”).

或者,我可以向方法发送一个“列表”,并在方法结束时将其清空:list.removeAll(list);会不会从内存的角度出发?

谢谢!

解决方法

它的一个数组列表,所以创建一个新的对象意味着分配一块内存和归零,加上任何簿记开销.清除列表意味着清零内存.这种观点将导致您相信清除现有对象更快.但是,JVM很可能被优化以使内存分配快速,所以可能不重要.所以只要写清楚,可读的代码,不用担心.毕竟这是java,不是c.

相关文章

Java中的String是不可变对象 在面向对象及函数编程语言中,不...
String, StringBuffer 和 StringBuilder 可变性 String不可变...
序列化:把对象转换为字节序列的过程称为对象的序列化. 反序...
先说结论,是对象!可以继续往下看 数组是不是对象 什么是对...
为什么浮点数 float 或 double 运算的时候会有精度丢失的风险...
面试题引入 这里引申出一个经典问题,看下面代码 Integer a ...