Java JVM、字节码、垃圾收集器和计算机代码解释(使用多次返回“new Object()”的函数)

Java JVM、字节码、垃圾收集器和计算机代码解释(使用多次返回“new Object()”的函数),java,garbage-collection,jvm,bytecode,Java,Garbage Collection,Jvm,Bytecode,所以我想确定一下(而且隐藏的部分是我希望有干净的代码) 当我只使用变量一次时,我可以创建一个方法: private List<Example> getExampleList() { return Example.getInstance().getList(); } 私有列表getExampleList(){ 返回Example.getInstance().getList(); } 问题: 如果我只使用一次,这相当于: private List exampleList=

所以我想确定一下(而且隐藏的部分是我希望有干净的代码)

当我只使用变量一次时,我可以创建一个方法:

 private List<Example> getExampleList() {
    return Example.getInstance().getList();
 }
私有列表getExampleList(){
返回Example.getInstance().getList();
}
问题:

  • 如果我只使用一次,这相当于:

    private List exampleList=Example.getInstance().getList()

  • 如果我多次使用我的方法,而不是创建一个存储这些数据的变量,会有什么后果?
    java
    是否会加载该值并返回它,即使在没有理由更改该值的情况下也是如此

  • 声明和使用方法之间有什么区别


  • 这取决于
    Example.getInstance().getList()
    是否创建新对象:

  • 如果每次创建的新对象内容不同,则不应将第一个结果存储到变量中
  • 如果它每次都创建一个具有相同内容的新对象(等效对象),则可以将第一个返回的对象存储到变量中,并从此重用它,而不是调用
    getList
    。它将产生更少的调用,更少的无用对象,从而提高吞吐量
  • 如果它不创建新对象,但总是返回相同的引用,则与第2点相同

  • 您的代码不使用任何变量。所以这个问题毫无意义。