Java 关于一个方法中单独代码部分的澄清(带花括号)
在一个方法中使用单独的花括号部分编写代码是一种好的做法吗Java 关于一个方法中单独代码部分的澄清(带花括号),java,performance,Java,Performance,在一个方法中使用单独的花括号部分编写代码是一种好的做法吗 public String getName() { String returnValue; { int a=0; --- 1 - 5 lines---- } { int a=0; --- 6 - 10 lines---- }
public String getName()
{
String returnValue;
{
int a=0;
--- 1 - 5 lines----
}
{
int a=0;
--- 6 - 10 lines----
}
return returnValue;
}
如果这是一个好的做法,那么我的下一个问题是。
我在方法中声明了相同的变量两次,但都在块中。是否意味着每个块占用单独的\额外内存?我就在这里吗?如果我错了,请纠正我。这样做不是一个好做法
当你需要这样做的时候,这是一个急需重构的信号,也就是Martin Fowler所说的“代码气味”
变量的作用域仅限于该块,并且在该块退出时将被垃圾收集
{
int i = 0;
}
//the scope of i will end here and will be eligible for garbage collection
这样做不是一个好的做法
当你需要这样做的时候,这是一个急需重构的信号,也就是Martin Fowler所说的“代码气味”
变量的作用域仅限于该块,并且在该块退出时将被垃圾收集
{
int i = 0;
}
//the scope of i will end here and will be eligible for garbage collection
所有变量只能在定义的块内访问,例如
{
int a=0;
--- 1 - 5 lines----
}
a
变量只能在此块中访问
- 它占用更多的内存吗 例如,这就像在循环中定义变量一样。您不必担心,因为内存管理几乎是传递给垃圾收集器的
- 这是一种好的做法吗 有时,这种方法会导致错误。就我个人而言,我宁愿跳过这样的结构,想想那些有意义的名字。这对源代码的可读性有好处,imho
{
int a=0;
--- 1 - 5 lines----
}
a
变量只能在此块中访问
- 它占用更多的内存吗 例如,这就像在循环中定义变量一样。您不必担心,因为内存管理几乎是传递给垃圾收集器的
- 这是一种好的做法吗 有时,这种方法会导致错误。就我个人而言,我宁愿跳过这样的结构,想想那些有意义的名字。这对源代码的可读性有好处,imho
- 这通常不是最佳做法,因为它会降低代码的可读性
至于内存,每个块都有自己的作用域,因此占用单独的内存。更具体地说,在执行第一个块后,可以对其作用域限制在该块作用域内的每个变量进行垃圾收集。这通常不是最佳做法,因为它会降低代码的可读性
至于内存,每个块都有自己的作用域,因此占用单独的内存。更具体地说,在执行第一个块之后,每个范围的变量都被限制为块的范围。
我同意所有人的说法,这通常是一种不好的做法如果你觉得你需要这样一个单独的块,你可能应该考虑使用这样的块分离方法。< /P>
我同意所有人的说法,这通常是一种不好的做法 如果变量将在这两部分中声明和使用,只需在这两部分之前声明和初始化它。关于内存,让JVM来处理这个问题,不要在过早的优化中工作。你会有疯狂的范围问题。您已经在复制代码(初始化
inta
两次)。如果变量将在两个节中声明和使用,只需在节之前声明并初始化它即可。关于内存,让JVM来处理这个问题,不要在过早的优化中工作。你会有疯狂的范围问题。您已经在复制代码(初始化inta
两次)。感谢您的澄清!谢谢你的澄清!谢谢你的澄清!谢谢你的澄清!谢谢你的澄清!谢谢你的澄清!