「Java言語仕様 Java SE 7版 日本語訳」の編集履歴(バックアップ)一覧はこちら

Java言語仕様 Java SE 7版 日本語訳」(2012/09/11 (火) 21:10:17) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

*注意 -訳の元文は[[Java Language Specification>http://docs.oracle.com/javase/specs/jls/se7/html/index.html]]です。 -ですます調です。 -権利関係の詳細を確認していないので、この訳が問題になることがあります。 -この訳は個人的なものなので、間違いが多々あります。 -内容を勝手に解釈した上で意訳をすることが多々あります。 -理解しやすいように語を補足することがあります。 -wiki書式に合わせるため書式等を変えることがあります。 -使用されている用語に対しできるだけ単一の訳語を割り当てます。 -訳者はこの訳を利用したことによる損害の責任を一切負いません。 -全部やりきるかどうか分かりません。 ---- #center(){ *&color(red){Java言語仕様} **&italic(){&color(red){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. 関係演算子]]     &link(15.20.1. 数値比較演算子<と<=と>と>=){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. 文法]] 目次 ---- *例一覧 &link_anchor(ex3.10.5-1,page=3.10.5. 文字列リテラル){3.10.5-1. 文字列リテラル} &link_anchor(ex4.2.2-1,page=4.2.2. 整数演算){4.2.2-1. 整数演算} &link_anchor(ex4.2.4-1,page=4.2.4. 浮動小数点演算){4.2.4-1. 浮動小数点演算} &link_anchor(ex4.3.1-1,page=4.3.1. オブジェクト){4.3.1-1. オブジェクト作成} &link_anchor(ex4.3.1-2,page=4.3.1. オブジェクト){4.3.1-2. プリミティブと参照の同一性} &link_anchor(ex4.4-1,page=4.4. 型変数){4.4-1. 型変数のメンバー} &link_anchor(ex4.5.1-1,page=4.5.1. 型実引数とワイルドカード){4.5.1-1. ワイルドカード} &link_anchor(ex4.5.1-2,page=4.5.1. 型実引数とワイルドカード){4.5.1-2. 制限付きワイルドカード} &link_anchor(ex4.8-1,page=4.8. 未加工型){4.8-1. 未加工型} &link_anchor(ex4.8-2,page=4.8. 未加工型){4.8-2. 未加工型と継承} &link_anchor(ex4.11-1,page=4.11. 型の使用箇所){4.11-1. 型の使用} &link_anchor(ex4.12.3-1,page=4.12.3. 変数の種類){4.12.3-1. 異なる種類の変数} 4.12.4-1.Final Variables 4.12.5-1.Initial Values of Variables 4.12.6-1.Type of a Variable versus Class of an Object 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
*注意 -訳の元文は[[Java Language Specification>http://docs.oracle.com/javase/specs/jls/se7/html/index.html]]です。 -ですます調です。 -権利関係の詳細を確認していないので、この訳が問題になることがあります。 -この訳は個人的なものなので、間違いが多々あります。 -内容を勝手に解釈した上で意訳をすることが多々あります。 -理解しやすいように語を補足することがあります。 -wiki書式に合わせるため書式等を変えることがあります。 -使用されている用語に対しできるだけ単一の訳語を割り当てます。 -訳者はこの訳を利用したことによる損害の責任を一切負いません。 -全部やりきるかどうか分かりません。 ---- #center(){ *&color(red){Java言語仕様} **&italic(){&color(red){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. 関係演算子]]     &link(15.20.1. 数値比較演算子<と<=と>と>=){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. 文法]] 目次 ---- *例一覧 &link_anchor(ex3.10.5-1,page=3.10.5. 文字列リテラル){3.10.5-1. 文字列リテラル} &link_anchor(ex4.2.2-1,page=4.2.2. 整数演算){4.2.2-1. 整数演算} &link_anchor(ex4.2.4-1,page=4.2.4. 浮動小数点演算){4.2.4-1. 浮動小数点演算} &link_anchor(ex4.3.1-1,page=4.3.1. オブジェクト){4.3.1-1. オブジェクト作成} &link_anchor(ex4.3.1-2,page=4.3.1. オブジェクト){4.3.1-2. プリミティブと参照の同一性} &link_anchor(ex4.4-1,page=4.4. 型変数){4.4-1. 型変数のメンバー} &link_anchor(ex4.5.1-1,page=4.5.1. 型実引数とワイルドカード){4.5.1-1. ワイルドカード} &link_anchor(ex4.5.1-2,page=4.5.1. 型実引数とワイルドカード){4.5.1-2. 制限付きワイルドカード} &link_anchor(ex4.8-1,page=4.8. 未加工型){4.8-1. 未加工型} &link_anchor(ex4.8-2,page=4.8. 未加工型){4.8-2. 未加工型と継承} &link_anchor(ex4.11-1,page=4.11. 型の使用箇所){4.11-1. 型の使用} &link_anchor(ex4.12.3-1,page=4.12.3. 変数の種類){4.12.3-1. 異なる種類の変数} &link_anchor(ex4.12.4-1,page=4.12.4. final変数){4.12.4-1. final変数} &link_anchor(ex4.12.5-1,page=4.12.5. 変数の初期値){4.12.5-1. 変数の初期値} &link_anchor(ex4.12.6-1,page=4.12.6. 型とクラスとインタフェース){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

表示オプション

横に並べて表示:
変化行の前後のみ表示:
目安箱バナー