我通常以这种方式构建我的功能
public MyObject getMyObject(){
MyObject myObject = new MyObject()
return myObject;
}
并且想知道如果以这种方式这样做在性能或其他方面“更好”......你是如何做到的?
public MyObject getMyObject(){
return new MyObject()
}
示例是Java,但它可以是任何其他语言
谢谢
答案 0 :(得分:2)
生成的字节码存在差异。您可以使用javap -c MyObject.class
查看字节码。
第一个这样做:
0: new
3: dup
4: invokespecial
7: astore_1
8: aload_1
9: areturn
第二个做到了这一点:
0: new
3: dup
4: invokespecial
7: areturn
然而,主要推理应该是可读性而不是微观优化。在这种情况下,我认为可读性和微观优化恰好相吻合。
答案 1 :(得分:1)
第一种方法是创建对返回后不再使用的对象的引用。
第二种方法不会创建该引用,因此您可以节省一点内存(非常小)。
最佳标准是代码的可读性。对我来说,第二种解决方案更加明智和清晰,但这取决于你。
答案 2 :(得分:0)
声明myObject变量没有任何意义,因为它永远不会被使用。为了保持代码的可读性和简短性,我更喜欢第二种选择。