無限大な夢のあと

テニスとアニメが大好きな厨二病SEのブログ

【書評】Javaポケットリファレンス( @yyamada ) 

今回もWINGSプロジェクト様( @yyamada )の書籍レビュアーに応募させていただき書評を書かせていただくことになりました。
WINGSプロジェクトの皆様、著者の山田様ありがとうございます。
今回は表題にもある以下のURLの書籍を献本していただきましたので、こちらのレビューをさせていただきます。

[改訂新版]Javaポケットリファレンス

[改訂新版]Javaポケットリファレンス

レビューアの私の前提としては、Javaの経験としては4年になります。普段はJavaで広告配信のシステムを開発しています。
また、現在の現場ではJava8も実戦投入済みで、追加されたラムダ式やStreamについては学んでいる最中です。

ここから書籍レビューに入らせていただきます。
1か月ちょっと現場で使ってみましたが、Java8で追加された機能も踏まえた上で、実現したい機能についてすぐに調べられるということですごく活用できました。

また、StreamやDateTimeAndAPI、定義済みの関数型インターフェース(Supplier、Consumer、Predicate、Function、Operatorなど)が一覧に載ってあることも、現場で使用した時には役に立ちました。
Java7、8で追加された箇所についてもわかりやすくなっているのもポイント高いです。
スレッド処理に関しても引けるリファレンスがたくさんあり、コードを読む際に役に立ちました。
加えて、現場では Apache CommonsやGuava、Joda-Timeを使っているのですが、Java8が投入されてからは可能であれば、標準APIで書くことをプロジェクトで行っているので、そういう意味ではこのリファレンスは活用できました。

Optionalの扱いについては、1リファレンスしかなかったのですが、もう少し記載があっても良かったかなと思います。
例えば、チームで過去にはまったパターンだと、orElseメソッドでも値がある場合でも、引数に渡した関数が評価されてしまい、その引数に渡した関数は値がない場合にはNPEが発生してしまう問題が起こりました。
上記のような場合には、orElseGetメソッドを使用して、引数に渡した関数を遅延評価するようにし、値がある場合には引数に渡した関数を評価しないといった方法があります。
上記のような事例はあまりないかもしれませんが、重たい処理を行う場合についてはorElseGetメソッドを使用する等の記載があると良かったと思います。
ちなみに用途として、orElseを使う場面は値を引数で渡した時のみで、関数は渡さないというのが一つのプラクティスな気がします。
参考記事
Optionalから値を取り出すにはorElseGet()を使う

また、少し欲を言えば、定義済みの関数型インターフェースに関しては、もう少しサンプルを記載してあるページがあれば嬉しかったです。
(リファレンス上、難しいのかもしれませんが。。)

Columnに関しては、初心者に関しても優しいもの(「文字列の等価演算子」など)も扱っている中で、「並列と並行の違い」も取り扱っていて、最近の話題となるトピックも押さえているなという印象でした。
また、並列と並行の違いに関しては、今年のDevsumiでセッションがあり、関心度が高いテーマとも言えます。
【19-C-7】Webエンジニアのための並行/非同期プログラミングの実際とこれから
codezine.jp

以上、レビューとさせていただきます。

最後に目次も紹介させていただきます。
以下のページから引用させていただきました。
[改訂新版]Javaポケットリファレンス - WINGS

Chapter1 Javaを始めるために
Javaとは
  Javaの概況
  Javaの構造
  バージョン履歴
プログラミングの準備
  開発環境
  統合開発環境Eclipseのインストール方法
最初のJavaプログラミング
  Eclipseの使い方
  プログラムの作成・実行手順
  コンパイルと実行
Javaアプリケーションの基本
  ソースファイルの構成要素
  主要な公式ドキュメント
Chapter2 基本文法
データ型と変数
  データ型の種類
  リテラル
  エスケープシーケンス
  変数
  変数のスコープ
演算子
  演算子
  インクリメント/デクリメント演算子
  算術演算子
  代入演算子
  複合代入演算子
  ビット演算子
  関係演算子
  論理演算子
  条件演算子
