Java魂

―プログラミングを極める匠の技

[cover photo]
TOPICS
Programming , Java
発行年月日
PRINT LENGTH
360
ISBN
4-87311-207-9
原書
Hardcore Java
FORMAT
Print
3,960円
この商品は品切れ再入荷未定です

Javaはひと通り使えるけれどそれだけでは物足りない、次の一歩を踏み出したい、Javaをさらに使いこなしたい、スキルアップしたいと考えるすべてのJava求道者に贈るJavaプログラミングの解説書です。プログラミングのヒント、アイデア、抑えておくべきポイントなど、Javaを最大限に活用するための話題が満載。犯しやすい間違いや、便利だけれども理解しにくいJava特有の概念もていねいに説明します。サンプルコードも豊富で実用度満点。Java魂 ――Javaの真髄、魅力がたっぷり楽しめる一冊です。Javaプログラマ中のJavaプログラマを目指すなら必読です。

関連ファイル

目次

監訳者まえがき
はじめに

1章 Javaの復習
	1.1 中核概念
		1.1.1 ポインタに関する不変的な問題
		1.1.2 すべてはクラスでありオブジェクトは神のような存在である
		1.1.3 RTTI
	1.2 構文の問題
		1.2.1 ifの短縮
		1.2.2 三項式
		1.2.3 forループの活用
		1.2.4 不注意なフロー制御
		1.2.5 assert
		1.2.6 コンストラクタの連結
		1.2.7 初期化
	1.3 アクセス関連の問題
		1.3.1 好ましい制限
		1.3.2 友達(フレンドインスタンス)は無制限のアクセスを許可する
	1.4 よくある間違い
		1.4.1 Systemストリーム
		1.4.2 System.exit()
		1.4.3 デフォルト実行

2章 ファイナル(final)ストーリー
	2.1 final定数
		2.1.1 public基本型と置き換え
		2.1.2 多すぎる定数
	2.2 final変数
		2.2.1 メソッドスコープのfinal変数
		2.2.2 初期化の遅延
	2.3 finalパラメータ
	2.4 finalコレクション
	2.5 インスタンススコープ変数
	2.6 finalクラス
	2.7 finalメソッド
	2.8 条件付きコンパイル
		2.8.1 条件付きコンパイル変数の位置
	2.9 finalをコーディング規約として使用する

3章 不変な型
	3.1 基本原理
		3.1.1 不変な型の作成
		3.1.2 不完全な不変性
		3.1.3 見せかけの不変な型
	3.2 不変性の問題
		3.2.1 Stringの罠
		3.2.2 パフォーマンス不良の解決策
	3.3 不変にするかしないか

4章 コレクション
	4.1 コレクションの概念
		4.1.1 インタフェースベースの手法
		4.1.2 コレクションの種類
	4.2 実装
		4.2.1 等価性と順序の決定
		4.2.2 O記法(Big O Notation)
		4.2.3 List
		4.2.4 MapとSortedMap
		4.2.5 SetとSortedSet
	4.3 コレクション型の選択
	4.4 コレクションの反復
		4.4.1 3種類のイテレータ
		4.4.2 フェイルファストイテレータ
	4.5 コレクションの注意点
		4.5.1 参照による格納
		4.5.2 hashCode()のオーバーライド忘れ
		4.5.3 型の安全性の欠如
		4.5.4 問題のまとめ

5章 優れた例外処理コード
	5.1 2種類の例外
		5.1.1 Exceptionのサブクラス
		5.1.2  RuntimeExceptionのサブクラス
		5.1.3 ExceptionかRuntimeExceptionか
	5.2 例外をいつ使うか
		5.2.1 例外の使用し忘れ
		5.2.2 多すぎる例外
	5.3 後始末のためのfinally句
	5.4 例外処理のわな

