※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

注意

  • 訳の元文はJava Language Specificationです。
  • ですます調です。
  • 権利関係の詳細を確認していないので、この訳が問題になることがあります。
  • この訳は個人的なものなので、間違いが多々あります。
  • 内容を勝手に解釈した上で意訳をすることが多々あります。
  • 理解しやすいように語を補足することがあります。
  • wiki書式に合わせるため書式等を変えることがあります。
  • 使用されている用語に対しできるだけ単一の訳語を割り当てます。
  • 訳者はこの訳を利用したことによる損害の責任を一切負いません。
  • 全部やりきるかどうか分かりません。



Java言語仕様

Java SE 7版

James Gosling
Bill Joy
Guy Steele
Gilad Bracha
Alex Buckley

2012-07-27

目次

序文 第1版
序文 第2版
序文 第3版
序文 Java SE 7版
1. はじめに
  1.1. 仕様の構成
  1.2. プログラム例
  1.3. 記法
  1.4. 組込みクラスやインタフェースとの関係
  1.5. 参考文献
2. 文法
  2.1. 文脈自由文法
  2.2. 字句文法
  2.3. 構文文法
  2.4. 文法記法
3. 字句構造
  3.1. Unicode
  3.2. 字句変換
  3.3. Unicodeエスケープ
  3.4. 行終端子
  3.5. 入力要素とトークン
  3.6. 空白
  3.7. コメント
  3.8. 識別子
  3.9. キーワード
  3.10. リテラル
    3.10.1. 整数リテラル
    3.10.2. 浮動小数点リテラル
    3.10.3. ブールリテラル
    3.10.4. 文字リテラル
    3.10.5. 文字列リテラル
    3.10.6. 文字・文字列リテラル用のエスケープシーケンス
    3.10.7. ヌルリテラル
  3.11. 分離子
  3.12. 演算子
4. 型と値と変数
  4.1. 型と変数の種類
  4.2. プリミティブ型と値
    4.2.1. 整数型と値
    4.2.2. 整数演算
    4.2.3. 浮動小数点型と書式と値
    4.2.4. 浮動小数点演算
    4.2.5. ブール型とブール値
  4.3. 参照型と値
    4.3.1. オブジェクト
    4.3.2. Objectクラス
    4.3.3. Stringクラス
    4.3.4. 参照型が同じである条件
  4.4. 型変数
  4.5. 引数付き型
    4.5.1. 型実引数とワイルドカード
    4.5.2. 引数付き型のメソッドとコンストラクター
  4.6. 型の抹消
  4.7. 具象可能型
  4.8. 未加工型
  4.9. 交差型
  4.10. サブタイプ化
    4.10.1. プリミティブ型間のサブタイプ化
    4.10.2. クラスやインタフェース型間のサブタイプ化
    4.10.3. 配列型間のサブタイプ化
  4.11. 型の使用箇所
  4.12. 変数
    4.12.1. プリミティブ型の変数
    4.12.2. 参照型の変数
    4.12.3. 変数の種類
    4.12.4. final変数
    4.12.5. 変数の初期値
    4.12.6. 型とクラスとインタフェース
5. 変換と昇格
  5.1. 変換の種類
    5.1.1. 恒等変換
    5.1.2. 拡幅プリミティブ変換
    5.1.3. 縮幅プリミティブ変換
    5.1.4. 拡幅と縮幅プリミティブ変換
    5.1.5. 拡幅参照変換
    5.1.6. 縮幅参照変換
    5.1.7. ボックス化変換
    5.1.8. ボックス化解除変換
    5.1.9. 未検査変換
    5.1.10. 捕捉変換
    5.1.11. 文字列変換
    5.1.12. 禁止変換
    5.1.13. 値集合変換
  5.2. 代入変換
  5.3. メソッド呼び出し変換
  5.4. 文字列変換
  5.5. キャスト変換
    5.5.1. 参照型のキャスト
    5.5.2. 検査済みキャストと未検査キャスト
    5.5.3. 実行時の検査済みキャスト
  5.6. 数値昇格
    5.6.1. 単項数値昇格
    5.6.2. 2項数値昇格
