資格対策シリーズ

JavaGold 対策講座 BOOKNS-オリジナルテキスト

著者|小野 茂 講師

この書籍の概要

Oracle認定資格試験であるOCJP Gold SE11の試験に対応!
試験対策と実践力を効率よく身につける、現役エンジニア講師によるBOOKNSオリジナルテキスト!
本書は、開校21周年を迎えるIT技術専門スクールで作られた試験対策テキストを、BOOKNSの為に改修したオリジナルテキストです。
OCJP Goldの資格取得を目指すために必要な知識と技術の習得を目指します。
確認問題や模擬問題もそろっており、単なる知識の暗記ではなく実践に活かせる理解を目指すことができます。

こんな方におすすめ

・OCJP Silverで取得した知識を実践で活かしていきたい人
・OCJP Silver取得後のステップアップに挑戦したい人
・暗記ではなく実践的な知識と技術を習得したい人

  • 目次
  • 練習問題
  • 著者プロフィール

第0章

Javaの基礎

  1. final修飾子とstatic修飾子
  2. 列挙型
  3. Objectクラス
  4. インターフェース
  5. ネストクラス

第1章

例外処理とアサーション

  1. 例外処理
  2. checked 例外と unchecked 例外
  3. try - catch - finally
  4. オーバーライド時の注意点
  5. マルチキャッチ
  6. try – with - resources
  7. アサーション

第2章

汎用とコレクション

  1. ラッパークラス
  2. Boxing / Unboxing
  3. コレクション
  4. List, Set, Queue, Map
  5. ジェネリックス型
  6. オブジェクトの順序づけ
  7. コレクションユーティリティー

第3章

関数型インターフェースとラムダ式

  1. 関数型インターフェース
  2. ローカル変数の型推論
  3. ラムダ式
  4. メソッド参照
  5. 基本データ型を扱う関数型インターフェース
  6. 関数型インターフェースの合成

第4章

JavaストリームAPI

  1. ストリームAPI
  2. 終端操作
  3. 中間操作

第5章

モジュールシステム

  1. モジュールシステムの概要
  2. モジュール定義ファイル
  3. 名前付きモジュールとその他モジュール
  4. カスタムランタイム
  5. ServiceLoaderとモジュールシステム
  6. ボトムアップ移行とトップダウン移行

第6章

並列処理

  1. スレッド
  2. スレッドの制御
  3. 排他制御と同期制御
  4. Concurrencyユーティリティー
  5. 並列コレクション
  6. Executorフレームワーク
  7. アトミック変数
  8. パラレルストリーム

第7章

I/O(基本及びNIO2)

  1. 入出力用パッケージ
  2. ストリーム
  3. シリアライズ
  4. コンソール
  5. ストリームの書式化及び解析
  6. ファイル操作
  7. ディレクトリ操作

第8章

ローカライズ

  1. ロケール
  2. リソースバンドル
  3. フォーマット

第9章

アノテーション

  1. Javaアノテーション
  2. カスタムアノテーションの実装
  3. アノテート(アノテーションに注釈をつける)

第10章

JDBCによるデータベース・アプリケーション

  1. JDBCを利用したデータベース接続
  2. SQLステートメントの実行
  3. ResultSetの拡張
  4. DataSourceを利用したデータベース接続

第11章

Javaセキュア・コーディング

  1. Javaアプリケーションで機密情報を保護
  2. 00.入力値検査とデータの無害化(IDS)
  3. 12.入出力(FIO)
  4. 13.シリアライズ(SER)
  5. 14.プラットフォームのセキュリティー(SEC)
  6. 49.雑則(MSC)

final修飾子に関する説明として誤っているものを1つ選択してください。

  1. final指定されたクラスは、継承できない
  2. クラスにfinal指定を適用することはできない
  3. final指定されたメソッドは、オーバーライドできない
  4. final指定された変数は、定数となる

【正解】2 
クラスにfinal指定することは可能ですので、2の説明は誤りです。(2が正解)その他の選択肢は正しい説明です。

列挙型について正しい説明を1つ選択してください。

  1. 列挙型のvaluesメソッドは列挙された値を配列で返す
  2. 列挙型のvalueOfメソッドは列挙型のインデックス番号を返す
  3. 列挙型のordinalメソッドは列挙型の値を返す
  4. 列挙型はnewキーワードを使用してインスタンス化することができる

