ポケットリファレンスシリーズ改訂3版 Javaポケットリファレンス

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

紙版発売
電子版発売

四六判/672ページ

定価3,278円(本体2,980円+税10%)

ISBN 978-4-297-11496-1

電子版

→学校・法人一括購入ご検討の皆様へ

書籍の概要

この本の概要

『[改訂新版]Javaポケットリファレンス』の発売より4年。
年2回の定期リリース制へと移行したことでバージョンアップが急速に進んだJavaの最新事情に対応し,数々の著作で定評のある山田祥寛氏の全面監修のもと内容を刷新。
モジュールシステムやHttpClientはもちろん,ユニットテストツールのJUnitの解説も新たに加わりました。 初心者から上級者まで必要な情報をぱっと引ける使いやすさはそのままに,Java SE 8~14までの重要トピックを一望できる一冊です。

こんな方におすすめ

  • Webを見れない客先などで手早く目的のメソッドや書式を知りたい方
  • Javaの特徴や主なライブラリを効率的に見渡したい方

本書のサンプル

本書の紙面イメージは次のとおりです。画像をクリックすることで拡大して確認することができます。

サンプル画像1

サンプル画像2

サンプル画像3

サンプル画像4

目次

Chapter1 Javaを始めるために

Javaとは

  • Javaの概況
  • Javaの構造
  • バージョン履歴
  • <COLUMN>間違った英語発音

プログラミングの準備

  • 開発環境
  • 統合開発環境Eclipseのインストール方法

最初のJavaプログラミング

  • Eclipseの使い方
  • プログラムの作成・実行手順
  • コンパイルと実行

Javaアプリケーションの基本

  • ソースファイルの構成要素
  • 主要な公式ドキュメント

Chapter2 基本文法

データ型と変数

  • データ型の種類
  • リテラル
  • <COLUMN>テキストブロック
  • エスケープシーケンス
  • 変数
  • 変数のスコープ

演算子

  • 演算子
  • インクリメント/デクリメント演算子
  • 算術演算子
  • 代入演算子
  • 複合代入演算子
  • ビット演算子
  • 関係演算子
  • 論理演算子
  • 条件演算子

基本構文

  • コメントを記述する
  • パッケージを宣言する
  • パッケージをインポートする
  • 型を変換(キャスト)する
  • 変数を宣言する
  • varキーワードでローカル変数を宣言する【10】
  • 定数を宣言する
  • 配列を宣言する
  • 列挙型(enum)を宣言する
  • 処理を分岐する
  • <COLUMN>ブロック
  • 複数の条件で処理を分岐する
  • switch文で複数の値で処理を分岐する【13】
  • switch文でアロー構文を使う【13】
  • switch式で処理を分岐する【12】
  • 処理を繰り返す
  • 処理を繰り返す(ループ後に条件判定)
  • 決まった回数の処理を繰り返す
  • 決まった回数の処理を繰り返す(拡張for文)
  • ループを脱出する/先頭に戻る

クラス

  • クラスを定義する
  • メソッドを定義する
  • インスタンスを生成する
  • クラスのメンバにアクセスする
  • コンストラクタを定義する
  • <COLUMN>this
  • 初期化子を定義する
  • 静的メンバを定義/利用する
  • クラスを継承する
  • スーパークラスのコンストラクタを実行する
  • オーバーライドを定義/禁止する
  • 可変長引数を定義する
  • アクセス制御する
  • 抽象メソッド/クラスを定義する
  • インターフェイスを定義する
  • インターフェイスで静的メソッド,デフォルトメソッドを定義する
  • インターフェイスでprivateメソッドを定義する【9】
  • 内部クラスを定義する
  • 無名クラスを定義する

例外処理

  • 例外処理を定義する
  • 複数の例外をまとめてキャッチする
  • try-with-resources構文でリソースを確実に閉じる
  • try-with-resources構文で既存の変数を利用する【9】
  • 例外処理を呼び出し側に任せる
  • 例外を任意に発生させる

