声明 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 :(得分:4)
答案 1 :(得分:4)
一旦范围执行,范围内声明的所有变量都有资格进行垃圾收集,因此如果不再需要这些变量,则需要携带这些变量。
在您的情况下,只要if(...) {...}
阻止执行d
,就有资格获得GC
答案 2 :(得分:1)
因为当你声明一个变量时,会创建一个变量并在内存中保留一个空格。即使您不使用此变量,也会创建空间。仅在需要时声明变量。
答案 3 :(得分:0)
因为必须声明它所需的范围,而在不需要的地方,它可能是一个无关的变量。对此的答案在于这样一个问题:为什么你会把事情放在与他们无关的地方?我希望你通常不这样做 - 至少从少年时起就没有。
考虑当天回到地板上的所有衣服,没有人知道哪个是干净的,哪个是脏的。她是全部洗掉,还是全部洗掉,或者是什么?因此,在这些技术中使用内存管理。正在使用什么?我能走动什么?我可以处理什么?等
在这些情况下保持清洁范围等具有许多好处,除此之外,这是一件很自然的事情。在某些情况下,作用域中的代码段可以被视为“工作单元”,如果重用变量(名称+类型),它还可以防止数据冲突。
答案 4 :(得分:0)
出于同样的原因,您不会在您的stackoverflow个人资料上发布您的电话号码,电子邮件地址和您所在国家/地区的公民身份证号码,以获得此答案。您可以在最简约的曝光中管理变量,以防止混乱,提高可读性并减少潜在的混淆。
答案 5 :(得分:-1)
同样在您的示例中,无论是否需要,您都将执行someCalculation()。效率不高。