【正解】1 
設問の各メソッドについては以下の通りです。
valuesメソッドは列挙された値を配列で返します。(選択肢1は正解)
valueOfメソッドは文字列から列挙型の値を返します。(選択肢2は不正解)
ordinalメソッドは列挙型の値の宣言順を返します。(選択肢3は不正解)
また、列挙型はnewキーワードを用いてインスタンス化することはできません。(選択肢4は不正解)

モジュールシステムに関する以下の説明の「 X 」「 Y 」に当てはまる言葉として適切なものを1つ選択してください。
	
Javaにおいて、プログラムは一般的に「 X 」形式で提供され、20から30個の「 X 」ファイルを使用することがよくあります。
この場合、どの「 X 」ファイルを使用しているのか、余分な「 X 」ファイルを読み込んでいないかなどが問題となります。
これらの問題は、「 Y 」を明確にすることで解決できます。これがモジュールシステムの目的です。
	

  1. X「dll」 Y「依存関係」
  2. X「dll」 Y「相互関係」
  3. X「jar」 Y「依存関係」
  4. X「jar」 Y「相互関係」

【正解】3 
3が正解です。
Javaにおいてプログラムは一般的に「jar形式」で提供されます。
モジュールシステムは「依存関係」を明確化する目的の機能です。
なお、dll形式はJavaではなく、C言語や/C++言語、.NETフレームワーク等で利用される形式です。

関数型インターフェースに関して、正しい記述はどれですか。

  1. 抽象メソッドは複数定義できる
  2. java.lang.Object クラスの public メソッドは、private として定義できる
  3. java.lang.Object クラスの public メソッドは、抽象メソッド として定義できる
  4. @FunctionlInterfaceを付与しないと、関数型インターフェースとして利用できない

【正解】3 
関数型インターフェースは、抽象メソッドが1つだけ宣言されているインターフェースです。(選択肢1は不正解)
static 及び、default メソッド が複数定義されていても問題ありません。
java.lang.Object クラスの public メソッドは、抽象メソッドとして定義可能です。(選択肢3は正解)
ただ、default 及び private で定義することはできません。(選択肢2は不正解)
@FunctionlInterface アノテーションを、インターフェース宣言時に付与すると、関数型インターフェースが正しく実装されているかチェックを行えます。
関数型インターフェースの要件を満たせば、@FunctionlInterface アノテーション を付与しなくても、関数型インターフェースとして利用可能です。(選択肢4は不正解)

次の中でラッパークラスのクラス名として正しいものをすべて選べ

  1. Byte
  2. Short
  3. Int
  4. Long
  5. Float
  6. Double
  7. Char
  8. Boolean
  9. 他の選択肢に正しい選択肢は1つもない

【正解】1,2,4,5,6,8 
8つある基本データ型それぞれに対応したラッパークラスが準備されています。
このうち、int型とchar型に対応するラッパークラスはそれぞれInteger型、Charctor型となります。
それ以外のラッパークラスは基本データ型の頭文字が大文字になっています。(例:float型に対応してFloat型)

ラッパークラスに関する次の記述で正しいものを選べ。

  1. Auto-Boxingの際には基本データ型の拡大変換を行ってくれる
  2. null値を持つラッパークラスをUnboxingすると整数型は0、実数型は0.0、char型は\u0000、boolean型はfalseになる
  3. 整数を示すラッパークラス同士はデータ型が異なっていても代入できる
  4. 他の選択肢に正しい選択肢はない

【正解】4 
1:不正解です。
ラッパークラスがAuto-Boxingされる際には基本データ型の拡大変換が起こりません。コンパイルエラーを起こしやすいため試験で良く狙われます。
2:不正解です。null値を持つラッパークラスがUnboxingされるとNullPointerExceptionが発生します。
3:不正解です。基本データ型同士であれば拡大変換により代入可能な場合がありますが、ラッパークラスはあくまでもオブジェクト参照型です。継承関係がないと代入できません。
4:正解です。

jdepsコマンドの「-jdkinternals」オプションに関する説明として正しいものを1つ選択してください。

  1. 依存関係のサマリを表示します
  2. JDKの内部APIに定義されているクラスで、jar内に定義済の全ての依存関係を検索します
  3. JDKの外部APIに定義されているクラスで、jar内に定義済の全ての依存関係を検索します
  4. DOTファイルの出力先を指定します

