質問: != eq ne && and || or ? : 上記の優先順位の中でわからないことがあります。 + - のところの「単項」とか「2項」っていったい何?
回答: 単項は、 -12 + 42 この場合の単項演算子は、-12 の "-" コレ。 2項演算子は、 -12 + 42 の "+" コレ。 100 - -10 の答えは、100 + 10 = 110 です。 構文解析風に答えると、 "100 - -10" という文字列を解析して数値の結果を算出します。 (0)文字列の先頭から字句解析(先読み) (1)数値の文字列 "100" を発見。Integer.parseInt() で数値に変換して値を保存、次の字句先読み。 (2)"-" 記号発見。左辺値として 100 があるので、2項演算子と仮定して解析を継続する。次の字句を先読み。 (3)"-" を発見。直前の字句が 数値では無いので、単項演算子と仮定(直後に数値か変数が必ず来ると仮定)して先読み。 (4)"10" 数値文字列発見。Integer.parseInt() で数値に直し、更に、"-" の直後なので、符号反転する。 (5)(2)の後半部で、右辺値 -10 が得られたので、めでたく、2項演算子の "-" で "左辺 - 右辺"を演算。 結果、110 が残る。 こーゆー解析ロジックを、演算子の優先順位をからめて、2項演算子なのか、単項演算子なのかで場合わけ して、構文解析を行っています。 Javaの演算子は多くが2項演算子、単項演算子は少ないですね。"+","-","!","~", あとなんだったかな・・・ 2項演算子で変なのは、instanceof とか、 3項演算子 式 ? (true)式 : (false)式 なんて変り種 もあります。