基本構文
  コメントを記述する
  パッケージを宣言する
  パッケージをインポートする
  型を変換(キャスト)する
  変数を宣言する
  定数を宣言する
  配列を宣言する
  列挙型(enum)を宣言する
  処理を分岐する
  COLUMN ブロック
  複数の条件で処理を分岐する
  処理を繰り返す
  処理を繰り返す(ループ後に条件判定)
  決まった回数の処理を繰り返す
  決まった回数の処理を繰り返す(拡張for文)
  ループを脱出する/先頭に戻る
クラス
  クラスを定義する
  メソッドを定義する
  インスタンスを生成する
  クラスのメンバにアクセスする
  コンストラクタを定義する
  COLUMN this
  初期化子を定義する
  静的メンバを定義/利用する
  クラスを継承する
  スーパークラスコンストラクタを実行する
  オーバーライドを定義/禁止する
  可変長引数を定義する
  アクセス制御する
  抽象メソッド/クラスを定義する
  インターフェイスを定義する
  インターフェイスで静的メソッド/デフォルトメソッドを定義する[8]
  COLUMN インターフェイスのmainメソッド
  内部クラスを定義する
  無名クラスを定義する
例外処理
  例外処理を定義する
  複数の例外をまとめてキャッチする[7]
  try-with-resources構文でリソースを確実に閉じる[7]
  例外処理を呼び出し側に任せる
  例外を任意に発生させる
アノテーション
  標準アノテーションを利用する
  独自のアノテーションを利用する
ジェネリック
  ジェネリックスでクラスを定義する
  変数型を制限する
  変数型にワイルドカードを利用する
  ジェネリックスでメソッドを定義する
  ダイヤモンド演算子を使ってインスタンスを生成する[7]
ラムダ式
  ラムダ式を記述する[8]
  関数型インターフェイスを定義する[8]
  メソッド参照を利用する[8]
コマンドラインツール
  Javaプログラムをコンパイルする
  Javaプログラムを実行する
  JARファイルを作成/管理する
  APIドキュメントを作成する
Chapter3 基本API
概要
文字列操作
  文字列クラスを生成する ― Java.lang.String
  COLUMN 文字列の等価演算子
  文字列に含まれる文字を検索する ― Java.lang.String
  文字列の長さを取得する ― Java.lang.String
  文字列に含まれる文字コードを取得する ― Java.lang.String
  文字列のインデックスを取得する ― Java.lang.String
  文字列の連結を行う ― Java.lang.String
  区切り文字を指定して文字列の連結を行う[8] ― Java.lang.String
  文字列の置換を行う ― Java.lang.String
  文字列を分割する ― Java.lang.String
  文字列の空白除去を行う ― Java.lang.String
  COLUMN 全角スペースのトリム
  文字列が指定された接尾辞/接頭辞を持つか調べる ― Java.lang.String
  文字列の大文字/小文字を変換する ― Java.lang.String
  文字列を比較する ― Java.lang.String
  文字列の一部分を取得する ― Java.lang.String
  可変長文字列(文字列バッファ)を生成する ― Java.lang.StringBuilder、StringBuffer
  文字列バッファに文字を設定する ― Java.lang.StringBuilder、StringBuffer
  COLUMN StringJoinerクラス
  文字列バッファを検索する ― Java.lang.StringBuilder、StringBuffer
  文字列バッファの長さを取得/設定する ― Java.lang.StringBuilder、StringBuffer
  文字列バッファに含まれる文字コードを取得する ― Java.lang.StringBuilder、StringBuffer
  文字列バッファのインデックスを取得する ― Java.lang.StringBuilder、StringBuffer
  値を文字列に変換する ― Java.lang.String
  文字列バッファに追加する ― Java.lang.StringBuilder、StringBuffer
  文字列バッファを削除する ― Java.lang.StringBuilder、StringBuffer
  文字列バッファに挿入する ― Java.lang.StringBuilder、StringBuffer
  文字列バッファを置換する ― Java.lang.StringBuilder、StringBuffer
  文字列バッファを逆順にする ― Java.lang.StringBuilder、StringBuffer
  COLUMN 文字列クラスのインスタンス
  文字列バッファの容量を操作する ― Java.lang.StringBuilder、StringBuffer
  文字列バッファを配列にコピーする ― Java.lang.StringBuilder、StringBuffer
  文字列バッファの一部を取得する ― Java.lang.StringBuilder、StringBuffer