アノテーション

  • 標準アノテーションを利用する
  • 独自のアノテーションを利用する

ジェネリックス

  • ジェネリックスでクラスを定義する
  • 変数型を制限する
  • 変数型にワイルドカードを利用する
  • ジェネリックスでメソッドを定義する
  • ダイアモンド演算子を使ってインスタンスを生成する

ラムダ式

  • ラムダ式を記述する
  • 関数型インターフェイスを利用する
  • メソッド参照を利用する

モジュール システム

  • モジュール内のパッケージを公開する【9】
  • 参照したいモジュールを指定する【9】
  • 推移的に参照したいモジュールを指定する【9】
  • 動的に操作するメンバを公開する【9】
  • 自動モジュールを利用する【9】
  • 実行時のみ参照できるパッケージ/モジュールを定義する【9】
  • <COLUMN>シングルクォーテーションとダブルクォーテーション

Chapter3 基本API

概要

文字列操作

  • 文字列クラスを生成する
  • <COLUMN>文字列の等価演算子
  • 文字列に含まれる文字を検索する
  • 文字列の長さを取得する
  • 文字列に含まれる文字コードを取得する
  • 文字列のインデックスを取得する
  • 文字列の連結を行う
  • 区切り文字を指定して文字列の連結を行う
  • 文字列の置換を行う
  • 文字列を分割する
  • 文字列の空白除去を行う
  • <COLUMN>全角スペースのトリム
  • 文字列が指定された接尾辞/接頭辞を持つか調べる
  • 文字列の大文字/小文字を変換する
  • 文字列を比較する
  • 文字列の一部分を取得する
  • 可変長文字列(文字列バッファ)を生成する
  • 文字列バッファに文字を設定する
  • <COLUMN>StringJoinerクラス
  • 文字列バッファを検索する
  • 文字列バッファの長さを取得/設定する
  • 文字列バッファに含まれる文字コードを取得する
  • 文字列バッファのインデックスを取得する
  • 値を文字列に変換する
  • 文字列バッファに追加する
  • 文字列バッファを削除する
  • 文字列バッファに挿入する
  • 文字列バッファを置換する
  • 文字列バッファを逆順にする
  • <COLUMN>文字列クラスのインスタンス
  • 文字列バッファの容量を操作する
  • 文字列バッファを配列にコピーする
  • 文字列バッファの一部を取得する

テキストのフォーマッティング

  • 数値/通貨をフォーマットするオブジェクトを取得する
  • 数値をフォーマットする
  • 文字列から数値を生成する
  • 数値/通貨のフォーマットに関する情報を取得/設定する
  • 数値の桁に関する情報を取得/設定する
  • 数値のフォーマットに必要なパターンを取得/設定する
  • 数値の丸め処理に関する情報を取得/設定する
  • メッセージをフォーマットするために必要なパターンを取得/設定する
  • メッセージをフォーマットする
  • 文字列からオブジェクトの配列を生成する
  • 文字列解析のエラー位置を取得する

数値演算

  • 絶対値を求める
  • どちらか大きい/小さい値を取得する
  • 数値の切り上げ/切り捨て/四捨五入を行う
  • 平方根/立方根を求める
  • 指数関数を処理する
  • 対数を求める
  • 角度を変換する
  • 三角関数を求める
  • 符号要素を求める

乱数

  • 擬似乱数を生成する
  • 擬似乱数のシードを設定する

正規表現

  • 正規表現のパターンを作成する
  • マッチ処理を行う
  • マッチした文字シーケンスの処理を行う

ラッパークラス

  • 文字列から数値型のオブジェクトを生成する
  • 文字列から数値型のオブジェクトを生成する (基数指定)
  • 指定されたデータ型のオブジェクトを生成する
  • 指定された文字列から各データ型の値を取得する
  • 文字の種類を変換する
  • 指定した基数で数値/文字を解析する
  • Optionalクラスで安全にnullを扱う

