这在 Java 中是一种更好的做法



我有一个方法,它返回我一些对象,比如一个字符串对象。

现在我有两种可能性

public String someMethod(){
String data=getData(); //This method returns string
return data;
}

public String someMethod(){
return getData();//This method returns string
}

以上哪项是更好的做法,考虑到性能/可伸缩性,也是更好的做法。请给出你的观点支持答案。谢谢你的时间。

如果您不打算修改变量,那么没有理由创建它的本地副本只是为了返回它。

代码的第二个版本更简洁,通常更简洁。

优化

的编译器很可能会为您完成转换,如果您不这样做,那么在性能方面它们是等效的。

与任何编程语言一样,您希望尽可能简洁明了地表达它。 它们都将编译成完全相同的东西,但后者更具可读性,并且省略了不需要的代码行。

我相信

编译器会将第二个变成第一个,从而为您优化它。它不会对所有事情都这样做,但在大多数情况下它会这样做。但这完全取决于可读性。无论你能更快地抓住什么,我说坚持下去。但它们都是一样的。唯一的区别是,在第一个中,您正在为指向该字符串的指针创建一个变量,因此"浪费"了不必要的内存。但同样,在这种情况下,编译器可能会对其进行优化。

这几乎完全归结为风格(第一个是蹩脚的风格——不要创建你不打算使用的东西)。 任何好的编译器都会注意到,通过消除未使用的局部变量,这里需要进行一些优化。 你很容易陷入你认为是"优化"的小调整中,但实际上只是为了让开发人员感到聪明和浪费时间。 即使编译器没有将第一个代码段优化为第二个代码段(实际上它可能会进一步优化)。

在性能方面,更大的图景是架构决策真正会有所作为的,而不是一个未使用的分配/分配操作。 不要陷入逐行优化的泥潭。 这些优化可能最好留给编译器。

第二个

是更好的选择。在第一种情况下,您的变量数据没有实际用途。无论如何,我认为如果编译了这个东西,编译器无论如何都会将第一个更改为第二个。

第二个是更好的选择,因为它需要更少的键入并减少不必要的代码。始终尝试使代码尽可能可读。

+1 表示第二个解决方案。你写得越少,你发展得越好!

第一个可以更直观(在大学里他们展示了为什么,我认为这就是你对此持怀疑态度的原因),只是为了学习和调试任何可能的异常,但总的来说,第二个是首选和更好的。

first

:在

编写整洁且更易于理解的代码方面很好,但它在初始化 Sring 对象时使用更多memory无论如何编译器都会切换到first,其次当任何其他开发人员想要编辑时,他可以直接在第一次初始化下添加代码,如果需要debug也更好。
适用于代码管理。

second一个:

在没有

其他对象初始化,而只是输出所需的返回数据的performance中更好。但就代码编写而言,这不是一个好的做法,但在编写代码的性能和速度方面却是一个好的做法。

相关内容

最新更新