在Java中,变量应该在函数的顶部声明,还是在需要时声明?

2022-08-31 23:45:15

我正在为那些通过声明所有变量并将其初始化为null / 0 / 任何东西来启动其函数的人清理Java代码,而不是在以后需要它们时声明它们。

这方面的具体准则是什么?是否有一种方式或另一种方式的优化原因,或者一种方式只是好的做法?是否有任何情况下,偏离正确的做法是可以接受的?


答案 1

将变量声明为尽可能接近使用它们的第一个位置。这与效率无关,但会让你的代码更具可读性。变量的声明越接近其使用位置,以后读取代码时必须执行的滚动/搜索就越少。声明变量更接近它们使用的第一个位置也会自然地缩小它们的范围


答案 2

正确的方法是在首次使用变量时准确声明变量,并最小化其范围,以使代码更易于理解。

在函数顶部声明变量是C的延续(在需要它的地方),并且绝对没有优势(变量范围仅存在于源代码中,在字节码中,所有局部变量都按顺序存在于堆栈上)。只是永远不要这样做。

有些人可能会试图通过声称它“更整洁”来捍卫这种做法,但是在方法中“组织”代码的任何需求通常都强烈表明该方法太长了。