例外処理

  • 例外を定義する
  • 例外メッセージ文字列を取得する
  • スタックトレース情報を取得する
  • 例外となった原因を取得する

リフレクション

  • クラス名からクラスのインスタンスを取得する
  • 関連クラスを取得する
  • クラスに関連する情報を取得する
  • メソッドを取得する
  • メソッドを実行する
  • どのようなオブジェクトか調べる
  • オブジェクトのクローンを生成する
  • オブジェクトを比較する
  • オブジェクトを文字列として取得する

Chapter4 日付処理

概要

日付

  • エポックからの時間を取得/設定する
  • 日付データを文字列として取得する
  • 日付データを比較する
  • Calendarオブジェクトを取得する
  • GregorianCalendarを使用する
  • 日付データを取得/設定する
  • 日付データをクリアする
  • 日付データを操作する
  • 現在日時を取得/設定する
  • Calendarオブジェクトの設定を取得する
  • Calendarオブジェクトの最大/最小値設定を取得する
  • 日付データを比較する

フォーマット

  • 日時データをフォーマットするオブジェクトを取得する
  • 日時データをフォーマットする
  • 文字列から日付/時刻を生成する
  • 日付/時刻のフォーマットに関する情報を取得/設定する
  • 日付/時刻のフォーマットに必要なパターンを取得/設定する

ロケール

  • ロケールの情報を取得する
  • ファイルからリソースバンドルを取得する
  • クラスからリソースを取得する
  • 和暦ロケールを利用する

日付(Date and Time API)

  • 現在日時を取得する
  • 特定の日時を設定する
  • 日時の各要素を取得する
  • 日時データをフォーマットするオブジェクトを取得する
  • 日時データをフォーマットする
  • 文字列から新しい日時オブジェクトを生成する
  • 日時データを演算する
  • <COLUMN>イミュータブル
  • 日時データを比較する
  • Dateオブジェクトを新しい日時オブジェクトに変換する
  • 新しい日時オブジェクトをDateオブジェクトに変換する
  • <COLUMN>期間を表すクラス

Chapter5 コレクション

概要

Collection

  • コレクションの要素の状態を調べる
  • コレクションと等しいか判定する
  • 要素の数を取得する
  • イテレータを取得する
  • コレクションの要素を配列として取得する

List

  • リストに追加する
  • リストの要素を削除する
  • リストの要素を設定する
  • リストの要素/部分ビューを取得する
  • 要素を検索する
  • 双方向イテレータを取得する

Set

  • セットの要素を追加する
  • ソートセットの一部をビューとして取得する
  • ソートセットの最初/最後の要素を取得する
  • ソートセットに関連したコンパレータを取得する

Map

  • マップの要素を追加/設定/削除/置換する
  • マップの要素を取得する
  • マップからすべてのキー/値/マップエントリを取得する
  • マップの要素の状態を調べる
  • マップの最初/最後のキーを取得する
  • マップの部分ビューを取得する
  • マップエントリのキーまたは値を取得/設定する

Queue

  • キューに要素を追加する
  • キューの要素を取得して削除する
  • キューの要素を参照する

Deque

  • 両端キューに要素を追加する
  • 両端キューをスタックとして使用する
  • 指定した要素のうち最初/最後に出現したものを削除する

イテレータ

  • コレクションの要素を判定する
  • コレクションの要素をイテレータから取得する
  • イテレータから要素を削除する
  • コレクションの要素のインデックスを取得する
  • 前の要素を判定する
  • 前の要素を取得する
  • イテレータから要素を追加/設定する

コレクション操作

  • コレクションを同期化する
  • 変更不可能なコレクションを作成する
  • 指定した要素で変更不可能なコレクションを作成する【9】
  • 指定したコレクションから変更不可能なコレクションを作成する【10】

配列操作

  • 配列からリストのビューを作成する
  • 配列をバイナリサーチで検索する
  • 配列をソートする
  • 配列をコピーする
  • 範囲を指定して配列をコピーする