6. 名前
  6.1. 宣言
  6.2. 名前と識別子
  6.3. 宣言のスコープ
  6.4. 覆い隠しと不明瞭化
    6.4.1. 覆い隠し
    6.4.2. 不明瞭化
  6.5. 名前の意味の決定
    6.5.1. 文脈に従った名前の構文上の分類
    6.5.2. 文脈的にあいまいな名前の再分類
    6.5.3. パッケージ名の意味
      6.5.3.1. 単純パッケージ名
      6.5.3.2. 限定パッケージ名
    6.5.4. PackageOrTypeNamesの意味
      6.5.4.1. 単純PackageOrTypeNames
      6.5.4.2. 限定PackageOrTypeNames
    6.5.5. 型名の意味
      6.5.5.1. 単純型名
      6.5.5.2. 限定型名
    6.5.6. 式名の意味
      6.5.6.1. 単純式名
      6.5.6.2. 限定式名
    6.5.7. メソッド名の意味
      6.5.7.1. 単純メソッド名
      6.5.7.2. 限定メソッド名
  6.6. アクセス制御
    6.6.1. アクセス可能性の決定
    6.6.2. protectedアクセスの詳細
      6.6.2.1. protectedメンバーへのアクセス
      6.6.2.2. protectedコンストラクターへの限定アクセス
  6.7. 完全限定名と正規名
7. パッケージ
  7.1. パッケージメンバー
  7.2. パッケージのホストサポート
  7.3. コンパイル単位
  7.4. パッケージ宣言
    7.4.1. 名前付きパッケージ
    7.4.2. 名前なしパッケージ
  7.5. インポート宣言
    7.5.1. 単一型インポート宣言
    7.5.2. オンデマンド型インポート宣言
    7.5.3. 単一静的インポート宣言
    7.5.4. オンデマンド静的インポート宣言
  7.6. 最上位型宣言
8. クラス
  8.1. クラス宣言
    8.1.1. クラス修飾子
      8.1.1.1. abstractクラス
      8.1.1.2. finalクラス
      8.1.1.3. strictfpクラス
    8.1.2. ジェネリッククラスと型引数
    8.1.3. 内部クラスと囲みインスタンス
    8.1.4. スーパークラスとサブクラス
    8.1.5. スーパーインタフェース
    8.1.6. クラス本体とメンバー宣言
  8.2. クラスメンバー
  8.3. フィールド宣言
    8.3.1. フィールドメンバー
      8.3.1.1. staticフィールド
      8.3.1.2. finalフィールド
      8.3.1.3. transientフィールド
      8.3.1.4. volatileフィールド
    8.3.2. フィールドの初期化
      8.3.2.1. クラス変数の初期化子
      8.3.2.2. インスタンス変数の初期化子
      8.3.2.3. 初期化中のフィールド使用に関する制限
  8.4. メソッド宣言
    8.4.1. 仮引数
    8.4.2. メソッドのシグネチャー
    8.4.3. メソッド修飾子
      8.4.3.1. abstractメソッド
      8.4.3.2. staticめそっど
      8.4.3.3. finalメソッド
      8.4.3.4. nativeメソッド
      8.4.3.5. strictfpメソッド
      8.4.3.6. synchronizedメソッド
    8.4.4. ジェネリックメソッド
    8.4.5. メソッドの戻り型
    8.4.6. メソッドのスロー
    8.4.7. メソッド本体
    8.4.8. 継承と上書きと隠ぺい
      8.4.8.1. 上書き (インスタンスメソッドによる)
      8.4.8.2. 隠ぺい (クラスメソッドによる)
      8.4.8.3. 上書きと隠ぺいの要件
      8.4.8.4. 上書き等価シグネチャー付き継承メソッド
    8.4.9. オーバーロード
  8.5. メンバー型宣言
    8.5.1. 静的メンバー型宣言
  8.6. インスタンス初期化子
  8.7. 静的初期化子
  8.8. コンストラクター宣言
    8.8.1. 仮引数と型引数
    8.8.2. コンストラクターのシグネチャー
    8.8.3. コンストラクター修飾子
    8.8.4. ジェネリックコンストラクター
    8.8.5. コンストラクターのスロー
    8.8.6. コンストラクターの型
    8.8.7. コンストラクター本体
      8.8.7.1. 明示的コンストラクターの呼び出し
    8.8.8. コンストラクターのオーバーロード
    8.8.9. デフォルトコンストラクター
    8.8.10. クラスのインスタンス化の抑制
  8.9. 列挙子
    8.9.1. 列挙子定数
    8.9.2. 列挙子本体宣言
