• 検索結果がありません。

Make the Future Java FY13 PPT Template

N/A
N/A
Protected

Academic year: 2021

シェア "Make the Future Java FY13 PPT Template"

Copied!
44
0
0

読み込み中.... (全文を見る)

全文

(1)
(2)

OJCP Gold SE 7 資格試験の

傾向と対策

日本オラクル株式会社

オラクルユニバーシティ

(3)

以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するもので

す。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み

込むことはできません。以下の事項は、マテリアルやコード、機能を提供す

ることをコミットメント(確約)するものではないため、購買決定を行う際

の判断材料になさらないで下さい。

オラクル製品に関して記載されている機能の開発、リリースおよび時期につ

いては、弊社の裁量により決定されます。

Oracleは、米国オラクル・コーポレーション及びその子会社、関連会社の米国及びその他の国における登録

商標または商標です。他社名又は製品名は、それぞれ各社の商標である場合があります。

(4)

Agenda

1.

Java SE 7 対応オラクル認定Java資格

のご案内

2.

OCJP Gold SE 7 資格試験の傾向と対策

3.

補足情報

(5)

1. Java SE 7対応オラクル認定

Java資格のご案内

(6)

Java SE 7対応オラクル認定Java資格が新しくなりました

Bronze, Silver, Goldの3段階の積み上げ式でスキルを認定します

Oracle Certified

Java Programmer,

Gold

SE 7

Oracle Certified

Java Programmer,

Silver

SE 7

Oracle Certified

旧資格体系

新資格体系

設計者の意図を正しく理解して独力で機能実装が行えるレベル

(中上級Javaプログラマ向け)

Gold資格は、コレクションAPI, ファイルI/O,

並行処理

JDBC

などのライ

ブラリを使用したプログラミングを理解しているかどうかが主な出題項目

です。加えて

デザインパターン

についても問われるため

設計から実装まで

の包括的なスキルを身につけているか

が問われます。

(Global資格: Oracle

Certified Professional, Java SE 7 Programmer)

独力で単体テストコードなどを書けるくらいのレベル

(初級Javaプログラマ向け)

Silver資格は、Java言語の基本文法とオブジェクト指向プログラミング(ク

ラス、インタフェース、例外処理)を理解しているかどうかが主な出題項

目です。

プログラミングのために必要とされる仕様を詳細に理解している

が問われます。

(Global資格: Oracle Certified Associate, Java SE 7 Programmer)

Javaによるオブジェクト指向プログラミングを覚えたレベル

(7)

Oracle Certified

Java Programmer,

Silver

SE 7

Oracle Certified

Java Programmer,

Bronze

SE 7

1Z0-805: Upgrade to

Java SE 7 Programmer

1Z0-804:

Java SE 7 Programmer II

1Z0-803:

Java SE 7 Programmer I

1Z0-802:

Java SE 7 Bronze Exam

OCJ-P/SJC-P資格取得者

(バージョンは問わない)

これから資格取得を

目指す方

Oracle Certified

Java Programmer,

Gold

SE 7

Java SE 7 資格認定パス

Gold試験は、どちらも

なり手強い

です。しっか

り準備して試験に備えま

しょう!

一試験で

移行可能!

資格名

試験名

オンライン試験有り

(8)

OCJP Gold SE 7 試験

試験名: Java SE 7 Programmer II (1Z0-804)

認定資格: Oracle Certified Java Programmer,

Gold SE 7

出題数: 90問 (選択式)

試験時間: 150分

合格ライン: 65%

試験料(税抜): 32,600 円

前提資格: OCJP Silver SE 7

Java SE 7 Programmer II

(9)

テスト内容チェックリスト (1)

1. Javaクラスの設計

アクセス修飾子の使用:private, protected,

public

メソッドのオーバーライド

コンストラクタおよびメソッドに対するオー

バーロード

instanceof演算子の使用とキャスト

仮想メソッド呼び出しの使用

クラスの機能向上のためのObjectクラスのメ

ソッドのオーバーライド

package文とimport文の使用

2. 高度なクラス設計