Stream

  • コレクションからStreamを生成する
  • 配列からStreamを生成する
  • 要素や範囲を指定してStreamを生成する
  • Streamを結合する
  • 無限の長さのStreamを生成する
  • 任意の条件のStreamを生成する【9】
  • Streamで並列処理を行う
  • Streamの要素をフィルタリングする
  • Streamの要素をグルーピングする
  • Streamをグルーピングしてからフィルタリングする【9】
  • Streamの要素をソートする
  • Streamの要素を変換する
  • Streamの要素を繰り返して処理する
  • Streamの要素数を取得する
  • Streamの要素の最大・最小,合計・平均を取得する
  • Streamの要素が条件に合致するかを判定する
  • Streamをコレクションオブジェクトに変換する
  • Streamを変更不可能なコレクションオブジェクトに変換する【10】
  • Streamでループカウンタを取得する
  • <COLUMN>Streamでループカウンタを取得する

Chapter6 入出力(I/O)

概要

ファイルシステム

  • ファイルやディレクトリを取得する
  • ファイルやディレクトリの属性を取得する
  • ファイルやディレクトリをURIを取得する
  • ファイルやディレクトリを変更する
  • ファイルを生成する
  • <COLUMN>ラムダ式で外部の変数を使う
  • ファイルやディレクトリを削除する
  • ディレクトリを生成する
  • ファイル名のフィルタを設定する
  • ファイルのフィルタを設定する
  • ファイルのリストを取得する
  • ディスク領域を取得する
  • ファイルのアクセス権を設定する

テキストファイル入出力

  • テキストファイルの入力ストリームを生成する
  • テキストファイルの出力ストリームを生成する
  • 文字データ(単一/配列)を読み取る
  • 文字データ(単一/配列)を書き込む
  • 1行単位でデータを読み取る
  • 1行単位でデータを書き込む
  • 文字列の入力ストリームを生成する
  • 文字列の出力ストリームを生成する
  • 各データ型の値を文字ストリームに出力する
  • 書式付きで文字ストリームに出力する
  • テキスト入力の行番号を取得する
  • テキスト入力の行番号を設定する
  • バイトストリームから文字ストリームに変換する
  • 文字ストリームをバイトストリームに書き込む

バイナリファイル入出力

  • バイナリファイルの入力ストリームを生成する
  • バイナリファイルの出力ストリームを生成する
  • データを読み取る
  • データを書き込む
  • バイトストリームを操作する
  • 指定したデータを書き込む
  • 指定したデータを読み取る
  • 各データ型の値をバイトストリームに出力する

バイト配列/文字配列の入出力

  • バイト配列の入力ストリームを生成する
  • バイト配列の出力ストリームを生成する
  • 文字配列の入力ストリームを生成する
  • 文字配列の出力ストリームを生成する

新しいファイルシステム(New I/O 2)

  • デフォルトのファイルシステムを取得する
  • Pathオブジェクトを生成する
  • Pathオブジェクトからファイルを生成する
  • ディレクトリを生成する
  • ファイルやディレクトリを削除する
  • 一時ディレクトリ/ファイルを作成する
  • <COLUMN>java.nio.file.Files クラスのその他のメソッド
  • ファイルのリストを取得する
  • ファイルをコピー/移動する
  • ファイルを一度に読み込む
  • テキストファイルを一行ずつ読み込む
  • ファイルにテキスト/バイナリを書き込む

さまざまな入出力

  • パイプを使った入力ストリームを作成する(バイトデータ)
  • パイプを使った出力ストリームを作成する(バイトデータ)
  • パイプを使った入力ストリームを作成する(文字データ)
  • パイプを使った出力ストリームを作成する(文字データ)
  • ファイルの読み書きを任意の位置で行う
  • ファイルの読み書きを始める位置を取得/設定する
  • ファイルのサイズを操作する
  • コンソールクラスを用いてエコーなしで入力する
  • オブジェクトを読み取る
  • オブジェクトを書き込む