9. インタフェース
  9.1. インタフェース宣言
    9.1.1. インタフェース修飾子
      9.1.1.1. abstarctインタフェース
      9.1.1.2. strictfpインタフェース
    9.1.2. ジェネリックインタフェースと型引数
    9.1.3. スーパーインタフェースとサブインタフェース
    9.1.4. インタフェース本体とメンバー宣言
  9.2. インタフェースメンバー
  9.3. フィールド (定数) 宣言
    9.3.1. インタフェース内のフィールドの初期化
  9.4. 抽象メソッド宣言
    9.4.1. 継承と上書き
      9.4.1.1. 上書き (インスタンスメソッドによる)
      9.4.1.2. 上書きの要件
      9.4.1.3. 上書き等価シグネチャー付き継承メソッド
    9.4.2. オーバーロード
  9.5. メンバー型宣言
  9.6. 注釈型
    9.6.1. 注釈型の要素
    9.6.2. 注釈型の要素のデフォルト
    9.6.3. 組込み注釈型
      9.6.3.1. @Target
      9.6.3.2. @Retention
      9.6.3.3. @Inherited
      9.6.3.4. @Override
      9.6.3.5. @SuppressWarnings
      9.6.3.6. @Deprecated
      9.6.3.7. @SafeVarargs
  9.7. 注釈
    9.7.1. 通常の注釈
    9.7.2. マーカー注釈
    9.7.3. 単一要素注釈
10. 配列
  10.1. 配列型
  10.2. 配列変数
  10.3. 配列作成
  10.4. 配列へのアクセス
  10.5. 配列保存例外
  10.6. 配列初期化子
  10.7. 配列メンバー
  10.8. 配列のためのClassオブジェクト
  10.9. Stringでない文字の配列
11. 例外
  11.1. 例外の種類と発生要因
    11.1.1. 例外の種類
    11.1.2. 例外の発生要因
  11.2. 例外のコンパイル時検査
    11.2.1. 式の例外解析
    11.2.2. 文の例外解析
    11.2.3. 例外検査
  11.3. 実行時の例外の扱い
12. 実行
  12.1. Java仮想マシンの起動
    12.1.1. Testクラスのロード
    12.1.2. Testのリンク: 検証、準備、(省略可能な)名前解決
    12.1.3. Testの初期化: 初期化子の実行
    12.1.4. Test.mainの呼び出し
  12.2. クラスとインスタンスのロード
    12.2.1. ロード処理
  12.3. クラスとインスタンスのリンク
    12.3.1. バイナリ表現の検証
    12.3.2. クラスやインタフェース型の準備
    12.3.3. 名前参照の解決
  12.4. クラスとインタフェースの初期化
    12.4.1. 初期化の実行時点
    12.4.2. 初期化手続きの詳細
  12.5. 新しいクラスインスタンスの作成
  12.6. クラスインスタンスの終了化子
    12.6.1. 終了化子の実装
    12.6.2. メモリーモデルとの相互処理
  12.7. クラスとインタフェースのロード解除
  12.8. プログラムの終了
