Effective Java 第1版(Joshua Bloch)
書籍情報
- 著者:Joshua Bloch(著), 柴田芳樹(訳)
- 発行日:2001-11-30
- ISBN:9784894714366
書籍目次
- 日本語版によせて
- 訳者まえがき
- Effective Java によせて
- まえがき
- 謝辞
- 第1章 はじめに
- 第2章 オブジェクトの生成と消滅
- 項目1 コンストラクタの代りに static ファクトリーメソッドの提供を検討する
- 項目2 private のコンストラクタでシングルトン特性を強制する
- 項目3 private のコンストラクタでインスタンス化不可能を矯正する
- 項目4 重複したオブジェクトを生成するのを避ける
- 項目5 廃れたオブジェクト参照を取り除く
- 項目6 ファイナライザを避ける
- 第3章 すべてのオブジェクトに共通のメソッド
- 項目7 equals をオーバーライドする時は一般契約に従う
- 項目8 equals をオーバーライドする時は、常に hashCode をオーバーライドする
- 項目9 toString を常にオーバーライドする
- 項目10 clone を注意してオーバーライドする
- 項目11 Comparble を実装することを検討する
- 第4章 クラスとインターフェイス
- 項目12 クラスとメンバーへのアクセス可能性を最小限にする
- 項目13 不変性を選ぶ
- 項目14 継承よりコンポジションを選ぶ
- 項目15 継承のために設計および文書化する、でなければ継承を禁止する
- 項目16 抽象クラスよりインターフェイスを選ぶ
- 項目17 型を定義するためだけにインターフェースを使用する
- 項目18 非 static のメンバークラスより static のメンバークラスを選ぶ
- 第5章 C構文に対する置き換え
- 項目19 構造体をクラスで置き換える
- 項目20 共用体をクラス階層で置き換える
- 項目21 enum 構文をクラスで置き換える
- 項目22 関数ポインタをクラスとインターフェースで置き換える
- 第6章 メソッド
- 項目23 パラメータの正当性を検査する
- 項目24 必要な場合には、防御的にコピーする
- 項目25 メソッドのシグニチャを注意深く設計する
- 項目26 オーバーロードを注意して使用する
- 項目27 null ではなく、長さゼロの配列を返す
- 項目28 全ての公開 API 要素に対してドキュメントコメントを書く
- 第7章 プログラミング一般
- 項目29 ローカル変数のスコープを最小限にする
- 項目30 ライブラリーを知り、ライブラリーを使う
- 項目31 正確な答えが必要ならば、 float と double を避ける
- 項目32 他の型が適切な場合には、文字列を避ける
- 項目33 文字列結合のパフォーマンスに用心する
- 項目34 インターフェイスでオブジェクトを参照する
- 項目35 リフレクションよりインターフェイスを選ぶ
- 項目36 ネイティブメソッドを注意して使用する
- 項目37 注意して最適化する
- 項目38 一般的に受け入れられている命名規約を守る
- 第8章 例外
- 項目39 例外的状態にだけ例外を使用する
- 項目40 回復可能な状態にはチェックされる例外を、プログラミングエラーには実行時例外を使用する
- 項目41 チェックされる例外を不必要に使用するのを避ける
- 項目42 標準例外を使用する
- 項目43 抽象概念に適した例外をスローする
- 項目44 各メソッドがスローするすべての例外を文書化する
- 項目45 詳細メッセージにエラー記録情報を含める
- 項目46 エラーアトミック性に努める
- 項目47 例外を無視しない
- 第9章 スレッド
- 項目48 共有された可変データへのアクセスを同期する
- 項目49 過剰な同期は避ける
- 項目50 ループの外で決して wait を呼び出さない
- 項目51 スレッドスケジューラに依存しない
- 項目52 スレッド安全性を文書化する
- 項目53 スレッドグループを避ける
- 第10章 シリアライズ
- 項目54 Serializable を注意して実装する
- 項目55 カスタムシリアライズ型式を使用することを検討する
- 項目56 防御的に readObject を書く
- 項目57 必要な時には readResolve メソッドを提供する
- 参考文献
- パターンとイディオムの索引
- 索引