数値演算
  絶対値を求める ― Java.lang.Math
  どちらか大きい/小さい値を取得する ― Java.lang.Math
  数値の切り上げ/切り捨て/四捨五入を行う ― Java.lang.Math
  平方根/立方根を求める ― Java.lang.Math
  指数関数を処理する ― Java.lang.Math
  対数を求める ― Java.lang.Math
  角度を変換する ― Java.lang.Math
  三角関数を求める ― Java.lang.Math
  符号要素を求める ― Java.lang.Math
ラッパークラス
  文字列から数値型のオブジェクトを生成する ― Java.lang.Boolean、Byte、Double、Float、Integer、Long、Short
  文字列から数値型のオブジェクトを生成する(基数指定) ― Java.lang.Boolean、Byte、Double、Float、Integer、Long、Short
  指定されたデータ型のオブジェクトを生成する ― Java.lang.Boolean、Byte、Double、Float、Integer、Long、Short
  指定された文字列から各データ型の値を取得する ― Java.lang.Byte、Double、Float、Integer、Long、Short
  文字の種類を変換する ― Java.lang.Character
  指定した基数で数値/文字を解析する ― Java.lang.Character
  Optionalクラスで安全にnullを扱う[8] ― Java.util.Optional
オブジェクト操作
  オブジェクトのクローンを生成する ― Java.lang.Object
  オブジェクトを比較する ― Java.lang.Object
  オブジェクトを文字列として取得する ― Java.lang.Object
  クラス名からクラスのインスタンスを取得する ― Java.lang.Class
  関連クラスを取得する ― Java.lang.Class
  クラスに関連する情報を取得する ― Java.lang.Class
  どのようなオブジェクトか調べる ― Java.lang.Class
例外処理
  例外を定義する ― Java.lang.Exception
  例外メッセージ文字列を取得する ― Java.lang.Throwable
  スタックトレース情報を取得する ― Java.lang.Throwable
  例外となった原因を取得する ― Java.lang.Throwable
  スタックトレース情報を分割する ― Java.lang.Throwable
  スタックトレースの要素を取得する ― Java.lang.StackTraceElement
スレッド処理
  スレッドの実行内容を定義する ― Java.lang.Thread
  スレッドを待機させる ― Java.lang.Object
  スレッドをスリープさせる ― Java.lang.Thread
  スレッドを再開させる/スレッドの終了を待機する ― Java.lang.Object、 ― Java.lang.Thread
  スレッドを一時停止させる/スレッド処理に割り込む ― Java.lang.Thread
  スレッドを開始する ― Java.lang.Thread
  COLUMN 平行と並列の違い
  スレッド名/スレッドの優先順位を取得/設定する ― Java.lang.Thread
  スレッドのスタックトレースを取得する ― Java.lang.Thread
  スレッドの状態を列挙型で取得する ― Java.lang.Thread
  スレッドの状態を調べる ― Java.lang.Thread
  アクティブなスレッドやその数を取得する ― Java.lang.Thread
スレッド処理(Concurrency Utilities)
  スレッドの結果を返す ― Java.util.concurrent.Callableインターフェイス
  スレッドの結果を取得する ― Java.util.concurrent.Futureインターフェイス
  スレッドをロックする ― Java.util.concurrent.locks.ReentrantLock
  スレッドプールを生成する ― Java.util.concurrent.Executors
  スレッドを使いまわすava.util.concurrent.ExecutorService
  スケジュール可能なスレッドを生成する ― Java.util.concurrent.Executors
  一定周期のタスクを実行する ― Java.util.concurrent.ScheduledExecutorService
  一定間隔のタスクを実行する ― Java.util.concurrent.ScheduledExecutorService
  スレッドからアトミックに変数を操作する ― Java.util.concurrent.atomic.AtomicInteger