13. バイナリ―互換性
  13.1. バイナリ―の形式
  13.2. バイナリ―互換性の有無
  13.3. パッケージの展開
  13.4. クラスの展開
    13.4.1. abstractクラス
    13.4.2. finalクラス
    13.4.3. publicクラス
    13.4.4. スーパークラスとスーパーインタフェース
    13.4.5. クラス型引数
    13.4.6. クラス本体とメンバー宣言
    13.4.7. メンバーとコンストラクターへのアクセス
    13.4.8. フィールド宣言
    13.4.9. finalフィールドと定数
    13.4.10. staticフィールド
    13.4.11. transientフィールド
    13.4.12. メソッドとコンストラクターの宣言
    13.4.13. メソッドとコンストラクターの型引数
    13.4.14. メソッドとコンストラクターの仮引数
    13.4.15. メソッドの戻り型
    13.4.16. abstractメソッド
    13.4.17. finalメソッド
    13.4.18. nativeメソッド
    13.4.19. staticメソッド
    13.4.20. synchronizedメソッド
    13.4.21. メソッドとコンストラクターのスロー
    13.4.22. メソッドとコンストラクターの本体
    13.4.23. メソッドとコンストラクターのオーバーロード
    13.4.24. メソッドの上書き
    13.4.25. 静的初期化子
    13.4.26. 列挙子の展開
  13.5. インタフェースの展開
    13.5.1. publicインタフェース
    13.5.2. スーパーインタフェース
    13.5.3. インタフェースメンバー
    13.5.4. インタフェース型引数
    13.5.5. フィールド宣言
    13.5.6. abstractメソッド
    13.5.7. 注釈型の展開
14. ブロックと文
  14.1. 文の正常完了と中途完了
  14.2. ブロック
  14.3. 局所クラス宣言
  14.4. 局所変数宣言文
    14.4.1. 局所変数宣言と型
    14.4.2. 局所変数宣言の実行
  14.5. 文
  14.6. 空文
  14.7. ラベル付き文
  14.8. 式文
  14.9. if文
    14.9.1. if-then文
    14.9.2. if-then-else文
  14.10. assert文
  14.11. switch文
  14.12. while文
    14.12.1. while文の中途完了
  14.13. do文
    14.13.1. do文の中途完了
  14.14. for文
    14.14.1. for文の基本
      14.14.1.1. for分の初期化
      14.14.1.2. for分の繰り返し
      14.14.1.3. for分の中途終了
    14.14.2. 高度なfor文
  14.15. break文
  14.16. continue文
  14.17. return文
  14.18. throw文
  14.19. synchronized文
  14.20. try文
    14.20.1. try-catchの実行
    14.20.2. try-finallyとtry-catch-finallyの実行
    14.20.3. リソース付きtry
      14.20.3.1. リソース付きtryの基本
      14.20.3.2. 高度なリソース付きtry
  14.21. 未到達文
