Javaでは、真偽値はboolean型で表され、その値はtrueかfalseのどちらかです。
Javaでは、3つの真偽値演算子を使うことができます。
!(否定): 真偽値を反転させます&&(AND): 2つの真偽値を受け取り、どちらもtrueならtrueになります||(OR): 2つの真偽値のうち、どちらかがtrueならtrueになります&&と||は_短絡評価_を使います。これは、演算子の右辺が必要なときにだけ評価されるという意味です。
これらの演算子は、条件演算子や論理演算子とも呼ばれます。
!は、ドキュメントではビット演算に分類されることもありますが、慣習的な_否定_の意味を持ちます。
true || false // => true
false || false // => false
false || true // => true
true && false // => false
true && true // => true
!true // => false
!false // => true
3つの真偽値演算子は、それぞれ演算子の優先順位が異なります。
そのため、評価される順序はnotが最初、次に&&、最後に||です。
この規則から「逃れたい」ときは、真偽値の式を括弧(())で囲みます。括弧は演算子の優先順位がさらに高いからです。
!true && false // => false
!(true && false) // => true