抽象クラスの適用方法と適用するタイミングの

特定

抽象クラスとサブクラスの作成

staticキーワードとfinalキーワードの使用

最上位レベルとネストクラスの作成

3. オブジェクト指向の設計原理

インタフェースの宣言、実装および継承

インタフェースの継承とクラスの継承の選択

is-a関係とhas-a関係を実装するコードの作成

コンポジションの適用

シングルトン・デザイン・パターンの使用

DAOパターンを実装するコードの作成

ファクトリを使用した設計とAPIからのファクトリの使

4.ジェネリックスとコレクション

ジェネリックスクラスの作成

コレクションとダイアモンド演算子の使用

従来型とジェネリックス型を使用したコレクションの相

互運用性の分析

ラッパー・クラスとオートボクシングの使用

List、SetおよびDequeの作成と使用

Mapの作成と使用

java.util.Comparatorとjava.lang.Comparableの使用

配列とリストのソートと検索

(10)

テスト内容チェックリスト (2)

5. 文字列処理

文字列の検索、解析および作成

.(ピリオド)、*(アスタリスク)、+(プラ

ス)、?、¥d、¥D、¥s、¥S、¥w、¥W、¥b、¥B、

[]、()などのパターンを正規表現で使用して、文

字列の検索、解析および置換を行う

書式指定パラメータを使用した文字列の書式

化: %b、%c、%d、%f、%s

6. 例外とアサーション

throw文とthrows文の使用

multi-catchのあるtry文とfinally句の使用

try-with-resources文を使用したリソースの自動

クローズ

カスタム例外の作成

7. Java I/Oの基礎

コンソールからのデータの読み込みと書き込み

ファイルの読み込みおよび書き込みのためのストリーム

の使用

8. Javaファイル I/O (NIO.2)

ファイルやディレクトリパス操作のためのPathクラスの

使用

Filesクラスを使用したファイルやディレクトリの確認、

削除、コピー、および移動

ファイル属性やディレクトリ属性の読み込みおよび変更

ディレクトリ・ツリーの再帰アクセス

PathMatcherクラスを使用したファイルの検索

WatchServiceを使用したディレクトリ変更の監視

9. JDBCによるデータベース・アプリケー

ションの作成

JDBC APIのレイアウト定義

JDBCドライバを使用したデータベース接続

データベースへの更新と問い合わせ

JDBCのトランザクションの振る舞いのカスタマイズと

トランザクションのコミット

JDBC 4.1のRowSetProvider、RowSetFactoryおよび

RowSetインタフェースの使用

(11)

テスト内容チェックリスト (3)

10. スレッド

ThreadクラスとRunnableインタフェースの作成

と使用

スレッドのライフサイクルの管理と制御

スレッドの潜在的な問題の識別

スレッドの潜在的な問題の識別

11. 並行処理

java.util.concurrentコレクションの使用

アトミック変数とロックの適用

ExecutorsとThreadPoolsの使用

並列Fork/Joinフレームワークの使用

12. ローカライゼーション

Localeオブジェクトを使用したロケールの読み込みおよ

び設定

各ロケールのリソース・バンドルの作成

アプリケーションでのリソース・バンドルのロード

NumberFormatとDateFormatを使用した国際化対応のテ

キスト書式設定

(12)

OCJP Gold SE 7 移行試験

試験名: Upgrade to Java SE 7 Programmer (1Z0-805)

認定資格: Oracle Certified Java Programmer,

Gold SE 7

出題数: 90問 (選択式)

試験時間: 150分

合格ライン: 60%

試験料(税抜): 32,600 円

前提資格: OCJ-P, SJC-P

(Versionは問わない)

(13)

テスト内容チェックリスト

3. データベース・アプリケーションとJDBC

JDBC APIについて説明する

JDBCを使用してデータベースに接続するために必要な

Javaの文を識別する

JDBC 4.1のRowSetProvider、RowSetFactoryおよび新し

いRowSetインタフェースを使用する

JDBCトランザクションを使用する

問合せを送信してデータベースからの結果を読み取るた

