在赋值为null之前检​​查变量是否为null?

Alb*_*ert 6 java compiler-construction performance clarity

与空检查相比,变量赋值是否昂贵?例如,在将foo赋值为null之前,是否值得检查foo是否为空?

if (foo != null) {
     foo = null;
}
Run Code Online (Sandbox Code Playgroud)

或者这是否令人担忧?

Mik*_*las 31

这是一种微观微观优化(并且可能由编译器处理).别担心.通过专注于您的程序实际算法,您将获得更大的回报.

我们应该忘记小的效率,大约97%的时间说:过早的优化是所有邪恶的根源. - 唐纳德克努特


Mic*_*ers 7

这实际上(非常,非常轻微)效率较低.变量赋值大致相当于空值检查,另外还有一个额外的分支.并不是说它有很大的不同.

或者这是否令人担忧?

你说对了.