目次
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>正規表現