めの適切なJDBC APIを使用する

JDBCのPreparedStatementとCallableStatementを使用する

4. 並列処理

スレッドの潜在的な問題を識別する

java.util.concurrent コレクションを使用する

アトミック変数とロックを使用する

ExecutorsとThreadPoolsを使用する

並列Fork/Joinフレームワークを使用する

5.ローカライズ

アプリケーションをローカライズする利点について説明する

ロケールが表すものを定義する

Localeオブジェクトを使用してロケール読み込みを設定する

各ロケールのリソース・バンドルを作成する

アプリケーションからリソース・バンドルを呼び出す

ロケールに基づいてリソース・バンドルを選択する

NumberFormatとDateFormatを使用してローカライズ用

にテキストの書式を設定する

6. JavaのファイルI/O(NIO.2)

Pathクラスを使用してファイルとディレクトリのパスを

操作する

Filesクラスを使用してファイルまたはディレクトリを

チェック、削除、コピーまたは移動する

ファイルとディレクトリの属性を読み取り変更する

ディレクトリ・ツリーに再帰的にアクセスする

PathMatcherクラスを使用してファイルを検索する

WatchServiceを使用してディレクトリの変更を監視する

1. 言語の拡張

switch文で文字列を使用する

下線文字がある数値リテラルと2進リテラルを使用する

try-with-resourcesを使用する

例外処理で複数のcatchを使用する

総称型宣言でダイアモンド演算子を使用する

例外処理でより正確なrethrowを使用する

2. 設計パターン

シングルトン設計パターンを使用してクラスを設計する

ビジネス問題を解決するためにコンポジションを使用す

るタイミングと方法を識別する

DAOパターンを実装するコードを記述する

ファクトリ設計パターンを使用するクラスを設計する

(14)

2. OCJP Gold SE 7 資格試験の

傾向と対策

(15)

OCJP Gold SE 7 試験の出題傾向

ソースコードをもとに、その結果を問う問題が多く出題されます

少し長めのソースコードを読み込む必要がありが、出題数が多いので短時

間でコードの内容を把握できるかどうかがポイントです

1問あたり1分30秒

ペースで回答する必要があります

コンパイルエラーになるか?実行結果はどうなる?

要件に合致する実装を選ぶ問題も出題されます

デザインパターンはパターンと実装例をしっかり把握しておく必

要があります

Gold試験(804)と移行試験(805) との共通点

(16)

OCJP Gold SE 7 試験の出題傾向

Gold試験(804)は従来のプログラマ試験の範囲がメインです

Java SE 7の新機能ももちろん出題されますが、ファイルI/Oやスレッドプ

ログラミングなどJava SE 6までのプログラミングスキルを問う問題も多く

出題されます

特にスレッドプログラミングはコードが複雑です

アサーションや書式付き出力(printf)なども要チェックです

移行試験(805)はJava SE 7の新機能にフォーカスしています

Project CoinやFork/Join, NIO.2などJava SE 7の新機能を理解できているか

Gold試験(804)と移行試験(805) とで異なる点

(17)
(18)

OCJP Gold SE 7 試験のトピック別の出題傾向

Java SE 7 言語の拡張 (

804

, 805)

例外とアサーション (804,

805

)

並行処理 (

804

, 805)

ローカライゼーション(

804

, 805)

ファイルI/O (NIO.2) (

804

, 805)

本日のセッションでご紹介する内容

(19)

1. Java SE 7 言語の拡張

1.

switch文で文字列を使用する

2.

下線文字がある数値リテラルと2進リテラルを使用する

3.

try-with-resourcesを使用する

4.

例外処理で複数のcatchを使用する

5.

総称型宣言でダイアモンド演算子を使用する

6.

例外処理でより正確なrethrowを使用する

(20)

このトピックでの出題ポイント

1. Java SE 7 言語の拡張

出題はProject Coinが主体ですが、周辺知識を問う複合問題も出題され

ます

String with Switch + Collectionなど

基数変換(10進数→2進数)

Java SE 6までの実装方法との比較

プログラムコードの実行結果を問う出題が複数あります

