
a + 2 * 5 2*5が先に評価されます。
この式では、+演算子と*演算子の2つが使われています。通常の四則演算では、たし算よりかけ算を先に計算します。これは、かけ算の方が
優先順位が高い
からです。Javaの演算子の場合も同じです。 演算子の優先順位は、変更することもできます。通常の数式と同じようにカッコを使って優先的に評価させるのです。次の式では、「a+2」が先に評価されてから、5倍されます。
(a + 2) * 5 カッコ内が先に評価
演算子の優先順位を調べる
System.out.println(“1 + 2は” + (1 + 2) + “です。”);
この()をつけないとどうなるでしょう?次のコードを入力して下さい。

たし算の部分がおかしくなっています。これは、
「1」+「2」を文字列につなぐ
という+演算子が先に行われ、「1+2」の計算よりも前に行われてしまうのです。そこで、「1+2」という数値の計算をするために、この部分を()で囲んで優先順位を上げる必要があるのです。
なお、次の「3*4」の演算は、*演算子の優先順位が高いので、()をつけなくても正しい計算結果が出力されます。
大きなサイズの型に代入する

上記のコードは、int型の変数の値をdouble型の変数に代入しています。一般にJavaでは、
大きなサイズの型の変数に小さなサイズの型の値を代入することができます。このことを型変換といいます。

先ほどとは逆に、小さいサイズの型の変数に大きなサイズの型の値を代入するには、上記の8行目のように型を変換することを明示的に書いておく
必要があります。このことをキャスト演算子といいます。但し「160.5」の小数点以下が切り捨てられ、「160」が格納されるので注意してください。
異なる型どうしで演算する

int型のdの値とdouble型のpiの値のかけ算をしています。Javaでは、一般的に演算子に異なる2つのオペランドを記述した場合には、
一方のオペランドを大きなサイズの型に変換してから演算を行う
というきまりになっています。int型のdの「2」がdouble型の(2.0)に変換されてから、かけ算が行われています。
同じ型どうしで演算する

上記のコードは、int型の変数num1とnum2を使って、5÷4の結果をdouble型の変数divに代入しています。「1.25」の値が出力されることを期待して、このように記述しました。しかし、「5/4」が「1」というint型の値として計算されます。その結果、「1.0」という値が出力されました。
このコードで「1.25」を得るには変数num1かnum2のどちらかをdouble型に変換する必要があります。
double div = (double)num1/(double)num2;
コードを変更した場合の実行結果は次のようになります。
5/4は1.25です。
7行目のコードをdouble型に書きかえることによって、1.25という答えを出力することができます。