【正解】2 
2が正解です。
-jdkinternalsオプションはJDKの「内部」APIに定義されているクラスで、jar内に定義済の全ての依存関係を検索します。
3は「外部」という点が誤りなので不正解です。
1は -summaryオプションの説明です。
4は -dotoutputオプションの説明です。

ServiceLoader に関する説明として正しいものを1つ選択してください。

  1. Javaプログラムの実行速度を向上させるための最適化ツールです
  2. Javaプラットフォームでのソフトウェアアップデートを管理するために使用されます
  3. 指定したインターフェースを実装したクラスを動的にロードする仕掛けを提供しています
  4. システムの環境変数を管理し、アクセスするためのAPIを提供しています

【正解】3 
3が正解です。
ServiceLoaderは、指定したインターフェースを実装したクラスを動的に読み込む仕掛けを提供しています。モジュールシステムでの利用も可能です。主にドライバーなどで利用されることが多いです。
ServiceLoader は実行速度の最適化とは直接関係がありません(1は不正解)。サービス提供者のロードに関連しています。
ソフトウェアのアップデート管理はServiceLoaderの機能ではありません(2は不正解)。
環境変数の管理には他のクラスやAPIが存在します(4は不正解)。ServiceLoaderはそれらと異なる目的で使用されます。

ボトムアップ移行の説明として最も適切なものを1つ選択してください。

  1. 最も依存度が低く、前提として利用される側のモジュールから、名前付きモジュールへの移行を開始する
  2. 最も依存度が低く、前提として利用される側のモジュールから、自動モジュールへの移行を開始する
  3. 最も依存度が高く、他モジュールを利用する側のモジュールから、名前付きモジュールへの移行を開始する
  4. 最も依存度が高く、他モジュールを利用する側のモジュールから、自動モジュールへの移行を開始する

【正解】1 
Aが正解です。
ボトムアップ移行では、最も依存度が低く、前提として利用される側のモジュールから名前付きモジュールへの移行を開始します。
モジュールシステムの移行において、以下を覚えておきましょう。

・下位とは以下のようなモジュール
依存度が低い側
依存される側
前提として利用される側

・上位とは以下のようなモジュール
依存度が高い側
依存する側
他モジュールを利用する側

以下のコマンドの説明として正しい選択肢を1つ選択してください。
	
jlink --compress=2 -p modules --add-modules bookns --output app --launcher run=bookns/jp.bookns.App
	

  1. Java アプリケーションのデバッグ設定を構成するために使用されます
  2. 特定のモジュールを含まないカスタムランタイムイメージを作成します
  3. zip圧縮でカスタムランタイムイメージを作成し、指定されたモジュールを含み、アプリケーションのためのランチャーを設定します
  4. 複数のJava バージョン間での互換性をテストするために使用されます

【正解】3 
3が正解です。
--compressオプションの指定は2なので、zip圧縮されます。
-p ( --module-path ) オプションで、modulesフォルダーを指定します。
--add-modules オプションでは、モジュール名である、bookns を指定します。(選択肢2は誤り)
--output オプションでは、出力先フォルダー ( app ) を指定します。
--launcher オプションでは、コマンド名 ( run ) = モジュール名/実行クラスを指定します。
選択肢1のデバッグ設定は jlink コマンドではなく、IDE やデバッガーが使用されます。
選択肢4も jlink コマンドの役割ではなく、他のツールやテストフレームワークが使用されます。

小野 茂(おの しげる)

小野 茂(おの しげる)
担当講座
OCJ-P、PBL(Java)、LAMP
実務実績
Webサイト開発、プロジェクト管理

小野講師はこんな人

数々のWEBシステム開発経験を持ち、WEB系開発を得意とする。PM経験も豊富で要件定義~製造~運用設計まで、全ての工程をこなすことが可能。
幅広い業務知識もある為、様々な業務課題に対するアドバイスもできる講師。

BOOKNS(ブックネス)とは、エンジニア育成に特化した定額制のオンライン学習サービスです。
開校21年の歴史をもつITスクール、システムアーキテクチュアナレッジのノウハウが詰まったオンライン教材に、現役講師によるコーチング・試験対策までをオールインワンにした、人材育成サービスの決定版!

お得な
サブスクリプションプランを
ご用意

法人 1ヶ月あたり

5,000 税抜
円/人(税込 5,500円)

個人 1ヶ月あたり

3,000 税抜
円/人(税込 3,300円)

※一部サービスのご利用には別途追加料金が発生致します。