(a!= null)或(null!= a)

Ram*_*ona 5 java variables null

将变量与变量进行null比较或null与变量进行比较是否有任何区别?

例如,哪个比较更好(a != null)或(null != a)?我在某处读到第二个更快但没有找到原因.

Arm*_*yan 25

不,没有比这更快.这是一个简单的谎言.使用第二个版本没有任何优势.只会让可读性变差.

这一切都来自C,你可能会错误地写

if(x = 3) 
Run Code Online (Sandbox Code Playgroud)

代替

if( x == 3)
Run Code Online (Sandbox Code Playgroud)

有些人认为最好首先编写常量,在这种情况下,如果你编写=而不是==,那么你会得到一个编译器错误.有些消息来源建议写作

if(3 == x)
Run Code Online (Sandbox Code Playgroud)

有些人不知道为什么这是必要的,并且继续将这个想法推广到构造和语言,在那里它完全没有意义.IMO在原始的C语境中也没有多大意义,但这是个人品味的问题.


Jon*_*eet 9

即使是在速度上的差异,我希望它是完全微不足道的应用程序的99.99%.事实上,我不希望有任何速度差异.我个人觉得if (a != null)更易读-和可读性是很多比在大多数情况下表现更为重要.

  • @aishwarya:从C或C++开发的习惯?使用比较方式进行防御可能是有意义的(虽然现代编译器会接受意外分配,IIRC)但是我相信*大多数没有背景的开发人员都会找到"变量优先"形式更具可读性. (4认同)