チャネル用バッファ操作

  • バッファの位置を操作する
  • バッファから読み取る
  • バッファに書き込む
  • さまざまなバッファを生成する
  • バッファの情報を取得する

チャネルによる入出力

  • ファイルのチャネルの読み書きをする
  • ファイルのチャネルを操作する
  • <COLUMN>ファイルの変更を監視する
  • <COLUMN>Pathオブジェクトでのファイルパス正規化

Chapter7 並行処理

概要

スレッド処理

  • スレッドの実行内容を定義する
  • スレッドを待機させる
  • スレッドをスリープさせる
  • スレッドを再開させる/スレッドの終了を待機する
  • スレッドを一時停止させる/スレッド処理に割り込む
  • スレッドを開始する
  • <COLUMN>並行と並列の違い

スレッド処理(Concurrency Utilities)

  • スレッドの結果を返す
  • スレッドの結果を取得する
  • スレッドをロックする
  • スレッドプールを生成する
  • スレッドを使い回す
  • スケジュール可能なスレッドを生成する
  • 一定周期のタスクを実行する
  • 一定間隔のタスクを実行する
  • スレッドからアトミックに変数を操作する
  • 並列数を保つスレッドプールを作成する

Fork/Join Framework

  • 分割したタスクを並列実行する
  • タスクを開始する
  • タスクを分割する

CompletableFuture

  • タスクの処理を実行する
  • タスク実行後に処理する
  • タスク実行時の例外を処理する
  • 2つのタスク両方とも完了後に処理する
  • <COLUMN>処理時間を計測する
  • 2つのタスクのいずれかが完了後に処理する
  • 複数のタスクが完了後に処理する
  • タスクのタイムアウトを設定する【9】

Reactive Streams

  • Subscriberを作成する【9】
  • メッセージを要求する【9】
  • Publisherを作成する【9】
  • メッセージを配信する【9】

Chapter8 ネットワーク

概要

IPアドレス

  • 生のIPアドレスを取得する
  • ホスト名/ドメイン名を取得する
  • ホスト名からIPアドレスに変換する
  • ローカルホストを取得する
  • 指定のアドレスに到達可能かテストする
  • ネットワークインターフェイスを取得する
  • ネットワークパラメータを取得する
  • インターフェイスの状態を取得する

URL

  • URL接続オブジェクトを取得する
  • URL接続からリンクを確立する
  • タイムアウトを取得/設定する
  • 接続先の情報を取得する
  • URLの情報を取得する
  • URL接続の入出力ストリームを取得する
  • URL接続の入力ストリームを取得する
  • URIからURLに変換する
  • URLからURIに変換する

ソケット通信

  • サーバ側のTCP/IPソケットを操作する
  • クライアント側のTCP/IPソケットを操作する
  • UDPソケットを操作する
  • サーバ側のソケットのチャネルを操作する
  • ソケットのチャネルを操作する
  • ノンブロッキングのサーバソケットを操作する
  • ノンブロッキングのソケットチャネルを操作する

HTTPクライアント

  • HttpClientを生成する【11】
  • HttpClientのビルダーを生成する【11】
  • HttpClientを設定する【11】
  • HttpRequestのビルダーを生成する【11】
  • HttpRequestを生成する【11】
  • HttpRequestを設定する【11】
  • HTTPメソッドをリクエストする【11】
  • POSTメソッドをリクエストする【11】
  • HTTPレスポンスを参照する【11】
  • 非同期でリクエストする【11】
  • レスポンスボディを処理する【11】
  • <COLUMN>HttpClientクラスでのBASIC認証

Chapter9 データベース

概要

データベース接続

  • JDBCドライバをロードする
  • データベースに接続する
  • 接続のタイムアウトを取得/設定する
  • データベースから切断する
  • SQL文を実行するオブジェクトを生成する
  • パラメータ付きSQL文を実行するオブジェクトを生成する
  • ストアドプロシージャを実行するオブジェクトを生成する

