在java中,很多人都不知道&与&&,|与||的区别。

&,&&:(与,短路与):一样的地方就是二者执行最后的结果是一样的,但是执行的过程有区别,

对于&:无论&左边是否为false,他都会继续检验右边的boolean值。

对于&&:只要检测到左边Boolean值为false时,就会直接判断结果,不会在检验右边的值(因为"与"有一个false最后结果就是false了)

所以&&的执行效率更高,所以一般都是使用&&.

|与||之间也是同样的道理,|:无论左边是否为ture,都会检验右边 ,||:则不会。||  的执行效率会更高

https://blog.csdn.net/bigname22/article/details/51915457