この章で学ぶこと
SUN教科書 Javaプログラマ(SJC-P) 5.0・6.0両対応(試験番号310-055、310-065)
- 作者: ポール・サンヘラ,山本道子,株式会社トップスタジオ
- 出版社/メーカー: 翔泳社
- 発売日: 2009/05/13
- メディア: 単行本(ソフトカバー)
- 購入: 10人 クリック: 139回
- この商品を含むブログ (16件) を見る
演算子
単項演算子と算術演算子
単項演算子
インクリメント、デクリメント演算子の効果
x の初期値 | コード | y の最終値 | x の最終値 |
---|---|---|---|
7 | y = ++x; | 8 | 8 |
7 | y = x++; | 7 | 8 |
7 | y = --x; | 6 | 6 |
7 | y = x--; | 7 | 6 |
2項演算子・・・+ (加算), - (減算), * (乗算), / (除算), % (除算の剰余)
- 結果の精度は型に制限される(演算結果が変数に保持できるより大きい場合は、上位ビットが破棄される)
- 整数を整数で除算した結果は整数になる
- 整数型 (char, byte, short, int, long) をゼロで割ると実行時に ArithmeticException が投げられる
- 正の浮動小数点型 (float, double) をゼロで割った場合
- 割られた数が正なら、Float.POSITIVE_INVINITY, Double.POSITIVE_INFINITY が返される(エラーは発生しない)。 System.out.println で出力すると「Infinity」が表示される
- 割られた数が負なら、Float.NEGATIVE_INVINITY, Double.NEGATIVE_INFINITY が返される(エラーは発生しない)。 System.out.println で出力すると「-Infinity」が表示される
- 負の浮動称す点型 (float, double) の平方根は Float.NaN, Double.NaN が返される(例外は発生しない)
- 「Double.NaN == Double.NaN」は false を返す
剰余演算子の効果
式 | 結果 |
11%3 | 2 |
11%(-3) | 2 |
-11%3 | -2 |
-11%(-3) | -2 |
3.8%1.2 | 0.19999999999999996 |
関係演算子
論理演算子
- 論理演算子・・・true または false の複数の条件を結合する演算子
- ビット論理演算子・・・ビット単位で演算を行う
- 短絡論理演算子・・・boolean 値に対して短絡的に評価を行う(必ずしも2つのオペランドが評価されない)
論理演算子 | 記述例 | 説明 |
---|---|---|
& | x & y | x と y の論理積を返す |
&& | x && y | x と y の論理積を返す。 x が false なら、y は評価されずに false を返す |
| | x | y | x と y の論理和を返す |
| | x || y | x と y の論理和を返す。 x が true なら、y は評価されずに true を返す |
^ | x ^ y | x と y の排他的論理和を返す |
! | !x | x の否定を返す |
代入演算子
- 代入演算子・・・「=」
- 複合代入演算子・・・+=, -=, *=, /=, %=, &=, |=, ^=
- 2項演算(3項演算子もかな?)の2つのオペランドの型が異なっている場合に、式の評価の前に実行される型変換。
基本データ型の暗黙的型変換
- 両オペランドとも int よりサイズが小さい(byte, short, char)・・・両方とも int 型に拡張される
- 一方のオペランドが double・・・他方も double に変換される
- 両方とも double でなく、一方がfloat・・・もう一方も float に変換される
- 両オペランドとも double, float, long でない・・・両オペランドとも int に変換される
高度な演算子
演算子 | 説明 |
---|---|
?: | Java 唯一の3項演算子。 if-else の短縮形 |
[] | 配列の宣言と作成、配列要素へのアクセス |
(《型》) | 型キャスト |
new | 新しいオブジェクト、配列を作成 |
instanceof | 第1オペランドが第2オペランドのインスタンスかどうかを判断する |
参照型の等価性と基本データ型の等価性
- 基本データ型・・・同じ値を保持しているなら等価
- 参照型・・・同じオブジェクトを参照しているなら等価
- 参照型の等値性は equals() メソッドによって評価
- Object クラスの equals() メソッドは == と同じ処理
Point
- 変数を使用してデータを保持する。 基本データ型変数はデータ値そのものを保持し、オブジェクト参照とも呼ばれる参照変数は、オブジェクトを指し示す位置情報を保持する
- 各変数は特定のデータ型として宣言され、その方と互換性のあるデータのみを保持できる
- 変数によって保持されるデータは、演算子を使用して操作される