日付
  エポックからの時間を設定/取得する ― Java.util.Date
  日付データを文字列として取得する ― Java.util.Date
  日付データを比較する ― Java.util.Date
  Calendarオブジェクトを取得する ― Java.util.Calendar
  GregorianCalendarを使用する ― Java.util.GregorianCalendar
  日付データを取得/設定する ― Java.util.Calendar
  日付データをクリアする ― Java.util.Calendar
  日付データを操作する ― Java.util.Calendar
  現在時刻を設定/取得する ― Java.util.Calendar
  Calendarオブジェクトの設定を取得する ― Java.util.Calendar
  Calendarオブジェクトの最大/最小値設定を取得する ― Java.util.GregorianCalendar
  日付データを比較する ― Java.util.Calendar、 ― Java.util.GregorianCalendar
日付(Date and Time API
  現在日時を取得する[8] ― Java.time.LocalDateTime、Java.time.OffsetDateTime、Java.time.ZonedDateTime
  特定の日時を設定する[8] ― Java.time.LocalDateTime、Java.time.OffsetDateTime、Java.time.ZonedDateTime
  日時の各要素を取得する[8] ― Java.time.LocalDateTime、Java.time.OffsetDateTime、Java.time.ZonedDateTime
  日時データをフォーマットするオブジェクトを取得する[8]Java.time.format.DateTimeFormatter
  日時データをフォーマットする[8] ― Java.time.LocalDateTime、Java.time.OffsetDateTime、Java.time.ZonedDateTime
  文字列から新しい日時オブジェクトを生成する[8] ― Java.time.LocalDateTime、Java.time.OffsetDateTime、Java.time.ZonedDateTime
  日時データを演算する[8] ― Java.time.LocalDateTime、 ― Java.time.OffsetDateTime、Java.time.ZonedDateTime
  日時データを比較する[8] ― Java.time.LocalDateTime、 ― Java.time.OffsetDateTime、Java.time.ZonedDateTime
  Dateオブジェクトを新しい日時オブジェクトに変換する[8] ― Java.time.LocalDateTime、Java.time.OffsetDateTime、Java.time.ZonedDateTime
  新しい日時オブジェクトをDateオブジェクトに変換する[8] ― Java.time.LocalDateTime、Java.time.OffsetDateTime、Java.time.ZonedDateTime
ロギング
  ロガーを作成する ― Java.util.logging.Logger
  ログを簡易メソッドで出力する ― Java.util.logging.Logger
  ログのハンドラを登録/削除/取得する ― Java.util.logging.Logger
  ログを出力する ― Java.util.logging.Logger
  COLUMN 期間を表すクラス
Chapter4 コレクション
概要
Collection
  コレクションに要素を追加する ― Java.util.Collectionインターフェイス
  コレクションの要素を削除する ― Java.util.Collectionインターフェイス
  コレクションの要素を選別する ― Java.util.Collectionインターフェイス
  コレクションの要素の状態を調べる ― Java.util.Collectionインターフェイス
  コレクションと等しいか判定する ― Java.util.Collectionインターフェイス
  要素の数を取得する ― Java.util.Collectionインターフェイス
  イテレータを取得する ― Java.util.Collectionインターフェイス
  コレクションの要素を配列として取得する ― Java.util.Collectionインターフェイス
List
  リストに追加する ― Java.util.Listインターフェイス
  リストの要素を削除する ― Java.util.Listインターフェイス
  リストの要素を設定する ― Java.util.Listインターフェイス
  リストの要素/部分ビューを取得する ― Java.util.Listインターフェイス
  要素を検索する ― Java.util.Listインターフェイス
  双方向イテレータを取得する ― Java.util.Listインターフェイス
Set
  セットの要素を追加する ― Java.util.Setインターフェイス
  ソートセットの一部をビューとして取得する ― Java.util.SortedSetインターフェイス
  ソートセットの最初/最後の要素を取得する ― Java.util.SortedSetインターフェイス
  ソートセットに関連したコンパレータを取得する ― Java.util.SortedSetインターフェイス
Map
  マップの要素を設定/追加/削除する ― Java.util.Mapインターフェイス
  マップの要素を取得する ― Java.util.Mapインターフェイス
  マップからすべてのキー/値/マップエントリを取得する ― Java.util.Mapインターフェイス
  マップの要素の状態を調べる ― Java.util.Mapインターフェイス
  マップの最初/最後のキーを取得する ― Java.util.SortedMapインターフェイス
  マップの部分ビューを取得する ― Java.util.SortedMapインターフェイス
  マップエントリのキーまたは値を取得/設定する ― Java.util.Map.Entryインターフェイス
Queue
  キューに要素を追加する ― Java.util.Queueインターフェイス
  キューの要素を取得して削除する ― Java.util.Queueインターフェイス
  キューの要素を参照する ― Java.util.QueueインターフェイスDeque
  両端キューに要素を追加する ― Java.util.Dequeインターフェイス
  両端キューの要素を取得して削除する ― Java.util.Dequeインターフェイス
  両端キューの要素を参照する ― Java.util.Dequeインターフェイス
  両端キューをスタックとして使用する ― Java.util.Dequeインターフェイス
  指定した要素のうち最初/最後に出現したものを削除する ― Java.util.Dequeインターフェイス
イテレータ
  コレクションの要素を判定する ― Java.util.Iteratorインターフェイス
  コレクションの要素をイテレータから取得する ― Java.util.Iteratorインターフェイス
  イテレータから要素を削除する ― Java.util.Iteratorインターフェイス
  コレクションの要素のインデックスを取得する ― Java.util.ListIteratorインターフェイス
  前の要素を判定する ― Java.util.ListIteratorインターフェイス
  前の要素を取得する ― Java.util.ListIteratorインターフェイス
  イテレータから要素を追加/設定する ― Java.util.ListIteratorインターフェイス
コレクション操作
  コレクションを同期化する ― Java.util.Collections
  変更不可能なコレクションを作成する ― Java.util.Collections
配列操作
  配列からリストのビューを作成する ― Java.util.Arrays
  配列をバイナリサーチで検索する ― Java.util.Arrays
  配列をソートする ― Java.util.Arrays
  配列をコピーする ― Java.util.Arrays
  範囲を指定して配列をコピーする ― Java.util.Arrays
Stream
  コレクションからStreamを生成する[8]Collectionインターフェイス
  配列からStreamを生成する[8] ― Java.util.Arrays
  要素を指定してStreamを生成する[8] ― Java.util.stream.Stream
  Streamを結合する[8] ― Java.util.stream.Stream
  無限の長さのStreamを生成する[8] ― Java.util.stream.Stream
  Streamの要素をフィルタリングする[8] ― Java.util.stream.Stream
  Streamの要素をソートする[8] ― Java.util.stream.Stream
  Streamの要素を変換する[8] ― Java.util.stream.Stream
  Streamの要素を繰り返して処理する[8] ― Java.util.stream.Stream
  Streamの要素数を取得する[8] ― Java.util.stream.Stream
  Streamの要素の最大・最小・合計・平均を取得する[8] ― Java.util.stream.Stream
  Streamの要素が条件に合致するかを判定する[8] ― Java.util.stream.Stream
  Streamをコレクションオブジェクトに変換する[8] ― Java.util.stream.Stream
Chapter5 入出力(I/O)
概要
ファイルシステム
  ファイルやディレクトリを取得する ― Java.io.File
  ファイルやディレクトリの属性を取得する ― Java.io.File
  ファイルやディレクトリのURIを取得する ― Java.io.File
  ファイルやディレクトリを変更する ― Java.io.File
  ファイルを生成する ― Java.io.File
  COLUMN ラムダ式で外部の変数を使う
  ファイルやディレクトリを削除する ― Java.io.File
  ディレクトリを生成する ― Java.io.File
  ファイル名のフィルタを設定する ― Java.io.FilenameFilter
  ファイルのフィルタを設定する ― Java.io.FileFilter
  ファイルのリストを取得する ― Java.io.File
  ディスク領域を取得する ― Java.io.File
  ファイルのアクセス権を設定する ― Java.io.File
テキストファイル入出力
  テキストファイルの入力ストリームを生成する ― Java.io.FileReader
  テキストファイルの出力ストリームを生成する ― Java.io.FileWriter
  文字データ(単一/配列)を読み取る ― Java.io.FileReader
  文字データ(単一/配列)を書き込む ― Java.io.FileWriter
  1行単位でデータを読み取る ― Java.io.BufferedReader
  1行単位でデータを書き込む ― Java.io.BufferedWriter
  文字列の入力ストリームを生成する ― Java.io.StringReader
  文字列の出力ストリームを生成する ― Java.io.StringWriter
  各データ型の値を文字ストリームに出力する ― Java.io.PrintWriter
  書式付きで文字ストリームに出力する ― Java.io.PrintWriter
  テキスト入力の行番号を取得する ― Java.io.LineNumberReader
  テキスト入力の行番号を設定する ― Java.io.LineNumberReader
  バイトストリームから文字ストリームに変換する ― Java.io.InputStreamReader
  文字ストリームをバイトストリームに書き込む ― Java.io.OutputStreamWrite
バイナリファイル入出力
  バイナリファイルの入力ストリームを生成する ― Java.io.FileInputStream
  バイナリファイルの出力ストリームを生成する ― Java.io.FileOutputStream
  データを読み取る ― Java.io.InputStream
  データを書き込む ― Java.io.OutputStream
  バイトストリームを操作する ― Java.io.InputStream
  指定したデータを書き込む ― Java.io.DataOutputStream
  指定したデータを読み取る ― Java.io.DataInputStream
  各データ型の値をバイトストリームに出力する ― Java.io.PrintStream
バイト配列/文字配列の入出力
  バイト配列の入力ストリームを生成する ― Java.io.ByteArrayIntputStream
  バイト配列の出力ストリームを生成する ― Java.io.ByteArrayOutputStream
  文字配列の入力ストリームを生成する ― Java.io.CharArrayReader
  文字配列の出力ストリームを生成する ― Java.io.CharArrayWriter
新しいファイルシステム(New I/O 2)
  デフォルトのファイルシステムを取得する[7] ― Java.nio.file.FileSystems
  Pathオブジェクトを生成する[7] ― Java.nio.file.FileSystems
  Pathオブジェクトからファイルを生成する[7] ― Java.nio.file.Files
  ディレクトリを生成する[7] ― Java.nio.file.Files
  ファイルやディレクトリを削除する[7] ― Java.nio.file.Files
  一時ディレクトリ/ファイルを作成する[7] ― Java.nio.file.Files
  COLUMN  ― Java.nio.?le.Filesクラスのその他のメソッド
  ファイルのリストを取得する[8] ― Java.nio.file.Files
  ファイルをコピー/移動する[7] ― Java.nio.file.Files
  ファイルを一度に読み込む[7] ― Java.nio.file.Files
  テキストファイルを一行ずつ読み込む[8] ― Java.nio.file.Files
  ファイルにテキスト/バイナリを書き込む[7] ― Java.nio.file.Files
さまざまな入出力
  パイプを使った入力ストリームを作成する(バイトデータ) ― Java.io.PipedInputStream
  パイプを使った出力ストリームを作成する(バイトデータ) ― Java.io.PipedOutputStream
  パイプを使った入力ストリームを作成する(文字データ) ― Java.io.PipedReader
  パイプを使った出力ストリームを作成する(文字データ) ― Java.io.PipedWriter
  ファイルの読み書きを任意の位置で行う ― Java.io.RandomAccessFile
  ファイルの読み書きを始める位置を取得/設定する ― Java.io.RandomAccessFile
  ファイルのサイズを操作する ― Java.io.RandomAccessFile
  コンソールクラスを用いてエコーなしで入力する ― Java.io.Console
  オブジェクトを読み取る ― Java.io.ObjectInputStream
  オブジェクトを書き込む ― Java.io.ObjectOutputStream
チャネル用バッファ操作
  バッファの位置を操作する ― Java.nio.Buffer
  バッファから読み取る ― Java.nio.CharBuffer
  バッファに書き込む ― Java.nio.CharBuffer
  さまざまなバッファを生成する ― Java.nio.CharBuffer
  バッファの情報を取得する ― Java.nio.CharBufferr
  ファイルのチャネルの読み書きをする ― Java.nio.channels.FileChannel
  ファイルのチャネルを操作する ― Java.nio.channels.FileChannel
  COLUMN ファイルの変更を監視する
Chapter6 ネットワーク
概要
IPアドレス
  生のIPアドレスを取得する ― Java.net.InetAddress
  ホスト名/ドメイン名を取得する ― Java.net.InetAddress
  ホスト名からIPアドレスに変換する ― Java.net.InetAddress
  ローカルホストを取得する ― Java.net.InetAddress
  指定のアドレスに到達可能かテストする ― Java.net.InetAddress
  ネットワークインターフェイスを取得する ― Java.net.NetworkInterface
  ネットワーク・パラメータを取得する ― Java.net.NetworkInterface
  インターフェイスの状態を取得する ― Java.net.NetworkInterface
URL
  URL接続オブジェクトを取得する ― Java.net.URL
  URL接続からリンクを確立する ― Java.net.URLConnection
  タイムアウトを設定/取得する ― Java.net.URLConnection
  接続先の情報を取得する ― Java.net.URLConnection
  URLの情報を取得する ― Java.net.URL
  URL接続の入出力ストリームを取得する ― Java.net.URLConnection
  URL接続の入力ストリームを取得する ― Java.net.URL
  URIからURLに変換する ― Java.net.URI
  URLからURIに変換する ― Java.net.URL
ソケット通信
  サーバ側のTCP/IPソケットを操作する ― Java.net.ServerSocket
  クライアント側のTCP/IPソケットを操作する ― Java.net.Socket
  UDPソケットを操作する ― Java.net.DatagramSocket
  サーバ側のソケットのチャネルを操作する ― Java.net.ServerSocketChannel
  ソケットのチャネルを操作する ― Java.net.SocketChannel
  ノンブロッキングのサーバソケットを操作する[7] ― Java.nio.channels.AsynchronousServerSocketChannel
  ノンブロッキングのソケットチャネルを操作する[7] ― Java.nio.channels.AsynchronousServerSocketChannel
Chapter7 データベース
概要
データベース接続
  JDBCドライバをロードする ― Java.lang.Class
  データベースに接続する ― Java.sql.DriverManager
  接続のタイムアウトを取得/設定する ― Java.sql.DriverManager
  データベースから切断する ― Java.sql.Connection
  SQL文を実行するオブジェクトを生成する ― Java.sql.Connection
  COLUMN MariaDBJDBCドライバ
  パラメータ付きSQL文を実行するオブジェクトを生成する ― Java.sql.Connection
  ストアドプロシージャを実行するオブジェクトを生成する ― Java.sql.Connection
トランザクション処理
  トランザクションをコミット/ロールバックする ― Java.sql.Connection
  自動的にコミットするように設定する/設定されているか調べる ― Java.sql.Connection
  トランザクションのレベルを取得/設定する ― Java.sql.Connection
SQL文の発行
  結果セットを返すSQL文を発行する ― Java.sql.Statement
  複数の結果セットを返すSQL文を発行する ― Java.sql.Statement
  結果を返さないSQL文を発行する ― Java.sql.Statement
  複数の処理をまとめて実行する ― Java.sql.Statement
  結果セットに関する情報を取得/設定する ― Java.sql.Statement
  パラメータに値を設定する ― Java.sql.PreparedStatement
  パラメータにNULLを設定する ― Java.sql.PreparedStatement
  パラメータに日付や時刻を設定する ― Java.sql.PreparedStatement
クエリの結果処理
  指定した列のデータを取得する ― Java.sql.ResultSet
  指定した列の日付時刻を取得する ― Java.sql.ResultSet
  レコードを更新する ― Java.sql.ResultSet
  NULLデータで更新する ― Java.sql.ResultSet
  カーソルを移動させる ― Java.sql.ResultSet
  レコードを挿入する ― Java.sql.ResultSet
  レコードを削除する ― Java.sql.ResultSet
  カーソルの性質を調査する ― Java.sql.ResultSet
  COLUMN  ― Java SE 8でコレクションに追加されたメソッド
Chapter8 ユーティリティ
概要
プロパティ
  プロパティファイルを利用する ― Java.util.Properties
  XML形式のプロパティファイルを利用する ― Java.util.Properties
  システムプロパティを取得する ― Java.lang.System
乱数
  擬似乱数を生成する ― Java.util.Random
  擬似乱数のシードを設定する ― Java.util.Random
ロケール
  ロケールの情報を取得する ― Java.util.Locale
  ファイルからリソースバンドルを取得する ― Java.util.ResourceBundle
  クラスからリソースを取得する ― Java.util.ListResourceBundle
  和暦ロケールを利用する ― Java.util.Locale
圧縮/解凍
  データを圧縮する ― Java.util.zip.Deflater
  COLUMN 乱数
  データを解凍する ― Java.util.zip.Inflater
  ZIP形式で圧縮されたファイルを解凍する. ― Java.util.zip.ZipInputStream
  ZIP形式でファイルを圧縮する ― Java.util.zip.ZipOutputStream
テキストのフォーマッティング
  日付/時刻をフォーマットするオブジェクトを取得する ― Java.text.DateFormat
  日付/時刻をフォーマットする ― Java.text.DateFormat
  文字列から日付/時刻を生成する ― Java.text.DateFormat
  日付/時刻のフォーマットに関する情報を設定/取得する ― Java.text.DateFormat
  日付/時刻のフォーマットに必要なパターンを設定/取得する ― Java.text.SimpleDateFormat
  数値/通貨をフォーマットするオブジェクトを取得する ― Java.text.NumberFormat
  数値をフォーマットする ― Java.text.NumberFormat
  文字列から数値を生成する ― Java.text.NumberFormat
  数値/通貨のフォーマットに関する情報を設定/取得する ― Java.text.NumberFormat
  数値の桁に関する情報を取得/設定する ― Java.text.NumberFormat
  数値のフォーマットに必要なパターンを設定/取得する ― Java.text.DecimalFormat
  数値の丸め処理に関する情報を取得/設定する ― Java.text.DecimalFormat
  メッセージをフォーマットするために必要なパターンを設定/取得する ― Java.text.MessageFormat
  メッセージをフォーマットする ― Java.text.MessageFormat
  文字列からオブジェクトの配列を生成する ― Java.text.MessageFormat
  文字列解析のエラー位置を取得する ― Java.text.ParsePosition
正規表現
  正規表現のパターンを作成する ― Java.util.regex.Pattern
  マッチ処理を行う ― Java.util.regex.Matcher
  マッチした文字シーケンスの処理を行う ― Java.util.regex.Matcher
外部プロセスの制御
  外部コマンドを実行する ― Java.lang.Runtime
  新規プロセスを起動する ― Java.lang.ProcessBuilder
Compiler API
  Java Compilerインスタンスを取得する ― Javax.tools.ToolProvider
  コンパイルする ― Javax.tools.ToolProvider
スクリプティング
  対応するスクリプトエンジンを調べる ― Javax.script.ScriptEngineManager
  スクリプトを実行する ― Javax.script.ScriptEngine
  COLUMN Date and Time APIでの和暦サポート