所以我想确定一下(隐藏的部分是我喜欢干净的代码)
当我只使用一次变量时,我可以创建一个方法:
private List<Example> getExampleList() {
return Example.getInstance().getList();
}
问题:
如果我只使用一次,这相当于:
private List<Example> exampleList = Example.getInstance().getList();
如果我多次使用我的方法而不是创建一个变量来存储这些数据,会产生什么后果?会
java
即使在值没有理由更改的情况下也加载值并返回它?声明和使用该方法有什么区别?
最佳答案
这取决于 Example.getInstance().getList()
是否创建新对象:
- 如果它每次创建一个具有不同内容的新对象,您不应将第一个结果存储到变量中。
- 如果它每次都会创建一个具有相同内容的新对象(等效对象),您可以将第一个返回的对象存储到一个变量中,并从那时起重复使用它,而不是调用
getList
。它将产生更少的调用、更少的无用对象,从而提高吞吐量。 - 如果它不创建新对象但始终返回相同的引用,则与第 2 点相同。
关于java - JVM、字节码、垃圾收集器和计算机代码解释(使用多次返回 "new Object()"的函数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33213901/