15. 式
  15.1. 評価と表現と結果
  15.2. 値としての変数
  15.3. 式の型
  15.4. FP厳密式
  15.5. 式と実行時検査
  15.6. 評価の正常完了と中途完了
  15.7. 評価順序
    15.7.1. 左辺オペランドを最初に評価
    15.7.2. 演算前のオペランドの評価
    15.7.3. 括弧と優先順位の評価
    15.7.4. 引数リストは左から右に評価
    15.7.5. 他の式の評価順序
  15.8. 一次式
    15.8.1. 字句リテラル
    15.8.2. クラスリテラル
    15.8.3. this
    15.8.4. 限定this
    15.8.5. 括弧で括られた式
  15.9. クラスインスタンス作成式
    15.9.1. インスタンス化するクラスの決定
    15.9.2. 囲みインスタンスの決定
    15.9.3. コンストラクターとその引数の選択
    15.9.4. クラスインスタンス作成式の実行時評価
    15.9.5. 匿名クラス宣言
      15.9.5.1. 匿名コンストラクター
  15.10. 配列作成式
    15.10.1. 配列作成式の実行時評価
  15.11. フィールドアクセス式
    15.11.1. 一次式によるフィールドアクセス
    15.11.2. superによるスーパークラスのメンバーへのアクセス
  15.12. メソッド呼び出し式
    15.12.1. コンパイル時ステップ1: 検索するクラスまたはインタフェースの決定
    15.12.2. コンパイル時ステップ2: メソッドシグネチャーの決定
      15.12.2.1. 潜在的に適用可能メソッドの識別
      15.12.2.2. フェーズ1: サブタイプ化による適用可能な項数が一致するメソッドの識別
      15.12.2.3. フェーズ2: メソッド呼び出し変換による適用可能な項数が一致するメソッドの識別
      15.12.2.4. フェーズ3: 適用可能な可変項数メソッドの識別
      15.12.2.5. 最も具体的なメソッドの選択
      15.12.2.6. メソッドの戻りとスローの型
      15.12.2.7. 実引数による型実引数の推論
      15.12.2.8. 未解決型実引数の推論
    15.12.3. コンパイル時ステップ3: 選択されたメソッドは適切か?
    15.12.4. メソッド呼び出しの実行時評価
      15.12.4.1. ターゲット参照の計算 (必要な場合)
      15.12.4.2. 引数の評価
      15.12.4.3. 型とメソッドのアクセス可能性の検査
      15.12.4.4. 呼び出すメソッドの位置確認
      15.12.4.5. フレームの作成、同期化、制御の移行
  15.13. 配列アクセス式
    15.13.1. 配列アクセスの実行時評価
  15.14. 後置式
    15.14.1. 式名
    15.14.2. 後置インクリメント演算子++
    15.14.3. 後置デクリメント演算子--
  15.15. 単項式
    15.15.1. 単項インクリメント演算子++
    15.15.2. 単項デクリメント演算子--
    15.15.3. 単項プラス演算子+
    15.15.4. 単項マイナス演算子-
    15.15.5. ビット単位補数演算子~
    15.15.6. 論理補数演算子!
  15.16. キャスト式
  15.17. 乗法演算子
    15.17.1. 乗算演算子*
    15.17.2. 除算演算子/
    15.17.3. 剰余演算子%
  15.18. 加法演算子
    15.18.1. 文字列連結演算子+
    15.18.2. 数値型加法演算子+と-
  15.19. シフト演算子
  15.20. 関係演算子
    15.20.1. 数値比較演算子<と<=と>と>=
    15.20.2. 型比較演算子instanceof
  15.21. 等価演算子
    15.21.1. 数値等価演算子==と!=
    15.21.2. ブール等価演算子==と!=
    15.21.3. 参照等価演算子==と!=
  15.22. ビット単位および論理演算子
    15.22.1. 整数ビット単位演算子&と^と|
    15.22.2. ブール論理演算子&と^と|
  15.23. 条件AND演算子&&
  15.24. 条件OR演算子||
  15.25. 条件演算子? :
  15.26. 代入演算子
    15.26.1. 単純代入演算子=
    15.26.2. 複合代入演算子
  15.27. 式
  15.28. 定数式
16. 確実な代入
  16.1. 確実な代入と式
    16.1.1. ブール定数式
    16.1.2. 条件AND演算子&&
    16.1.3. 条件OR演算子||
    16.1.4. 論理補数演算子!
    16.1.5. 条件演算子? :
    16.1.6. 条件演算子? :
    16.1.7. boolean型のその他の式
    16.1.8. 代入式
    16.1.9. 演算子++と--
    16.1.10. その他の式
  16.2. 確実な代入と文
    16.2.1. 空文
    16.2.2. ブロック
    16.2.3. 局所クラス宣言文
    16.2.4. 局所変数宣言文
    16.2.5. ラベル付き文
    16.2.6. 式文
    16.2.7. if文
    16.2.8. assert文
    16.2.9. switch文
    16.2.10. while文
    16.2.11. do文
    16.2.12. for文
      16.2.12.1. for文の初期化部
      16.2.12.2. for文の増分部
    16.2.13. breakとcontinueとreturnとthrow文
    16.2.14. synchronized文
    16.2.15. try文
  16.3. 確実な代入と引数
  16.4. 確実な代入と配列初期化子
  16.5. 確実な代入と列挙子定数
  16.6. 確実な代入と匿名クラス
  16.7. 確実な代入とメンバー型
  16.8. 確実な代入と静的初期化子
  16.9. 確実な代入とコンストラクターとインスタンス初期化子
