Effective Java 第2版

Effective Java 第2版

原書名 Effective Java 2nd Edition
著者名 柴田 芳樹
発行元 丸善出版
発行年月日 2013年06月
判型 B5変
ページ数 348ページ
ISBN 978-4-621-06605-8
Cコード 3004
ジャンル 電気・電子・情報工学 >  情報・コンピュータ >  言語・プログラミング

内容紹介

Javaプログラミング書籍の定本「Effective Java」の改訂版。著者のGoogle, Sun Microsystemsにおけるソフトウェア開発で得た知識・経験をまとめた、JavaでプログラミングをするすべてのSE必読の書籍。2001年の初版以降の追加項目、JavaSE6.0に対応。

目次

第1章 はじめに
第2章 オブジェクトの生成と消滅
 項目1 コントラクタの変わりにstaticファクトリーメソッドを検討する
 項目2 数多くのコンストラクタパラメータに直面した時にはビルダーを検討する
 項目3 privateのコンストラクタかenum型でシングルトン特性を強制する
 項目4 privateのコンストラクタでインスタンス化不可能を強制する
 項目5 不必要なオブジェクトの生成を避ける
 項目6 廃れたオブジェクト参照を取り除く
 項目7 ファイナライザを避ける
第3章 すべてのオブジェクトに共通のメソッド
 項目8 equalsをオーバーライドする時は一般契約に従う
 項目9 equalsをオーバーライドする時は、常にhashCodeをオーバーライドする
 項目10 toStringを常にオーバーライドする
 項目11 cloneを注意してオーバーライドする
 項目12 Comparableの実装を検討する
第4章 クラスとインタフェース
 項目13 クラスとメンバーへのアクセス可能性を最小限にする
 項目14 publicのクラスでは、publicのフィールドではなく、アクセッサーメソッドを使う
項目15 可能性を最小限にする
項目16 継承よりコンポジションを選ぶ
項目17 継承のために設計および文書化する、でなければ継承を禁止する
 項目18 抽象クラスよりインタフェースを選ぶ
 項目19 型を定義するためだけにインタフェースを使用する
 項目20 タグ付クラスよりクラス階層を選ぶ
 項目21 戦略を表現するために関数オブジェクトを使用する
 項目22 非staticのメンバークラスよりstaticのメンバークラスを選ぶ
第5章 ジェネリックス
 項目23 新たなコードで原型を使用しない
 項目24 無検査警告を取り除く
 項目25 配列よりリストを選ぶ
 項目26 ジェネリック型を使用する
 項目27 ジェネリックメソッドを使用する
 項目28 APIの柔軟性向上のために境界ワイルドカードを使用する
 項目29 型安全な異種コンテナーを検討する
第6章 enumとアノテーション
 項目30 int定数の代わりにenumを使用する
 項目31 序数の代わりにインスタンスフィールドを使用する
 項目32 ビットフィールドの代わりにEnumSetを使用する
 項目33 序数インデックスの代わりにEnumMapを使用する
 項目34 拡張可能なenumをインタフェースで模倣する
 項目35 命名パターンよりアノテーションを選ぶ
 項目36 常にOverrideアノテーションを使用する
 項目37 型を定義するためにマーカーインタフェースを使用する
第7章 メソッド
 項目38 パラメータの正当性を検査する
 項目39 必要な場合には、防御的にコピーする
 項目40 メソッドのシグニチャを注意深く設計する
 項目41 オーバーロードを注意して使用する
 項目42 可変長引数を注意して使用する
 項目43 nu11ではなく、空配列か空コレクションを返す
 項目44 すべての公開API要素に対してドキュメントコメントを書く
第8章 プログラミング一般
 項目45 ローカル変数のスコープを最小限にする
 項目46 従来のforループよりfor-eachループを選ぶ
 項目47 ライブラリーを知り、ライブラリーを使う
 項目48 正確な答えが必要ならば、floatとdoubleを避ける
 項目49 ボクシングされた基本データより基本データ型を選ぶ
 項目50 他の型が適切な場所では、文字列を避ける
 項目51 文字列結合のパフォーマンスに用心する
 項目52 インターフェースでオブジェクトを参照する
 項目53 リフレクションよりインタフェースを選ぶ
 項目54 ネイティブメソッドを注意して使用する
 項目55 注意して最適化する
 項目56 一般的に受け入れられている命名規約を守る
第9章 例外
 項目57 例外的状態にだけ例外を使用する
 項目58 回復可能な状態にはチェックされる例外を、プログラミングエラーには実行時例外を使用する
 項目59 チェックされる例外を不必要に使用するのを避ける
 項目60 標準例外を使用する
 項目61 抽象概念に適した例外をスローする
 項目62 各メソッドがスローするすべての例外を文書化する
 項目63 詳細メッセージにエラー記録情報を含める
 項目64 エラーアトミック性に努める
 項目65 例外を無視しない
第10章 並行性
 項目66 共有された可変データへのアクセスを同期する
 項目67 過剰な同期は避ける
 項目68 スレッドよりエグゼキューターとタクスを選ぶ
 項目69 waitとnotifyよりコンカレンシーユーティリティを選ぶ
 項目70 スレッド安全性を文書化する
 項目71 遅延初期化を注意して使用する
 項目72 スレッドスケジューラに依存しない
 項目73 スレッドグループを避ける
第11章 シリアライズ
 項目74 Serializableを注意して実装する
 項目75 カスタムシリアライズ形式の使用を検討する
 項目76 防御的にreadObjectを書く
 項目77 インスタンス制御に対しては、readResolveよりenum型を選ぶ
 項目78 シリアライズされたインスタンスの代わりに、シリアライズ・プロキシを検討する
付録 初版に対応する項目

定価:本体3,600円+税
在庫:品切れ・重版未定