使用大括号对一个方法中的单独代码部分进行说明

时间:2013-11-21 14:44:12

标签: java performance

使用大括号的单独部分在一个方法中编写代码是不错的做法?

    public String getName()
    {
       String returnValue;

          {
             int a=0;
           --- 1 - 5 lines----
          }

          {
            int a=0;
           --- 6 -  10 lines----
          }

    return returnValue;

    }

如果这是一个好习惯,那么这是我的下一个问题。         我在方法中两次声明相同的变量但在块内部。这是否意味着每个块占用单独的\额外内存?我在这儿吗?如果我错了,请纠正我。

4 个答案:

答案 0 :(得分:2)

所有变量都可以在定义的块中 进行访问,例如

{
    int a=0;
    --- 1 - 5 lines----
}

a变量只能在此块中访问。

  • 它会占用更多内存吗?

    就像在循环中定义变量一样。您不必担心,因为内存管理几乎传递给垃圾收集器。

  • 这是一个好习惯吗?

    有时这种方法可能导致Code smells。就个人而言,我更喜欢跳过这样的结构,并想到有意义的名字。这对于源可读性非常有用,imho。

答案 1 :(得分:1)

这样做不是一个好习惯

当你需要这样做时,它就是一个迫切需要的重构的标志,也就像Martin Fowler所说的“代码味道”

变量的范围仅限于该块,并在块退出时进行垃圾收集。

{
   int i = 0;
}
//the scope of i will end here and will be eligible for garbage collection

答案 2 :(得分:1)

这通常不是最佳做法,因为它会降低代码的可读性。

对于内存,每个块都有自己的范围,因此占用了单独的内存。更具体地说,在执行第一个块之后,每个范围都限制在块范围内的变量都可以被垃圾收集。

答案 3 :(得分:1)

如果你觉得你需要这样一个单独的块,你应该考虑使用这种块分开的方法。

我同意所有人说这是一种不好的做法。