我很好奇以下哪项更有效:使用默认值初始化变量,只在if-else块中需要时覆盖它,或者根本不初始化变量并设置if-else块中的值?
以下是前者和后者的一个例子:
前任:
String weightStatus = "Underweight";
if (bMI > 29.9)
{
weightStatus = "Obese";
}
else if (bMI >= 25.0)
{
weightStatus = "Overweight";
}
else if (bMI >= 18.5)
{
weightStatus = "Healthy Weight";
}
后期:
String weightStatus;
if (bMI > 29.9)
{
weightStatus = "Obese";
}
else if (bMI >= 25.0)
{
weightStatus = "Overweight";
}
else if (bMI >= 18.5)
{
weightStatus = "Healthy Weight";
}
else
{
weightStatus = "Underweight";
}
我猜想差异并不明显,但我不禁想知道根据变量赋值的工作方式,哪一种在技术上更快。
答案 0 :(得分:2)
如您所知,前一种情况,字节码将始终设置变量,然后根据if/then
,它可能会重置它。
但它还取决于哪些值会在运行时传递,如果它们大多不在then
分支中,那么我猜它不会产生太大的影响,但如果它们经常进入{{ 1}}分支,然后主要是双设置执行。
您可以使用以下内容进行测试:
then