コンパイルエラーになるケースもあり

(21)

2. 例外処理とアサーション

1.

throw文とthrows文の使用

2.

multi-catchのあるtry文とfinally句の使用

3.

try-with-resources文を使用したリソースの自動クローズ

4.

カスタム例外の作成

5.

アサーションを使用した不変条件のテスト

(22)

このトピックでの出題ポイント

2. 例外処理とアサーション

例外処理はJava SE 7の新機能を中心に押さえましょう

新機能を使うための構文を中心に確認

try-with-resourcesのクローズ順やAutoCloseableインタフェースなど

multi-catch句の記述方法

アサーションは基本的な使い方を確認

assertの使用方法やアサーションを有効にするコマンドラインオプション

プログラムを評価する出題が多いです

try-with-resourcesそのものだけでなくJDBCやNIO.2と合わせた複合問題も

(23)

3. 並行処理

1.

スレッドの潜在的な問題を識別する

2.

java.util.concurrentコレクションを使用する

3.

アトミック変数とロックを使用する

4.

ExecutoresとThreadPoolsを使用する

5.

並列Fork/Joinフレームワークを使用する

Gold試験では『スレッド』と『並行処理』の二つのトピックが出題されます

『スレッド』には基本的なスレッド・プログラミングのトピックが含まれます

(24)

このトピックでの出題ポイント

3. 並行処理

Gold試験(804)ではスレッドプログラミングの基本をしっかり理解しま

しょう

長めのプログラムを評価する出題が多い

スレッドの作成や同期処理(synchronized)など基礎的な出題は取りこぼしなく

マルチスレッド・プログラムの実行結果が問われることも

移行試験(805)では、並行処理を中心に理解を深めましょう

スレッドセーフなコレクション(java.util.concurrent パッケージ)

APIドキュメント要確認

(25)

4. ローカライゼーション

1.

アプリケーションをローカライズする利点について説明する

2.

ロケールがあらわすものを定義する

3.

Localeオブジェクト使用してロケール読み込みを設定する

4.

各ロケールのリソース・バンドルを作成する

5.

アプリケーションからリソース・バンドルを呼び出す

6.

ロケールに基づいてリソース・バンドルを選択する

7.

NumberFormatとDateFormatを使用してローカライズようにテキス

トの書式を設定する

(26)

このトピックでの出題ポイント

4. ローカライゼーション

リソース・バンドルの使い方を把握しましょう

propertiesファイルの記法やファイルの配置場所まで確認

プログラムからリソース・バンドルを呼び出す方法

移行試験(805)ではローカライゼーション関連のAPIも確認しておきま

しょう

APIを使用したのロケール指定方法

DateFormatはフォーマット指定と出力結果を確認

Java SE 7 の新機能の通貨(Currency)の使い方もチェック

(27)

5. JavaファイルI/O (NIO.2)

1.

Pathクラスを使用してファイルまたはディレクトリパスを操作する

2.

Filesクラスを使用してファイルまたはディレクトリを操作する

3.

ファイル属性やディレクトリ属性への読み取りおよび変更

4.

ディレクトリ・ツリーに再帰的にアクセスする

5.

PathMatcherクラスを使用してファイルを検索する

6.

WatchServiceを使用してディレクトリの変更を監視する

Gold試験では『ファイルI/Oの基礎』と『NIO.2』の二つのトピックが出題されます

『ファイルI/Oの基礎』にはストリームを使用したファイルI/Oのトピックが含まれます

(28)

このトピックでの出題ポイント

5. JavaファイルI/O (NIO.2)

プログラムコードの実行結果を問う出題が多いです

プログラミング手順を確認

関連クラスも合わせてAPIドキュメントを確認

FileとPathクラスやFileVisitor, WatchService, PathMatcherクラス

要件に合わせたクラス/メソッド選択ができるように

ディレクトリ操作や監視のプログラミング手順を確認

Gold試験(804)では基本的なファイルI/Oをメインに確認しましょう

(29)
(30)

例題 1

次のコードの( A )に記述可能なものはどれですか? 2つ選んで下さ

