根据内存使用情况调用基于其他方法输出的方法的最佳方法是什么?
例如: 第一种方式:
Animal a = Farm.getAnimal(5);
item.setAnimal(a);
第二种方式:
item.setAnimal(Farm.getAnimal(5));
此外是否保存item.setAnimal(...)
使用Java内存的结果?
答案 0 :(得分:0)
在堆上创建对象,对象变量(Animal a)实际上是指堆上的对象(将此值赋给变量时没有创建副本)。
要回答您的第一个问题,设置动物的两种方法都是相同的,并且不会创建任何额外的内存使用量。
但是当你将对象存储到变量中时,你应该确保限制范围,因此不允许内存泄漏。
对于你的第二个问题,item.setAnimal(..)是否使用了额外的内存? - 由于上述原因,答案很明显,它不会导致额外的内存使用,因为在set方法中引用了相同的对象。