17. スレッドとロック
  17.1. 同期化
  17.2. 待ち集合と通知
    17.2.1. 待ち集合
    17.2.2. 通知
    17.2.3. 割り込み
    17.2.4. 待ちと通知と割り込みの相互作用
  17.3. スリープと譲渡
  17.4. メモリーモデル
    17.4.1. 共有変数
    17.4.2. アクション
    17.4.3. プログラムとプログラムの順序
    17.4.4. 同期化順序
    17.4.5. 事前順序
    17.4.6. 実行
    17.4.7. 適正な実行
    17.4.8. 実行と因果律の要件
    17.4.9. 観察可能な振る舞いと終了しない実行
  17.5. finalフィールドの意味論
    17.5.1. finalフィールドの意味論
    17.5.2. コンストラクター内のfinalフィールドの読み込み
    17.5.3. finalフィールドのその後の変更
    17.5.4. 書き込み禁止フィールド
  17.6. ワードの引き裂き
  17.7. doubleとlongの非原子的扱い
18. 文法
目次

例一覧

3.10.5-1. 文字列リテラル
4.2.2-1. 整数演算
4.2.4-1. 浮動小数点演算
4.3.1-1. オブジェクト作成
4.3.1-2. プリミティブと参照の同一性
4.4-1. 型変数のメンバー
4.5.1-1. ワイルドカード
4.5.1-2. 制限付きワイルドカード
4.8-1. 未加工型
4.8-2. 未加工型と継承
4.11-1. 型の使用
4.12.3-1. 異なる種類の変数
4.12.4-1. final変数
4.12.5-1. 変数の初期値
4.12.6-1. 変数の型 対 オブジェクトのクラス
5.0-1.Conversions at Compile-time and Run-time
5.0-2.Conversion Contexts
5.1.2-1.Widening Primitive Conversion
5.1.3-1.Narrowing Primitive Conversion
5.1.3-2.Narrowing Primitive Conversions that lose information
5.2-1.Assignment Conversion for Primitive Types
5.2-2.Assignment Conversion for Reference Types
5.2-3.Assignment Conversion for Array Types
5.5.1-1.Casting Conversion for Reference Types
5.5.1-2.Casting Conversion for Array Types
5.5.3-1.Incompatible Types at Run-time
5.6.1-1.Unary Numeric Promotion
5.6.2-1.Binary Numeric Promotion
6.1-1.Unique Package Names
6.1-2.Descriptive Class Names
6.1-3.Conventional Type Variable Names
6.2-1.Identifiers and Obscuring
6.3-1.Scope and Type Declarations
6.3-2.Scope of Local Variable Declarations
6.4-1.Attempted Shadowing Of A Local Variable
6.4.1-1.Shadowing of a Field Declaration by a Local Variable Declaration
6.4.1-2.Shadowing of a Type Declaration by Another Type Declaration
6.5.2-1.Reclassification of Contextually Ambiguous Names
6.5.5.2-1.Qualified Type Names
6.5.6.1-1.Simple Expression Names
6.5.6.2-1.Qualified Expression Names
6.5.6.2-2.Qualifying an Expression with a Type Name
6.6-1.Access Control
6.6-2.Access topublicFields, Methods, and Constructors
6.6-3.Access topublicand Non-publicClasses
6.6-4.Access to Default-Access Fields, Methods, and Constructors
6.6-5.Access toprivateFields, Methods, and Constructors
6.6.2-1.Access toprotectedFields, Methods, and Constructors
6.7-1.Fully Qualified Names
6.7-2.Fully Qualified Names v. Canonical Name
7.5.1-1.Single-Type-Import
7.5.1-2.Duplicate Type Declarations
7.5.1-3.No Import of a Subpackage
7.5.1-4.Importing a Type Name that is also a Package Name
7.5.2-1.Type-Import-on-Demand
7.6-1.Conflicting Top Level Type Declarations
7.6-2.Scope of Top Level Types
7.6-3.Fully Qualified Names
8.1.1.1-1.Abstract Class Declaration
8.1.1.1-2.Abstract Class Declaration that Prohibits Subclasses
8.1.2-1.Mutually Recursive Type Variable Bounds
8.1.2-2.Nested Generic Classes
8.1.3-1.Inner Class Declarations and Static Members
8.1.3-2.Inner Class Declarations
8.1.4-1.Direct Superclasses and Subclasses
8.1.4-2.Superclasses and Subclasses
8.1.4-3.Class Depends on Itself
8.1.5-1.Illegal Superinterfaces
8.1.5-2.Superinterfaces
8.1.5-3.Implementing Methods of a Superinterface
8.1.5-4.Illegal Multiple Inheritance of an Interface
8.2-1.Use of Class Members
8.2-2.Inheritance of Class Members with Default Access
8.2-3.Inheritance ofpublicandprotectedClass Members
8.2-4.Inheritance ofprivateClass Members
8.2-5.Accessing Members of Inaccessible Classes
8.3-1.Multiply Inherited Fields
8.3-2.Re-inheritance of Fields
8.3.1.1-1.staticFields
8.3.1.1-2.Hiding of Class Variables
8.3.1.1-3.Hiding of Instance Variables
8.3.1.3-1.Persistence oftransientFields
8.3.1.4-1.volatileFields
8.3.2-1.Field Initialization
8.3.2.2-1.Out-of-order Field Initialization
8.3.2.3-1.Restrictions on Field Initialization
8.4.2-1.Override-Equivalent Signatures
8.4.3.1-1.Abstract/Abstract Method Overriding
8.4.3.1-2.Abstract/Non-Abstract Overriding
8.4.3.6-1.synchronizedMonitors
8.4.3.6-2.synchronizedMethods
8.4.6-1.Type Variables as Thrown Exception Types
8.4.8.1-1.Overriding
8.4.8.1-2.Overriding
8.4.8.2-1.Invocation of Hidden Class Methods
8.4.8.3-1.Covariant Return Types
8.4.8.3-2.Unchecked Warning from Return Type
8.4.8.3-3.Incorrect Overriding because ofthrows
8.4.8.3-4.Erasure Affects Overriding
8.4.9-1.Overloading
8.4.9-2.Overloading, Overriding, and Hiding
8.8-1.Constructor Declarations
8.8.7-1.Constructor Bodies
8.8.7.1-1.Qualified Superclass Constructor Invocation
8.8.7.1-2.Restrictions on Explicit Constructor Invocation Statements
8.8.9-1.Default Constructors
8.8.9-2.Accessibility of Constructors v. Classes
8.8.10-1.Preventing Instantiation via Constructor Accessibility
8.9.1-1.Iterating Over Enum Constants With An EnhancedforLoop
8.9.1-2.Use Ofjava.util.EnumSetFor Subranges
8.9.2-1.Restriction On Enum Constant Self-Reference
8.9.2-2.Enum Type With Members
8.9.2-3.Multiple Enum Types
8.9.2-4.Enum Constants with Class Bodies
9.3-1.Ambiguous Inherited Fields
9.3-2.Multiply Inherited Fields
9.3.1-1.Forward Reference to a Field
9.4.1.1-1.Overriding anabstractMethod Declaration
9.4.2-1.Overloading anabstractMethod Declaration
9.6.1-1.Annotation Type Declarations
9.6.1-2.Single-Element Annotation Type Declarations
9.6.2-3.Complex Annotation Type Declaration
9.6.2-1.Annotation Type Declaration With Default Values
9.7.1-1.Normal Annotations
9.7.2-1.Marker Annotations
9.7.3-1.Single-Element Annotations
10.2-1.Declarations of Array Variables
10.4-1.Array Access
10.5-1.ArrayStoreException
10.6-1.Array Initializers
10.7-1.Arrays Are Cloneable
10.7-2.Shared Subarrays After A Clone
10.8-1.ClassObject Of Array
10.8-2.ArrayClassObjects Are Shared
11.2.3-1.Catching Checked Exceptions
11.3-1.Throwing and Catching Exceptions
12.4.1-1.Superclasses Are Initialized Before Subclasses
12.4.1-2.Only The Class That DeclaresstaticField Is Initialized
12.4.1-3.Interface Initialization Does Not Initialize Superinterfaces
12.5-1.Evaluation of Instance Creation
12.5-2.Dynamic Dispatch During Instance Creation
13.4.4-1.Changing A Superclass
13.4.6-1.Changing A Class Body
13.4.6-2.Changing A Superclass
13.4.7-1.Changing Accessibility
13.4.8-1.Adding A Field Declaration
13.4.9-1.Changing A Variable To Befinal
13.4.9-2.Conditional Compilation
13.4.16-1.Changing A Method To Beabstract
13.4.17-1.Changing A Method To Befinal
13.4.23-1.Adding An Overloaded Method
13.5.3-1.Deleting An Interface Member
14.3-1.Local Class Declarations
14.11-1.Fall-Through in theswitchStatement
14.13-1.ThedoStatement
14.14-1.Enhanced-forAnd Arrays
14.14-2.Enhanced-forAnd Unboxing Conversion
14.15-1.ThebreakStatement
14.16-1.ThecontinueStatement
14.19-1.ThesynchronizedStatement
14.20.1-1.Catching An Exception
14.20.2-1.Handling An Uncaught Exception Withfinally
15.7.1-1.Left-Hand Operand Is Evaluated First
15.7.1-2.Implicit Left-Hand Operand In Operator Of Compound Assigment
15.7.1-3.Abrupt Completion of Evaluation of the Left-Hand Operand
15.7.2-1.Evaluation of Operands Before Operation
15.7.4-1.Evaluation Order At Method Invocation
15.7.4-2.Abrupt Completion of Argument Expression
15.8.3-1.ThethisExpression
15.9.4-1.Evaluation Order and Out-Of-Memory Detection
15.10.1-1.Array Creation Evaluation
15.10.1-2.Multi-Dimensional Array Creation
15.10.1-3.OutOfMemoryErrorand Dimension Expression Evaluation
15.11.1-1.Static Binding for Field Access
15.11.1-2.Receiver Variable Is Irrelevant ForstaticField Access
15.11.2-1.ThesuperExpression
15.12.2-1.Method Applicability
15.12.2-2.Return Type Not Considered During Method Selection
15.12.2-3.Choosing The Most Specific Method
15.12.4.1-1.Target References andstaticMethods
15.12.4.1-2.Evaluation Order During Method Invocation
15.12.4.4-1.Overriding and Method Invocation
15.12.4.4-2.Method Invocation Usingsuper
15.12.4.5-1.Invoked Method Signature Has Different Erasure Than Compile-Time Method Signature
15.13-1.Array Reference Is Evaluated First
15.13-2.Abrupt Completion of Array Reference Evaluation
15.13-3.nullArray Reference
15.17.3-1.Integer Remainder Operator
15.17.3-2.Floating-Point Remainder Operator
15.18.1-1.String Concatenation
15.18.1-2.String Concatenation and Conditionals
15.20.2-1.TheinstanceofOperator
15.26.1-1.Simple Assignment To An Array Component
15.26.2-1.Compound Assignment To An Array Component
15.26.2-2.Value Of Left-Hand Side Of Compound Assignment Is Saved Before Evaluation Of Right-Hand Side
15.28-1.Constant Expressions
16-1.Definite Assignment Considers Structure of Statements and Expressions
16-2.Definite Assignment Does Not Consider Values of Expressions
16-3.Definite Unassignment
17.4-1.Incorrectly Synchronized Programs May Exhibit Surprising Behavior
17.4.5-1.Happens-before Consistency
17.4.8-1.Happens-before Consistency Is Not Sufficient
17.5-1.finalFields In The Java Memory Model
17.5-2.finalFields For Security
17.5.3-1.Aggressive Optimization offinalFields
17.6-1.Detection of Word Tearing