い。

1.

int var = 0b_1111;

2.

long var = 0b11_11L;

3.

float var = 0b11_11F;

下線文字がある数値リテラルと2進リテラルを使用する

1. public static void main(String[] args) {

2. // ( A )

3. System.out.print("The decimal value is" + var);

4. }

(31)

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 31

解答 1

Java SE 7 の新機能 – 言語の拡張

アンダースコアがある数値リテラル

数値リテラルの可読性を向上 (アンダースコア自体は意味を持たない)

2進リテラル

接頭辞

“0B”または“0b”を

整数型(byte, short, int, long )を2進数で表現可能に

Switch文での文字列の使用

例外処理の改善

try-with-resources文、例外のマルチキャッチ、例外の安全な再スロー

ジェネリクスの省略記法(ダイアモンド演算子)

簡潔な可変長引数メソッド

(32)

例題 2

次のコードを –ea オプションを指定して実行した結果について正しい

説明はどれですか?

アサーションを使用した不変条件のテスト

1. public class Calc {

2. public static void main(String[] args) {

3. Calc test = new Calc();

4. System.out.println(test.addN(1, 5));

5. }

6. int addN(int x, int y) {

7. int z = 0;

8. assert x > z && y > z : "xまたはyがzより小さい値です。";

9. for (int i = 0; i < y; i++)

10. z += x;

11. assert z > x && z > y : "zはxまたはyより小さい値です。";

12. return z;

[選択肢]

1.

プログラムは正常に実行され 5 が

出力される

(33)

解答 2

アサーション

(J2SE1.4~)

処理中で成立するべき条件を検証し条件違反を自動で検知するしくみ

アサーションの構文

1;

アサーションの有効化

3. 11行目でAssertionErrorが発生する

assert exp1;

assert exp1 : exp2;

exp1 … 検証されるべき条件

exp2 … 検証エラー時のメッセージ

(AssertionErrorのコンストラクタ引数)

アサーションはGold試験のみで出題されます。移行試験では出題されません。

$ java

–ea

Test

(34)

例題 3

次のコードについて正しい説明はどれですか?

並列Fork/Joinフレームワークを使用する

1. public class MergeSortTask<T> extends RecursiveTask<List<T>> {

2. private final List<T> values;

3. protected List<T> compute() {

4. if (values.size() > 1) {

5. int mid = values.size() / 2;

6. final MergeSortTask<T> t1 = new MergeSortTask(values.subList(

7. 0, mid));

8. final MergeSortTask<T> t2 = new MergeSortTask(values.subList(

9. mid, values.size()));

10. t1.fork();

11. List<T> values1 = t1.join();

12. List<T> values2 = t2.compute();

13. return merge(values1, values2);

14. } else {

[選択肢]

1.

t1とt2は並行実行される

2.

t1とt2は逐次実行される

(35)

解答 3

Fork/Joinフレームワーク

細分化して行う処理をForkJoinTaskクラスのサブクラスとして定義

RecursiveAction … 戻り値なし / RecursiveTask … 戻り値あり

処理はcompute()メソッドをオーバーライドして実装

タスクの粒度を考慮しつつタスクを再帰呼び出し

ForkJoinTaskの実行

fork() … タスクを非同期に実行 / join() … 処理完了後に結果を返す

Fork/Joinの実行

ForkJoinPool#invoke(ForkJoinTask)

2. t1とt2は逐次実行される

compute()の擬似コード

1. if (problem is small)

2. // 直接処理

3. else {

4. // 処理単位をタスクに細分化

5. // 細分化したタスク実行

6. // join

7. // 結果の計算

8. }

fork()はForkJoinPoolのスレッドから

呼び出される必要がある

(36)

例題 4

次のコードの空欄( A )に記述するコードとして正しいものはどれです

か?

1.

new Currency(Locale.DEFAULLT);

2.

Currency.getDefaultInstance("Default" );

3.

new Currency(Locale.getDefaultLocale());

Localeオブジェクト使用してロケール読み込みを設定する

1. Currency currency = ( A ) ;

2. System.out.println(" Code: " + currency.getCurrencyCode()

3. + " Display Name: " + currency.getDisplayName() + " Symbol: "

4. + currency.getSymbol());

(37)

解答 4

ローカライゼーション

Locale … 特定の地域をあらわす

(言語コード、国コード、バリアント)

Locale locale = new Locale(String language [, String country, String variant] )

Locale.getDefault() … JVMのデフォルトロケールを取得

CurrencyクラスはFactoryメソッドを使用してインスタンスを取得

static Currency getInstance(Locale locale)

static Currency getInstance(String currencyCode)

// ISO4217の通貨コード

デフォルト以外の通貨使用する場合は

<JAVA_HOME>/lib/currency.propertiesで追加定義可能

(38)

例題 5

次のコードについて正しい説明はどれですか?

PathMatcherクラスを使用してファイルを検索する

1. public class Finder extends SimpleFileVisitor<Path> {

2. int matches = 0;

3. public static void main(String[] args) throws IOException {

4. Finder finder = new Finder();

5. Files.walkFileTree(Paths.get("d:¥¥tmp"), finder);

6. System.out.println("match count: " + finder.matches);

7. }

8. @Override

9. public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) {

10. PathMatcher matcher = FileSystems.getDefault()

11. .getPathMatcher("glob:*.{java,class}");

12. Path name = file.getFileName();

13. if (name != null && matcher.matches(name))

[選択肢]

1.

拡張子がjava, classのファイル数が出力さ

れる

2.

ファイル名がglob:で始まるファイル数が

出力される

3.

オーバーライドするべきメソッド

(visitFileFailed)が足りないのでコンパイル

(39)

解答 5

NIO.2におけるファイルパスの操作

Paths … ファイル操作のためのユーティリティメソッド

move, copy, write, createLink/createSymbolicLink, walkFileTree …

CopyOptionでコピー時, OpenOptionでオープン時のオプションを指定可能

PathMatcher … パターンマッチングによるファイル検索

PathMatcher matcher = FileSystems.getDefault().getPathMatcher("glob:" +

pattern);

PathMatcher#matches(Path)メソッドでパターンマッチング

パターン指定は

グロブ構文 (glob: ) または正規表現(regex: )

(40)
(41)

受験前の学習方法

試験情報は受験前に必ず確認しましょう

できるだけ実際にプログラムを作成しましょう

新機能も使いこなしてこそ。APIの使い方をしっかり身につけておきま

しょう

試験のための学習は …

Java SE API & ドキュメント

を参照しましょう

Oracle Technology Network > Java にはお役立ち情報が満載です

市販の書籍を活用して試験の出題傾向をつかみましょう

『徹底攻略Upgrade to Java SE7 Programmer問題集』

(42)

試験情報サイト

(43)

試験のサンプル問題

各試験情報サイトにサンプル問題へのリンクがあります

試験の出題形式に慣れるための

例題です

(44)

参照

関連したドキュメント

このマニュアル全体を読んで、Oracle Diagnostics Pack に同梱の Oracle Performance Manager、Oracle Capacity Planner、Oracle TopSessions および Oracle Event

ネットワークカメラ VB-H45 1.1.0 VisionEdition 1.4.1.23 CX-Programmer

In this diagram, there are the following objects: myFrame of the Frame class, myVal of the Validator class, factory of the VerifierFactory class, out of the PrintStream class,

口腔の持つ,種々の働き ( 機能)が障害された場 合,これらの働きがより健全に機能するよう手当

We study the dynamics of a certain discrete model of interacting interlaced particles that comes from the so called shuffling algorithm for sampling a random tiling of an

出典:総合資源エネルギー調査会 省エネルギー・新エネルギー分科会 新エネルギー小委員会 系統ワーキンググループ 第5回

is hereby certified as an Authorized Economic Operator (Customs Broker). 令和 年 月

Maximum single application rate is 0.2 lb. oz/A) per season except in Hawaii. In Hawaii, do not apply more than 0.8 lb. oz/A) per season. Retreatment interval is 7 days. Do not