ショートサーキット演算子
「&&」や「||」のことです。
例えば、条件Aと条件Bがあったとします。
「A && B」でAの値がfalseだった場合、Bの値がtrueかfalseかによらず、「A && B」全体では、常にfalseとなります。そこで、Aがfalseと評価された場合は、Bの評価を省略します。
「A & B」と記述した場合は、AもBも評価されます。
基本的に、&&を使っても&を使っても演算結果には影響ありませんが、例えば、
int a = 1;
int b = 3;
(a > b) && (++b > 1)
という演算をする場合、(a > b)はfalseなので、右辺は評価されず、したがってbの値はインクリメントされないので3のままです。しかし、
(a > b) & (++b > 1)
だった場合は、左辺も右辺も評価されるので、bの値がインクリメントされ、4になります。
また、ショートサーキット演算子はNullPointerExceptionを発生させないために利用できます。例えば、String型変数strに対して、
if((str != null) && (str.length() <= 50)) {…
と書くことで、strという変数がnullだった場合は、左辺がfalseとなり、右辺が評価されないので、NullPointerExceptionが発生しません。