高橋 和也 著
竹添 直樹 著
島本 多可子 著
織田 翔 著
本書は、実践で即役立つテクニックと開発ノウハウ、つまづきやすい・ハマりやすいポイントを徹底解説した「Javaプログラマ必携の逆引き集」です。Java開発の準備や基本構文といった基礎的な知識から、クラス・インターフェース、コレクション、日付操作、ファイル・入出力、スレッド、XML、JDBC、JUnit、ネットワークの基本・定番・応用テクニックまで、現場で活躍する著者陣の経験に基づいた実践の場で必ず役立つノウハウ、レシピを提供します。Javaをいまいち使いこなせていないと感じる方や中級レベルに向けてしっかり足場固めをしたい方、Javaをもっと活用したい方などにおすすめの一冊です。
第1章 Java開発の準備
1.1 セットアップ
001 JDKのセットアップ
002 Eclipseのセットアップ
1.2 実行
003 Javaプログラムを作って実行したい
004 Javaプログラムをデバッグしたい
005 クラスパスを指定したい
006 実行時のメモリを指定したい
007 JARファイルを作りたい
008 コマンドラインでコンパイル・実行したい
第2章 Javaの基本
2.1 パッケージとインポート
009 パッケージを宣言したい
010 パッケージ、クラスをインポートしたい
011 staticメンバをインポートしたい
2.2 変数とデータ型
012 Javaのデータ型について知りたい
013 Javaのリテラルについて知りたい
014 数値の計算を行ないたい
015 ビット演算を行ないたい
016 2つの値を比較したい
017 「条件式 ? 式1 : 式2」とはなんですか?
018 &&、||と&、|の違いを知りたい
019 オブジェクトの型を調べたい
020 変数の型を変換したい
021 ラッパークラスってなに?
022 nullってなに?
023 Optional ってなに?
2.3 コメント
024 ソースにコメントを記述したい
025 Javadocを記述したい
026 Javadocを生成したい
2.4 制御構文
027 ifで条件分岐したい
028 switchで条件分岐したい
029 forで繰り返し処理を行ないたい
030 whileで繰り返し処理を行ないたい
031 繰り返し処理を途中で終了したい
2.5 例外処理
032 例外を処理したい
033 複数の例外をまとめてキャッチしたい
034 例外をスローしたい
035 リソースを確実にクローズしたい
036 スタックトレースの情報を取得したい
2.6 ラムダ
037 ラムダ式ってなに?
038 汎用的な関数型インターフェースを使いたい
039 独自の関数型インターフェースを定義したい
040 ラムダ式を受け取るメソッドを定義したい
041 ラムダ式の代わりにメソッドを渡したい
2.7 文字列操作
042 文字列を連結したい
043 文字列の長さを調べたい
044 文字列の一部を切り出したい
045 文字列を分割したい
046 文字列を比較したい
047 文字列を置換したい
048 特定の文字列で開始・終了しているかを調べたい
049 特定の文字列が含まれているか知りたい
050 大文字と小文字を変換したい
051 文字列の前後の空白を削除したい
052 文字列に変数を埋め込みたい
053 文字コードを変更したい
054 文字列を数値に変換したい
2.8 正規表現
055 文字列が正規表現に一致するか調べたい
056 文字列を正規表現で検索したい
057 文字列を正規表現で置換したい
2.9 数値処理
058 数値処理をしたい
059 数値を任意の形式にフォーマットしたい
060 乱数を生成したい
061 丸め誤差の発生しない計算を行ないたい
062 符号なしの整数を扱いたい
第3章 クラスとインターフェース
3.1 基礎知識
063 クラスを使いたい
064 インターフェースを使いたい
065 インターフェースにメソッドを実装したい
066 ネストしたクラスを使いたい
067 匿名クラスを使いたい
068 クラスを継承したい
069 抽象クラスを使いたい
070 メソッドをオーバーライド・オーバーロードしたい
071 staticメンバを使いたい
072 イニシャライザを使いたい
073 可変長引数を定義したい
3.2 アクセス修飾子
074 Javaのアクセス修飾子について知りたい
3.3 列挙型(enum)
075 列挙型を使いたい
076 enum定数ごとにメソッドをオーバーライドしたい
077 列挙型に効率良いコレクションを使いたい
3.4 ジェネリクス
078 Javaのバージョンによるジェネリクスの違いを知りたい
079 ジェネリクスを定義したい
080 型パラメータに制限を付けたい
081 ワイルドカードってなにに使うの?
082 型パラメータの可変長引数を安全に使いたい
3.5 アノテーション
083 標準アノテーションを知りたい
084 独自アノテーションを作成したい
3.6 タイプアノテーション
085 タイプアノテーションってなに?
3.7 リフレクション
086 Classインスタンスを取得したい
087 リフレクションでクラスのメンバの情報を取得したい
088 リフレクションでインスタンスを生成したい
089 リフレクションでメソッドやフィールドを呼び出したい
090 リフレクションでジェネリクスの情報を取得したい
091 リフレクションでアノテーションの情報を取得したい
3.8 シリアライズ
092 インスタンスをシリアライズ・デシリアライズしたい
093 独自のシリアライズ・デシリアライズ処理をしたい
第4章 コレクション
4.1 基礎知識
094 コレクションについて知りたい
4.2 配列
095 配列を使いたい
096 配列の長さを調べたい
097 配列の要素を繰り返し処理したい
098 配列をコピーしたい
099 配列をソートしたい
100 配列に特定の要素が含まれているか調べたい
101 配列を比較したい
4.3 List
102 Listを使いたい
103 Listに要素を追加したい
104 Listの要素を取得したい
105 Listの要素を変更したい
106 Listの要素を削除したい
107 Listの要素を繰り返し処理したい
108 Listの要素数を調べたい
109 Listをソートしたい
110 Listに特定の要素が含まれるか調べたい
111 2つのListを連結したい
112 Listと配列を相互に変換したい
4.4 Set
113 Setを使いたい
114 Setに要素を追加したい
115 Setの要素を削除したい
116 Setの要素を繰り返し処理したい
117 Setの要素数を調べたい
118 Setに特定の要素が含まれるか調べたい
119 2つのSetを連結したい
4.5 Map
120 Mapを使いたい
121 Mapに要素を追加したい
122 Mapの値を取得したい
123 Mapのキーを取得したい
124 Mapの要素を取得したい
125 Mapの要素を削除したい
126 Mapの要素数を調べたい
127 Mapに特定のキーが含まれるか調べたい
128 Mapに特定の値が含まれるか調べたい
4.6 Stream
129 Streamを使いたい
130 Streamで数値を扱いたい
131 Streamの長さを調べたい
132 Streamから重複する要素を排除したい
133 Streamの要素を繰り返し処理したい
134 Streamの要素をフィルタリングしたい
135 Streamを連結したい
136 Streamの要素を変換したい
137 Streamの要素が条件に一致しているか調べたい
138 Streamの要素を集計したい
139 Streamの要素をソートしたい
140 Streamの要素をグルーピングしたい
141 Streamをコレクションに変換したい
142 無限の長さを持つStreamを生成したい
143 Streamの要素を並列に処理したい
第5章 日付操作
5.1 基礎知識
144 Javaでの日付操作について知りたい
145 現在日時を取得したい
146 年月日などを取得・設定したい
147 日付を文字列にフォーマットしたい
148 文字列を日付に変換したい
149 日付の計算を行ないたい
150 日付の前後関係を調べたい
151 月の最終日を調べたい
152 曜日を取得したい
5.2 Time API
153 Time APIで現在日時を取得したい
154 Time APIで特定日時の日付を取得したい
155 Time APIで日付を再設定したい
156 Time APIで年月日などを取得したい
157 Time APIの日時オブジェクトを相互変換したい
158 Time APIの日付を文字列にフォーマットしたい
159 Time APIで日時の計算を行ないたい
160 Time APIで日付の前後関係を調べたい
161 Time APIで月の最終日を調べたい
162 文字列をTime APIのオブジェクトに変換したい
163 Time APIで特定の期間を表わしたい
164 Time APIで2つの日付の間隔を調べたい
165 DateオブジェクトをTime APIの日付に変換したい
166 Time APIをDateオブジェクトの日付に変換したい
第6章 ファイルと入出力
6.1 基礎知識
167 Javaでのファイル操作について知りたい
6.2 ファイル
168 ファイルやディレクトリが存在するか調べたい
169 ファイルかディレクトリかを調べたい
170 ファイルやディレクトリを削除したい
171 ファイルを移動したい
172 ファイルのサイズを調べたい
173 ファイルの最終更新日時を調べたい
174 ファイルの属性を調べたい
175 ファイルの属性を設定したい
176 ファイルの絶対パスを取得したい
177 親ディレクトリを取得したい
178 ディレクトリ内のファイル一覧を取得したい
179 空のファイルを作成したい
180 一時ファイルを作成したい
181 ディレクトリを作成したい
6.3 パス
182 パスを絶対パスに変換したい
183 親ディレクトリのパスを取得したい
184 パスに対する相対パスを解決したい
185 パスからファイルを作成したい
186 パスからディレクトリを作成したい
187 パスからリンクを作成したい
188 パスが存在するかどうかを調べたい
189 パスが示すファイルやディレクトリを削除したい
190 パスが示すファイルやディレクトリを移動したい
191 パスが示すファイルやディレクトリをコピーしたい
192 パスから一時ファイルやディレクトリを作成したい
193 パスが示すファイルやディレクトリの属性を取得・設定したい
194 パスが示すディレクトリ内のファイル一覧を取得したい
195 ディレクトリ内のファイルを再帰的に処理したい
196 パスが示すファイルを読み込みたい
197 パスが示すファイルを1行ずつ読み込みたい
198 パスが示すファイルに書き出したい
199 パスからストリームやチャネルを取得したい
200 ファイルやディレクトリの変更を監視したい
6.4 入出力
201 Javaでの入出力について知りたい
202 コンソールにメッセージを出力したい
203 コンソールからの入力を受け取りたい
204 ファイルの内容をバイト配列で読み込みたい
205 バイト配列をファイルに書き出したい
206 ファイルの内容を文字列で読み込みたい
207 文字列をファイルに書き出したい
208 ファイルの任意の部分に対する入出力を行ないたい
209 クラスパスからファイルを読み込みたい
210 プロパティファイルの内容を読み込みたい
211 チャネルを使ってファイルの入出力を行ないたい
212 ファイルをロックしたい
213 ファイルをzipファイルに圧縮・展開したい
第7章 並行プログラミング
7.1 基礎知識
214 Javaの並行処理について知りたい
7.2 スレッド
215 スレッドで非同期処理を行ないたい
216 スレッドで発生した実行時例外をハンドリングしたい
217 マルチスレッドを排他制御したい
218 マルチスレッドで同期を取りながら実行したい
219 別スレッドが終了するまで待機したい
220 スレッドの処理を一時停止したい
221 スレッドに割り込みたい
222 マルチスレッドで1つのフィールドにアクセスしたい
7.3 タイマー
223 特定の時間に一度だけ処理を実行したい
224 一定間隔で繰り返し処理を実行したい
7.4 Concurrency Utilities
225 タスクを単一のスレッドで実行したい
226 タスクをスケジューリングして実行したい
227 タスクをスレッドプールを利用して実行したい
228 非同期処理から結果を返したい
229 複数のタスクの戻り値を早く終わった順に取得したい
230 スレッドの同時実行数を制御したい
231 スレッド間で相互にデータの受け渡しをしたい
232 他の処理が完了するまでスレッドを待機したい
233 別スレッドからのデータを受け取るまで待機したい
234 別スレッドがデータを受け取るまで待機したい
235 Lockでマルチスレッドを排他制御したい
236 Lockで待ち合わせるスレッドの条件を指定したい
237 参照・更新処理をマルチスレッドで行ないたい
238 ロックを使わずにマルチスレッドでの読み取り処理を行ないたい
239 値の取得や更新をアトミックに行ないたい
7.5 Fork/Join Framework
240 Fork/Join Framework ってなに?
241 マルチコアを活用してタスクを細粒度で並列実行したい
第8章 XML
8.1 基礎知識
242 XMLの処理方法について知りたい
8.2 DOM
243 DOMでXMLを読み込みたい
244 DOMでXMLを操作したい
245 DOMで新しいXMLを生成したい
246 DOMをXML 文字列に変換したい
247 DOMで読み込んだXMLをXPathで検索したい
248 DTDやXMLスキーマでXMLをバリデーションしたい
249 外部DTDやXMLスキーマの読み込みを制限したい
8.3 SAX
250 SAXでXMLを読み込みたい
8.4 StAX
251 StAXでXMLを読み込みたい
252 StAXでXMLを生成したい
8.5 JAXB
253 XMLをJavaオブジェクトにマッピングしたい
第9章 JDBC
9.1 基本的なデータベース操作
254 データベースに接続したい
255 データベースを検索したい
256 データベースに登録・更新・削除を行ないたい
257 トランザクションを制御したい
9.2 高度なデータベース操作
258 ファイルをデータベースに格納したい
259 データベースからファイルを取得したい
260 データベースのエラーコードに応じた処理をしたい
261 ストアドプロシージャを呼び出したい
262 大量のデータをまとめて登録・更新したい
263 データベースのメタデータを取得したい
第10章 JUnit
10.1 基礎知識
264 JUnit ってなに?
265 テストを作成して実行したい
10.2 テストケース
266 プログラムの実行結果を確認したい
267 JUnit 4で柔軟な比較をしたい(Matcher API)
268 例外が発生することを確認したい
269 テストの前後に処理を行ないたい
270 テストクラスの実行前後に1 度だけ処理を行ないたい
271 テストを一時的にスキップしたい
272 前提条件によってテストケースの実行有無を制御したい
10.3 ルール
273 ルールってなに?
274 テストメソッドの名前を取得したい
275 タイムアウト値を設定したい
276 例外の発生を詳細に検証したい
277 途中でテストが失敗しても最後まで検証したい
278 事後検証を共通化したい
279 テストの実行を監視したい
280 外部リソースを扱いたい
281 一時フォルダ・ファイルを扱いたい
282 カスタムルールを定義したい
283 ルールの実行順序を制御したい
284 テストクラスごとにルールを適用したい
10.4 テストスイート
285 複数のテストクラスをまとめて実行したい
286 複数のテストケースをグルーピングしたい
287 実行するテストケースを絞り込みたい
288 1つのテストをパラメータを変えて実行したい
第11章 ネットワーク、ユーティリティ、システム
11.1 ネットワーク
289 URLの情報を取得したい
290 Webサーバにリクエストを送信したい
291 TCP通信を行なうクライアントを実装したい
292 TCP通信を行なうサーバを実装したい
293 チャネルを使ってTCP通信を行ないたい
294 ノンブロッキングなTCPサーバを実装したい
11.2 ユーティリティ
295 メッセージを国際化したい
296 ハッシュ値を求めたい
297 暗号化したい
298 外部コマンドを実行したい
299 ログを出力したい
300 JavaScriptを実行したい
301 URLエンコード・デコードをしたい
302 Base64エンコード・デコードをしたい
11.3 システム
303 システムプロパティを取得したい
304 環境変数を取得したい
305 空きメモリを調べたい
306 メモリ使用状況を監視したい
307 スレッドダンプを取得したい
308 ヒープダンプを取得したい
COLUMN
Java8 対応のIDE
Eclipseの便利なショートカット
Eclipseが使用するメモリサイズを指定する
文字列比較のNullPointerExceptionを回避する
ブロックと変数のスコープ
Java 7以降での例外の再スロー
ラムダ式から参照可能な外部変数
StandardCharsetsを使う
Stringクラスだけで手軽に正規表現を使う
ラムダ式の交差型キャスト
thisとは?
finalとは?
superとは?
リフレクションとは?
スレッドセーフなコレクションクラス
空のコレクションが必要な場合
Arrays#asList()で簡単にListを生成する
イミュータブルなAPIとは?
Windowsで有効なドライブを取得する
toString()メソッドの重要性
Java 8で数値の更新をアトミックに行なう
XMLパーサの使い分け
StAXのイベントイテレータAPI
XMLの名前空間を扱う
プロキシ経由での通信
Javaのロギングライブラリ
ログメッセージ出力時のパフォーマンス
GCを強制的に実行する
Java Mission Control
付属データはこちら
内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。
正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。
本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。
刷数は奥付(書籍の最終ページ)に記載されています。
書籍の種類:
書籍の刷数:
本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。
対象の書籍は正誤表がありません。
発生刷 | ページ数 | 書籍改訂刷 | 電子書籍訂正 | 内容 | 登録日 | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|
1刷 | 028 表2.1 |
未 | 未 |
|
2014.05.13 | ||||||
1刷 | 038 サンプルコード「&&、¦¦と&、¦の違い」のif文(2か所) |
未 | 未 |
|
2014.04.22 | ||||||
1刷 | 040 サンプルコード「より狭い範囲の型への変換」3・6行目 |
未 | 未 |
|
2014.04.22 | ||||||
1刷 | 071 一番上のサンプルコード3行目 |
未 | 未 |
|
2014.04.22 | ||||||
1刷 | 076 サンプルコード「Functionインターフェースを使う」2行目 |
未 | 未 |
|
2014.04.22 | ||||||
1刷 | 082 サンプルコード「joinを使って連結する」下から2行目 |
未 | 未 |
|
2014.04.22 | ||||||
1刷 | 085 サンプルコード「文字列を分割する」下から1行目 |
未 | 未 |
|
2014.04.23 | ||||||
1刷 | 094 サンプルコード「文字列を変換する」下から1行目 |
未 | 未 |
|
2014.04.22 | ||||||
1刷 | 111 サンプルコード「文字列を符号なし整数に変換」2行目 |
未 | 未 |
|
2014.04.23 | ||||||
1刷 | 119 サンプルコード「デフォルト実装のメソッドをオーバーライドする」7行目 |
未 | 未 |
|
2014.04.23 | ||||||
1刷 | 149 NOTEのサンプルコード「ワイルドカードに境界を付ける」したから2行目 |
未 | 未 |
|
2014.04.23 | ||||||
1刷 | 219 サンプルコード「要素の置換」8~11行目 |
未 | 未 |
|
2014.04.23 | ||||||
1刷 | 273 サンプルコード「期間を日付に加算・減算する」 |
未 | 未 |
|
2014.04.23 | ||||||
1刷 | 286 サンプルコード「ファイルの最終更新日時を取得する」最終行 |
未 | 未 |
|
2014.04.23 | ||||||
1刷 | 290 サンプルコード「親ディレクトリを取得する」最終行 |
未 | 未 |
|
2014.04.23 | ||||||
1刷 | 299 サンプルコード「resolveSibling()メソッドで相対パスを解決する」下から1行目 |
未 | 未 |
|
2014.04.23 | ||||||
1刷 | 305 本文3~4行目、サンプルコードの最終行 |
未 | 未 |
|
2014.04.23 | ||||||
1刷 | 306 本文3~4行目、サンプルコードの最終行 |
未 | 未 |
|
2014.04.23 | ||||||
1刷 | 307 1つめのサンプルコード 2行目、サンプルコード「ストリームに対するcopy()メソッド」下から5行目 |
未 | 未 |
|
2014.04.23 | ||||||
1刷 | 310 一番上のサンプルコード 最終行 |
未 | 未 |
|
2014.04.23 | ||||||
1刷 | 311 本文1行目、サンプルコード「ファイルのタイムスタンプを設定する」最終行 |
未 | 未 |
|
2014.04.23 | ||||||
1刷 | 317 サンプルコード「ファイルが見つかったら処理を終了する」5行目 |
未 | 未 |
|
2014.04.23 | ||||||
1刷 | 318 サンプルコード「ファイルの内容を文字列で読み込む」3行目 |
未 | 未 |
|
2014.04.23 | ||||||
1刷 | 321 サンプルコード「オープンモードを指定する」3・5・7行目 |
未 | 未 |
|
2014.04.23 | ||||||
1刷 | 324 関連 |
未 | 未 |
|
2014.04.23 | ||||||
1刷 | 517 サンプルコード「AESによる暗号化・復号化」下から5行目 |
未 | 未 |
|
2014.04.23 | ||||||
1刷 | 519 サンプルコード「外部コマンドを実行する」8行目 |
未 | 未 |
|
2014.04.23 |
porin さん
2016-06-22
リファレンス的に使える。
shoya さん
手元に置いておきたい、現場で使えるリファレンス集だった。もちろん、人にもオススメできる。