&是位运算符。&&是布尔逻辑运算符。
在运行上,&两边的条件都要判断(不管前面的是ture还是false),而&&先判断前面的,若为false,则后面的不再判断。
在java中,很多人都不知道&与&&,|与||的区别。
&,&&:(与,短路与):一样的地方就是二者执行最后的结果是一样的,但是执行的过程有区别,
对于&:无论&左边是否为false,他都会继续检验右边的boolean值。
对于&&:只要检测到左边Boolean值为false时,就会直接判断结果,不会在检验右边的值(因为"与"有一个false最后结果就是false了)
所以&&的执行效率更高,所以一般都是使用&&.
|与||之间也是同样的道理,|:无论左边是否为ture,都会检验右边 ,||:则不会。|| 的执行效率会更高