6章 ネストクラス
	6.1 内部クラス
		6.1.1 内部クラスの階層
	6.2 限定スコープ内部クラス
		6.2.1 無名クラス
		6.2.2 限定スコープ内部クラスの問題点
	6.3 staticネストクラス
	6.4 二重ネストクラス
	6.5 インタフェース内のネストクラス
	6.6 ネストインタフェース
		6.6.1 クラス内のネストインタフェース
		6.6.2 インタフェース内のネストインタフェース
	6.7 ネストクラスのルール

7章 定数のすべて
	7.1 置換定数
		7.1.1 置換定数を使った国際化
	7.2 ビットフィールド
		7.2.1 ビットフィールドの変更
		7.2.2 ビットフィールドの比較
		7.2.3 ビットフィールドの問題
	7.3 オプション定数
		7.3.1 オプション定数の欠点
	7.4 定数オブジェクト
		7.4.1 定数オブジェクトの性能
		7.4.2 定数オブジェクトの索引付け
		7.4.3 直列化された定数オブジェクト
		7.4.4 複数の定数オブジェクト型への対処
	7.5 定数のカプセル化

8章 データモデリング
	8.1 要求仕様書
		8.1.1 反復プロセス
		8.1.2 要求仕様書の承認
		8.1.3 ギャップを埋める
	8.2 自然言語モデリング
		8.2.1 名詞の集合
		8.2.2 自然言語モデリングの応用例
	8.3 適切に設計されたデータモデルの特徴
		8.3.1 ゴーストクラス
		8.3.2 適切な関係
		8.3.3 基本型の問題
		8.3.4 可変オブジェクト
	8.4 再利用可能なデータ制約
		8.4.1 ConstraintException
		8.4.2 制約階層
		8.4.3 制約の使用
		8.4.4 新しい制約型の生成
	8.5 永続性
		8.5.1 RDBMSとOODBMSの比較
		8.5.2 救援のためのJava Data Objects(JDO)

9章 実用的なリフレクション
	9.1 リフレクションの基本
	9.2 リフレクションとグレートリフレクション
		9.2.1 java.langパッケージ
		9.2.2 java.lang.reflectパッケージ
		9.2.3 java.beansパッケージ
	9.3 MutableObjectへのリフレクションの適用
		9.3.1  toString()上でのリフレクション
		9.3.2 制約の取得
	9.4 リフレクションの性能
	9.5 リフレクション+JUnit=安定コード

10章 プロキシ
	10.1 プロキシとは
		10.1.1 ネットワークプロキシとCORBA
		10.1.2 ファクトリ
		10.1.3 クライアントオブジェクトとサーバオブジェクト
	10.2 2種類のプロキシ
		10.2.1 静的プロキシ
		10.2.2 インタフェースによるプロキシ
		10.2.3 動的プロキシ
	10.3 プロキシに関する注意点

11章 4種類の参照
	11.1 問題
	11.2 Javaの参照に関する概念
		11.2.1 強い参照
		11.2.2 弱い参照
		11.2.3 ソフト参照
		11.2.4 ファントム参照
		11.2.5 リファレンスとリファレント
		11.2.6 参照キュー
		11.2.7 ガベージコレクションの処理過程
	11.3 Java参照クラス
		11.3.1 参照クラス
		11.3.2 参照キュー
	11.4 実際の応用例
		11.4.1 弱いコレクション
		11.4.2 WeakHashSetのテスト
	11.5 弱いリスナ
	11.6 参照の使い分け

12章 Tiger:JDK 5.0
	12.1 新しい言語機能
	12.2 for-each構文
		12.2.1 変数のオートボクシング(Autoboxing)
		12.2.2 列挙型(enum)
		12.2.3 staticインポート
		12.2.4 可変引数
	12.3 ジェネリック型
		12.3.1 ジェネリック型の構文
		12.3.2 パラメータ化情報の削除
		12.3.3 ジェネリック型のキャスト
		12.3.4 ジェネリックメソッド
		12.3.5 推論
		12.3.6 ジェネリック型に関する注意点
	12.4 その他の改良点

索引