2. 試験内容チェックリスト
Javaの基礎
- finalクラスを作成および使用する
- 内部クラス、ネストしたクラス、および無名クラスを作成および使用する
- 列挙を作成および使用する
例外処理とアサーション
- try-with-resources構造を使用する
- カスタム例外クラスを作成および使用する
- アサーションを使用して不変量をテストする
Javaのインタフェース
- デフォルト・メソッドによってインタフェースを作成および使用する
- プライベート・メソッドによってインタフェースを作成および使用する
汎用とコレクション
- ラッパー・クラス、オート・ボクシングおよびオート・アンボクシングを使用する ダイアモンド表記とワイルドカードを使用して汎用クラスおよびメソッドを作成および使用する コレクション・フレームワークについて説明する。主要なコレクション・インタフェースを使用する ComparatorインタフェースとComparableインタフェースを使用する コレクション用の便利なメソッドを作成および使用する
関数型インタフェースとラムダ式
- 関数型インタフェースを定義および記述する
- ラムダ・パラメータ用のローカル変数とステートメント形式のラムダが含まれているラムダ式を作成および使用する
JavaストリームAPI
- ストリーム・インタフェースとパイプラインについて説明する
- ラムダ式とメソッド参照を使用する
組込み関数型インタフェース
- java.util.functionパッケージのインタフェースを使用する
- Predicate、Consumer、Function、Supplierなどのコア関数型インタフェースを使用する
- java.util.functionパッケージのベース・インタフェースのバイナリ・バリエーションとプリミティブを使用する
ストリームに対するラムダ演算
- map、peekおよびflatMapメソッドを使用してストリーム・データを抽出する
- findFirst、findAny、anyMatch、allMatchおよびnoneMatchメソッドによる検索を使用してストリーム・データを検索する
- オプション・クラスを使用する
- ストリームに対するcount、max、min、averageおよびsum演算を使用して計算を実行する
- ラムダ式を使用してコレクションをソートする
- ストリームに対してCollectorsを使用する(groupingByおよびpartitioningBy演算を含む)
モジュール型アプリケーションに移行する
- 移行用のモジュールにJava SE 8アプリケーションを分割して、SE 9~SE 11より前のバージョンのJavaを使用して開発したアプリケーションを移行する(トップダウン移行とボトムアップ移行を含む)
- classpathとmodulepathに対してモジュール型アプリケーションを実行する
- jdepsを使用して依存関係を調べ、循環的な依存関係に対処する方法を識別する
モジュール型アプリケーションにおけるサービス
- ディレクティブなど、サービスのコンポーネントについて説明する
- サービス・タイプを設計する。ServiceLoaderを使用してサービスをロードする。コンシューマ・モジュールとプロバイダ・モジュールが含まれているサービスの依存関係をチェックする
- 抽象クラスとインタフェースを比較する
並列処理
- RunnableとCallableを使用してワーカー・スレッドを作成する。ExecutorServiceを使用してタスクを並列実行する
- CyclicBarrierやCopyOnWriteArrayListなど、java utilの並列コレクションおよびクラスを使用する
- スレッド・セーフなコードを記述する
- デッドロックやライブロックなど、スレッド化の問題を識別する
並列ストリーム
- 並列ストリームを使用するコードを開発する
- ストリームで分解と縮小を実装する
I/O(基本およびNIO2)
- I/Oストリームを使用してコンソールおよびファイル・データに対するデータの読取りと書込みを行う
- I/Oストリームを使用してファイルの読取りと書込みを行う
- シリアライゼーションを使用してオブジェクトの読取りと書込みを行う
- Pathインタフェースを使用してファイルおよびディレクトリ・パスを操作する
- Filesクラスを使用してファイルまたはディレクトリのチェック、削除、コピー、移動を行う
- ファイルに対してストリームAPIを使用する
Java SEアプリケーションにおけるセキュア・コーディング
- JavaアプリケーションにおけるDoSの防止
- Javaアプリケーションにおける機密情報の保護
- データ整合性ガイドラインの実装(インジェクションおよびインクルードと入力検証)
- アクセス可能性と拡張性の制限、適切な入力検証処理、および変更可能性によるコードの外部攻撃の防止
- 機密オブジェクトの構築の保護
- シリアライゼーションとデシリアライゼーションの保護
JDBCによるデータベース・アプリケーション
- JDBCのURLおよびDriverManagerを使用してデータベースに接続する
- PreparedStatementを使用してCRUD操作を実行する
- PreparedStatementおよびCallableStatement APIを使用してデータベース操作を実行する
ローカライズ
- Localeクラスを使用する
- リソース・バンドルを使用する
- Javaでメッセージ、日付および数値の形式を指定する
アノテーション
- アノテーションの目的と一般的な使用パターンについて説明する
- アノテーションをクラスとメソッドに適用する
- よく使用されるJDKのアノテーションについて説明する
- カスタム・アノテーションを宣言する