トランザクション処理

  • トランザクションをコミット/ロールバックする
  • 自動的にコミットするように設定する/設定されているか調べる
  • トランザクションのレベルを取得/設定する

SQL文の発行

  • 結果セットを返すSQL文を発行する
  • 複数の結果セットを返すSQL文を発行する
  • 結果を返さないSQL文を発行する
  • 複数の処理をまとめて実行する
  • 結果セットに関する情報を取得/設定する
  • パラメータに値を設定をする
  • パラメータにNULLを設定する
  • パラメータに日付や時刻を設定する

クエリの結果処理

  • 指定した列のデータを取得する
  • 指定した列の日付時刻を取得する
  • レコードを更新する
  • NULLデータで更新する
  • カーソルを移動させる
  • レコードを挿入する
  • レコードを削除する
  • カーソルの性質を調査する
  • <COLUMN>Java SE 8でコレクションに追加されたメソッド

Chapter10 ユーティリティ

概要

プロパティ

  • プロパティファイルを利用する
  • XML形式のプロパティファイルを利用する
  • システムプロパティを取得する

圧縮/解凍

  • ZIP形式で圧縮されたファイルを解凍する
  • ZIP形式でファイルを圧縮する

ロギング

  • ロガーを作成する
  • ログを簡易メソッドで出力する
  • ログのハンドラを登録/削除/取得する
  • ログを出力する

外部プロセスの制御

  • 外部コマンドを実行する
  • 新規プロセスを起動する
  • コマンドの実行結果をパイプで取得する
  • コマンドの実行結果をリダイレクトする
  • コマンドの実行結果を標準出力に出力する
  • プロセスの実行にタイムアウトを設定する

Compiler API

  • JavaCompilerインスタンスを取得する
  • コンパイルする

コマンドラインツール

  • Javaプログラムをコンパイルする
  • Javaプログラムを実行する
  • JARファイルを作成/管理する
  • JMODファイルを作成/管理する【9】
  • <COLUMN>オンラインでJavaを実行する
  • JShellでJavaコードを実行する【9】
  • 独自のランタイムファイルを作成する【9】
  • APIドキュメントを作成する

JUnit

  • Eclipse でのテスト準備
  • Eclipse でのテストクラスの作成と実行
  • テストケースを設定する
  • アサーションを追加する
  • 複数のアサーションをまとめる
  • 例外を確認する
  • 前提条件を検証する
  • 条件付きでテストを実行する
  • テストを階層化する
  • パラメータを設定して実行する
  • テストの実行順番を設定する
  • <COLUMN>正規表現

著者プロフィール

WINGSプロジェクト 髙江賢(ウィングスプロジェクト たかえけん)

生粋の大阪人。趣味と本業のプログラミング歴は四半世紀を超え,制御系から業務系,Web 系と幾多の開発分野を経験。現在は,株式会社気象工学研究所にて,気象と防災に関わるシステムの構築に携わる。その傍ら,執筆コミュニティ「WINGS プロジェクト」のメンバーとして活動中。主な著書に,「C# ポケットリファレンス」「PHP ライブラリ& サンプル実践活用」(以上,技術評論社),「作って楽しむプログラミング Android アプリ超入門」(日経BP 社)など。


山田祥寛(やまだよしひろ)

千葉県鎌ヶ谷市在住のフリーライター。Microsoft MVP - Visual Studio and Development Technologies。執筆コミュニティ「WINGS プロジェクト」代表。書籍執筆を中心に,雑誌/サイト記事,取材,講演までを手がける多忙な毎日。主な著書に「改訂新版 JavaScript 本格入門」「Angular アプリケーションプログラミング」(以上,技術評論社),「独習シリーズ(Java・C#・Python・ASP.NET・PHP)」(以上,翔泳社),「これからはじめるVue.js 実践入門」(SB クリエイティブ)など。