Java中&和&&都是逻辑与,需要左右两边同时满足条件才可以得到true的结果。但是,它们之间也有区别:
1、&&也叫短路与,当&&左边的条件不满足时,就不会判定右边的条件。而&不一样,无论‘&’左边的条件是否满足,它都会判定右边的条件。
比如:
int a = 2;
1>2? && a+1>2?
以上代码,判定了1>2为假就不会判定a+1>2了。
而如果是1>2? & a+1>2?
,判定了1>2为假,仍会判定a+1>2为真。
2、&可用于位运算,当左右两边的条件不是布尔型,而是数字时,它会进行位运算。
如:2 & 3就是合法的,会进行位运算。