减少Java进程的内存

时间:2016-05-12 20:23:17

标签: java object memory memory-leaks

根据内存使用情况调用基于其他方法输出的方法的最佳方法是什么?

例如: 第一种方式:

Animal a = Farm.getAnimal(5);
item.setAnimal(a);

第二种方式:

item.setAnimal(Farm.getAnimal(5));

此外是否保存item.setAnimal(...)使用Java内存的结果?

1 个答案:

答案 0 :(得分:0)

在堆上创建对象,对象变量(Animal a)实际上是指堆上的对象(将此值赋给变量时没有创建副本)。

要回答您的第一个问题,设置动物的两种方法都是相同的,并且不会创建任何额外的内存使用量。

但是当你将对象存储到变量中时,你应该确保限制范围,因此不允许内存泄漏。

对于你的第二个问题,item.setAnimal(..)是否使用了额外的内存? - 由于上述原因,答案很明显,它不会导致额外的内存使用,因为在set方法中引用了相同的对象。