2013-03-05 56 views
2

当申报的Java变量
为什么其建议使用范围最窄尽可能
就像那个为什么建议在声明变量时尽可能使用最窄范围?

其推荐

if (x>3) { 
double d = someCalculation(); 
// ...... 
System.out.println("..."); 
} else { 
// No use of d 
System.out.println("..."); 
} 

它不是推荐

double d = someCalculation(); 
if (x>3) {   
// ...... 
System.out.println("..."); 
} else { 
// No use of d 
System.out.println("..."); 
} 
+0

一旦作用域执行了在作用域内声明的所有变量,就有资格进行垃圾回收 – 2013-03-05 16:04:19

+0

更宽的作用域让你更接近全局变量及其所有的快乐/陷阱。 – 2013-03-05 16:06:46

回答

4

更容易阅读,维护和演示程序是正确的。

反正this answer覆盖得很好。

也可以尝试搜索“限制变量的作用域”(sample hit

0

因为它需要的范围必须被声​​明,而在不需要的地方它可能是一个不相关的变量。答案在于这个问题:为什么你只是把事情放在与他们无关的地方?你一般不会,我希望 - 至少自从你还是个青少年时就没有这种感觉。

考虑地板上的衣服回到了一天,没有人知道妈妈这是干净和肮脏。她是全部清洗它们,还是全部清除它们,或者是什么?所以在这种技术中就是用内存管理。什么是使用?我可以移动什么?我可以处理什么?等

保持干净范围以及诸如此类在这些情况下,有很多好处,这比仅仅是做一个自然的事情等。在某些情况下,作用域中的代码片段可以被视为“工作单元”,并且如果重用了变量(名称+类型),它也可以防止数据冲突。

1

因为当你声明一个变量,这是创建并保留在存储空间。即使你不使用这个变量,空间也会被创建。只在需要的时候声明变量。

4

一旦范围内执行的范围内声明的所有变量都符合垃圾收集,所以你需要有携带这些变量,如果不再需要它。

在你的情况,一旦if(...) {...}块被执行d可享有GC

+0

没有人提到GC如此+1。 – 2013-03-05 16:10:04

-1

另外,在你的榜样,您将执行someCalculation()是否需要与否。效率不高。

0

对于你不发表您的电话号码相同的确切原因,电子邮件地址和你是从您的计算器简介无论哪个国家的公民身份证号码只是为了得到这个答案。您可以通过最简约的风险管理变量,以防止混乱,提高可读性并减少潜在的混淆。

相关问题