Make the Future Java FY13 PPT Template

Similar documents
Make the Future Java FY13 PPT Template

Microsoft PowerPoint ppt

Make the Future Java FY13 PPT Template

Java知識テスト問題

(Microsoft PowerPoint - \223\306\217KJAVA\221\346\202R\224\ ppt)

How to Use the PowerPoint Template

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

5 継承とは クラス図 98 7 参照の自動型変換 参照の自動型変換 クラス図の見方 クラス図の書き方 継承 継承してクラスを作る インスタンスの初期化 継承の効果を確認する

JavaプログラミングⅠ

オブジェクト指向プログラミング・同演習 5月21日演習課題

Exam : 1z1-809-JPN Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO Get Latest & Valid 1z1-809-JPN Exam's Question and Answers 1 from Ac

JavaプログラミングⅠ

26 editor.putint(pref_count_key, executecount); 27 // 変更した Preference を確定させる 28 editor.commit(); 29 } (c) 実行の様子実装して実行した様子を図 1 と図 2 に示す. 一度実行するごとに, カウン

Java プログラミング Ⅰ 3 回目変 数 今日の講義講義で学ぶ内容 変数とは 変数の使い方 キーボード入力の仕方 変 数 変 数 一時的に値を記憶させておく機能 変数は 型 ( データ型 ) と識別子をもちます 2 型 ( データ型 ) 変数に記憶する値の種類変数の型は 記憶できる値の種類と範囲

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード]

プログラミング基礎I(再)

Microsoft PowerPoint - prog09.ppt

Microsoft PowerPoint - prog09.ppt

メソッドのまとめ

JavaプログラミングⅠ

4-1- 基 Java に関する知識 1 独立行政法人情報処理推進機構

Microsoft PowerPoint - ●SWIM_ _INET掲載用.pptx

JAVA入門

基本情報STEP UP演習Java対策

Prog1_15th

第 2 章インタフェース定義言語 (IDL) IDL とは 言語や OS に依存しないインタフェース定義を行うためのインタフェース定義言語です CORBA アプリケーションを作成する場合は インタフェースを定義した IDL ファイルを作成する必要があります ここでは IDL の文法や IDL ファイ

Prog2_10th

2016 年度 JAVA 講座第六週目 目次 パッケージ... 2 パッケージの作成... 2 パッケージの使用方法... 3 異なるパッケージ同名クラスの宣言... 4 パッケージの側面から見たアクセス修飾子... 4 ラッパークラス... 5 ラッパークラス利用法:キャスト... 5 ラッパーク

Prog1_10th

JavaプログラミングⅠ

Javaプログラムの実行手順

<基礎領域>

PowerPoint Presentation

た場合クラスを用いて 以下のように書くことが出来る ( 教科書 p.270) プログラム例 2( ソースファイル名 :Chap08/AccountTester.java) // 銀行口座クラスとそれをテストするクラス第 1 版 // 銀行口座クラス class Account String name

Microsoft PowerPoint - prog03.ppt

Java プログラミング Ⅰ 3 回目変数 変数 変 数 一時的に値を記憶させておく機能型 ( データ型 ) と識別子をもつ 2 型 ( データ型 ) 変数の種類型に応じて記憶できる値の種類や範囲が決まる 型 値の種類 値の範囲 boolean 真偽値 true / false char 2バイト文

Javaセキュアコーディングセミナー2013東京第1回 演習の解説

Android Layout SDK プログラミング マニュアル

Java講座

Prog2_9th

Java の ConcurrentHashMap における同期化 バッドケースとその対処法 2013 年 9 月湊隆行 1. はじめに表 1.1 に示すように Java の Collections Framework には 3 つの世代があります バージョン 1.0 から存在するレガシー API バ

JAVA とテンプレート

.NETプログラマー早期育成ドリル ~VB編 付録 文法早見表~

Programming-C-9.key

GEC-Java

12.1 インターネットアドレス インターネットアドレス インターネットアドレス 32 ビットの長さを持つインターネットに接続されたマシンを識別するのに使う インターネットアドレスは ピリオドで区切られたトークンの並びで表現されることもある インターネットアドレス

ただし 無作為にスレッドを複数実行すると 結果不正やデッドロックが起きる可能性がある 複数のスレッド ( マルチスレッド ) を安全に実行する ( スレッドセーフにする ) ためには 同期処理を用いるこ とが必要になる 同期処理は 予約語 synchronized で行うことができる ここでは sy

JavaプログラミングⅠ

Javaセキュアコーディングセミナー東京 第3回 入出力(File, Stream)と例外時の動作 演習解説

Microsoft Word - Android_SQLite講座_画面800×1280

新・明解Java入門

Brekeke PBX - Version 2.1 ARSプラグイン開発ガイド

受講を行うための前提知識 PC の基本操作ができること 座学 コーディング実習 受講講座の名称 9 日間 67:30 システムエンジニア向け IT 基礎 4/8/( 月 ) IT 技術者に共通する基本的な知識の習得を目標とします コンピュータ基礎では コンピュータの仕組みやコンピュータで扱う数値や単

Microsoft認定資格問題集(70-483_demo)

2

スライド 1

デジタル表現論・第6回

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 今日の講義講義で学ぶ内容 switch 文 論理演算子 条件演算子 条件判断文 3 switch 文 switch 文 式が case のラベルと一致する場所から直後の break; まで処理しますどれにも一致致しない場合 def

第 1 章 Java 言語について ( オブジェクト指向, 変数の扱い方, 繰り返し条件と条件分岐 ) Java 言語の概要とオブジェクト指向, 変数の扱い方, 繰り返し条件と条件分岐について理解し, プログラム作成を行う 1.1 Java 言語の概要 JAVA は Sun Microsystems

PowerPoint プレゼンテーション

intra-mart Accel Platform — IM-Repository拡張プログラミングガイド   初版  

Java 基礎問題ドリル ~ メソッドを理解する ~ 次のプログラムコードに 各設問の条件にあうメソッドを追加しなさい その後 そのメソッドが正しく動作することを検証するためのプログラムコードを main メソッドの中に追加しなさい public class Practice { // ここに各設問

Prog2_12th

Prog1_6th

break 文 switch ブロック内の実行中の処理を強制的に終了し ブロックから抜けます switch(i) 強制終了 ソースコード例ソースファイル名 :Sample7_1.java // 入力値の判定 import java.io.*; class Sample7_1 public stati

デザインパターン第一章「生成《

Javaセキュアコーディングセミナー東京 第2回 数値データの取扱いと入力値の検証 演習解説

文字列操作と正規表現

プレポスト【問題】

できるプログラマーを本気で育てる Java 超 Webプログラマーへの第 歩 第 2 回オブジェクト指向 テクノロジックアート 瀬 嘉秀

Microsoft PowerPoint - prog04.ppt

デジタル表現論・第4回

問 次の Fortran プログラムの説明及びプログラムを読んで、設問に答えよ。

11 ソフトウェア工学 Software Engineering デザインパターン DESIGN PATTERNS デザインパターンとは? デザインパターン 過去のソフトウェア設計者が生み出したオブジェクト指向設計に関して, ノウハウを蓄積し 名前をつけ 再利用しやすいようにカタログ化したもの 各デ

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版   None

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版  

108 頁通過テスト 2. の本文 111 頁紹介文 136 頁練習 5-1 プログラム 136 頁練習 5-1 問 2 末尾に句点追加 158 頁練習問題文 161 頁練習 2-2 コメント文 166 頁練習 3-1 問 1 クラス名を挿入 178 頁通過テスト 3 文字 s を削除 180 頁コ

(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド

開発・運用時のガイド JDK8への移行に伴う留意点 [UNIX]

メディプロ1 Javaプログラミング補足資料.ppt

think9i Oracle Internet File System i を使用した ソフトウェア開発手法 日本オラクル株式会社製品本部システム製品マーケティング部 Copyright 2001 Oracle Corporation Japan. All Rights Reserved.

Javaの作成の前に

Program Design (プログラム設計)

Javaプログラマー早期育成ドリル ~コードリーディング編~ 解答

Microsoft Word 基_シラバス.doc

プログラミングA

情報技術 Java の特徴 Java は現在 事務処理計算用プログラミング言語として開発された COBOL に取って代わり C 言語や C++ と並んで 現在最も使われているプログラミング言語の一つである Java は Write Once, Run Anywhere( プログラムを一度作成したらど

第二回独習 Java ゼミ 第二章クラスとメソッド 2.1 メソッドの構造 2.2 静的メソッドと静的変数の概要 2.3 インスタンスメソッドとインスタンス変数の概要 2.4 Integerクラス 2006/04/19 神津健太

Oracleセキュア・エンタープライズ・サーチ

ガイダンス


やさしいJavaプログラミング -Great Ideas for Java Programming サンプルPDF

問題1 以下に示すプログラムは、次の処理をするプログラムである

Java演習(4) -- 変数と型 --

Java言語 第1回

リファレンス,配列 例外処理

PowerPoint プレゼンテーション

Prog1_3rd

Transcription:

1

OJCP Gold SE 7 資格試験の傾向と対策 日本オラクル株式会社オラクルユニバーシティ 2

以下の事項は 弊社の一般的な製品の方向性に関する概要を説明するものです また 情報提供を唯一の目的とするものであり いかなる契約にも組み込むことはできません 以下の事項は マテリアルやコード 機能を提供することをコミットメント ( 確約 ) するものではないため 購買決定を行う際の判断材料になさらないで下さい オラクル製品に関して記載されている機能の開発 リリースおよび時期については 弊社の裁量により決定されます Oracle は 米国オラクル コーポレーション及びその子会社 関連会社の米国及びその他の国における登録商標または商標です 他社名又は製品名は それぞれ各社の商標である場合があります 3

Agenda 1. Java SE 7 対応オラクル認定 Java 資格 のご案内 2. OCJP Gold SE 7 資格試験の傾向と対策 3. 補足情報 4

1. Java SE 7 対応オラクル認定 Java 資格のご案内 5

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 Programmer, Bronze SE 7 設計者の意図を正しく理解して独力で機能実装が行えるレベル ( 中上級 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 によるオブジェクト指向プログラミングを覚えたレベル ( 言語を初めて学ぶプログラマ向け ) Bronze 資格は Java 言語の基本文法 ( 変数宣言や制御文 ) とオブジェクト指向プログラミングの基本を理解しているかどうかが主な出題項目です 言語初学者が理解するべき基礎項目を理解しているかが問われます 6

Java SE 7 資格認定パス Gold 試験は どちらもかなり手強いです しっかり準備して試験に備えましょう! 1Z0-804: Java SE 7 Programmer II Oracle Certified Java Programmer, Gold SE 7 これから資格取得を目指す方 1Z0-803: Java SE 7 Programmer I Oracle Certified Java Programmer, Silver SE 7 1Z0-805: Upgrade to Java SE 7 Programmer 1Z0-802: Java SE 7 Bronze Exam オンライン試験有り Oracle Certified Java Programmer, Bronze SE 7 OCJ-P/SJC-P 資格取得者 ( バージョンは問わない ) 資格名 試験名 一試験で移行可能! 7

OCJP Gold SE 7 試験 Java SE 7 Programmer II 試験名 : Java SE 7 Programmer II (1Z0-804) 認定資格 : Oracle Certified Java Programmer, Gold SE 7 出題数 : 90 問 ( 選択式 ) 試験時間 : 150 分 合格ライン : 65% 試験料 ( 税抜 ): 32,600 円 前提資格 : OCJP Silver SE 7 8

テスト内容チェックリスト (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 の使用 配列とリストのソートと検索 9 列挙型の使用

テスト内容チェックリスト (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 インタフェースの使用 10

テスト内容チェックリスト (3) 10. スレッド Thread クラスと Runnable インタフェースの作成と使用 スレッドのライフサイクルの管理と制御 スレッドの潜在的な問題の識別 スレッドの潜在的な問題の識別 11. 並行処理 12. ローカライゼーション Locale オブジェクトを使用したロケールの読み込みおよび設定 各ロケールのリソース バンドルの作成 アプリケーションでのリソース バンドルのロード NumberFormat と DateFormat を使用した国際化対応のテキスト書式設定 java.util.concurrentコレクションの使用アトミック変数とロックの適用 ExecutorsとThreadPoolsの使用並列 Fork/Joinフレームワークの使用 11

OCJP Gold SE 7 移行試験 Upgrade to Java SE 7 Programmer 試験名 : 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は問わない ) 12

テスト内容チェックリスト 1. 言語の拡張 switch 文で文字列を使用する 下線文字がある数値リテラルと 2 進リテラルを使用する try-with-resources を使用する 例外処理で複数の catch を使用する 総称型宣言でダイアモンド演算子を使用する 例外処理でより正確な rethrow を使用する 2. 設計パターン シングルトン設計パターンを使用してクラスを設計する ビジネス問題を解決するためにコンポジションを使用するタイミングと方法を識別する DAO パターンを実装するコードを記述する ファクトリ設計パターンを使用するクラスを設計する 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 を使用してディレクトリの変更を監視する 13

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

OCJP Gold SE 7 試験の出題傾向 Gold 試験 (804) と移行試験 (805) との共通点 ソースコードをもとに その結果を問う問題が多く出題されます 少し長めのソースコードを読み込む必要がありが 出題数が多いので短時間でコードの内容を把握できるかどうかがポイントです 1 問あたり 1 分 30 秒ペースで回答する必要があります コンパイルエラーになるか? 実行結果はどうなる? 要件に合致する実装を選ぶ問題も出題されます デザインパターンはパターンと実装例をしっかり把握しておく必要があります 15

OCJP Gold SE 7 試験の出題傾向 Gold 試験 (804) と移行試験 (805) とで異なる点 16 Gold 試験 (804) は従来のプログラマ試験の範囲がメインです Java SE 7 の新機能ももちろん出題されますが ファイル I/O やスレッドプログラミングなど Java SE 6 までのプログラミングスキルを問う問題も多く出題されます 特にスレッドプログラミングはコードが複雑です アサーションや書式付き出力 (printf) なども要チェックです 移行試験 (805) は Java SE 7 の新機能にフォーカスしています Project Coin や Fork/Join, NIO.2 など Java SE 7 の新機能を理解できているかを問う問題が多く出題されます 各トピックはそれほど深い理解を問うものではありませんが プログラミングの手順などひと通り理解できているかどうかがポイントです

トピックごとの出題傾向 17

OCJP Gold SE 7 試験のトピック別の出題傾向 本日のセッションでご紹介する内容 Java SE 7 言語の拡張 (804, 805) 例外とアサーション (804, 805) 並行処理 (804, 805) ローカライゼーション (804, 805) ファイルI/O (NIO.2) (804, 805) 18

1. Java SE 7 言語の拡張 1. switch 文で文字列を使用する 2. 下線文字がある数値リテラルと2 進リテラルを使用する 3. try-with-resourcesを使用する 4. 例外処理で複数のcatchを使用する 5. 総称型宣言でダイアモンド演算子を使用する 6. 例外処理でより正確なrethrowを使用する 19

このトピックでの出題ポイント 1. Java SE 7 言語の拡張 出題は Project Coin が主体ですが 周辺知識を問う複合問題も出題されます String with Switch + Collection など 基数変換 (10 進数 2 進数 ) Java SE 6 までの実装方法との比較 プログラムコードの実行結果を問う出題が複数あります コンパイルエラーになるケースもあり コーディングは規約レベルでしっかりと 20

2. 例外処理とアサーション 1. throw 文とthrows 文の使用 2. multi-catchのあるtry 文とfinally 句の使用 3. try-with-resources 文を使用したリソースの自動クローズ 4. カスタム例外の作成 5. アサーションを使用した不変条件のテスト 21

このトピックでの出題ポイント 2. 例外処理とアサーション 例外処理は Java SE 7 の新機能を中心に押さえましょう 新機能を使うための構文を中心に確認 try-with-resources のクローズ順や AutoCloseable インタフェースなど multi-catch 句の記述方法 アサーションは基本的な使い方を確認 assert の使用方法やアサーションを有効にするコマンドラインオプション プログラムを評価する出題が多いです try-with-resources そのものだけでなく JDBC や NIO.2 と合わせた複合問題も 22

3. 並行処理 1. スレッドの潜在的な問題を識別する 2. java.util.concurrentコレクションを使用する 3. アトミック変数とロックを使用する 4. ExecutoresとThreadPoolsを使用する 5. 並列 Fork/Joinフレームワークを使用する Gold 試験では スレッド と 並行処理 の二つのトピックが出題されます スレッド には基本的なスレッド プログラミングのトピックが含まれます 23

このトピックでの出題ポイント 3. 並行処理 Gold 試験 (804) ではスレッドプログラミングの基本をしっかり理解しましょう 長めのプログラムを評価する出題が多い スレッドの作成や同期処理 (synchronized) など基礎的な出題は取りこぼしなく マルチスレッド プログラムの実行結果が問われることも 移行試験 (805) では 並行処理を中心に理解を深めましょう スレッドセーフなコレクション (java.util.concurrent パッケージ ) API ドキュメント要確認 Executors や Fork/Join 考え方 ( 特に Fork/Join) と実装の手順 (API の使い方 ) を確認 24

4. ローカライゼーション 1. アプリケーションをローカライズする利点について説明する 2. ロケールがあらわすものを定義する 3. Locale オブジェクト使用してロケール読み込みを設定する 4. 各ロケールのリソース バンドルを作成する 5. アプリケーションからリソース バンドルを呼び出す 6. ロケールに基づいてリソース バンドルを選択する 7. NumberFormat と DateFormat を使用してローカライズようにテキストの書式を設定する 25

このトピックでの出題ポイント 4. ローカライゼーション リソース バンドルの使い方を把握しましょう properties ファイルの記法やファイルの配置場所まで確認 プログラムからリソース バンドルを呼び出す方法 移行試験 (805) ではローカライゼーション関連の API も確認しておきましょう API を使用したのロケール指定方法 DateFormat はフォーマット指定と出力結果を確認 Java SE 7 の新機能の通貨 (Currency) の使い方もチェック currency.properties も確認 26

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 のトピックが含まれます 27

このトピックでの出題ポイント 5. Java ファイル I/O (NIO.2) プログラムコードの実行結果を問う出題が多いです プログラミング手順を確認 関連クラスも合わせて API ドキュメントを確認 File と Path クラスや FileVisitor, WatchService, PathMatcher クラス 要件に合わせたクラス / メソッド選択ができるように ディレクトリ操作や監視のプログラミング手順を確認 Gold 試験 (804) では基本的なファイル I/O をメインに確認しましょう ストリームを使用したファイルアクセス Input/Output Stream や Reader/Writer 28

例題 29

例題 1 下線文字がある数値リテラルと 2 進リテラルを使用する 次のコードの ( A ) に記述可能なものはどれですか? 2 つ選んで下さい 1. public static void main(string[] args) { 2. // ( A ) 3. System.out.print("The decimal value is" + var); 4. } 1. int var = 0b_1111; 2. long var = 0b11_11L; 3. float var = 0b11_11F; 4. double var = 0b11_11; 30

解答 1 1. int var = 0b_1111; と 4. double var = 0b11_11; Java SE 7 の新機能 言語の拡張 アンダースコアがある数値リテラル 数値リテラルの可読性を向上 ( アンダースコア自体は意味を持たない ) 2 進リテラル 接頭辞 0B または 0b を整数型 (byte, short, int, long ) を2 進数で表現可能に Switch 文での文字列の使用 例外処理の改善 try-with-resources 文 例外のマルチキャッチ 例外の安全な再スロー ジェネリクスの省略記法 ( ダイアモンド演算子 ) 簡潔な可変長引数メソッド 31

例題 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; 13. } 14. } [ 選択肢 ] 1. プログラムは正常に実行され 5 が出力される 2. 8 行目でAssertionErrorが発生する 3. 11 行目でAssertionErrorが発生する 4. コンパイルエラーになる 32

解答 2 3. 11 行目で AssertionError が発生する アサーション (J2SE1.4~) 処理中で成立するべき条件を検証し条件違反を自動で検知するしくみ アサーションの構文 1; assert exp1; assert exp1 : exp2; アサーションの有効化 $ java ea Test exp1 検証されるべき条件 exp2 検証エラー時のメッセージ (AssertionError のコンストラクタ引数 ) アサーションは Gold 試験のみで出題されます 移行試験では出題されません 33

例題 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 { 15. return values; 16. } 17. } 18. // mergeメソッドは正しく実装されているものとする (19 行目以下省略 ) 19. protected List<T> merge(list<t> arg1, List<T> arg2) { 1. t1 と t2 は並行実行される 2. t1 と t2 は逐次実行される 3. 実行時に例外になる 4. コンパイルエラーになる 34

解答 3 2. t1 と t2 は逐次実行される Fork/Join フレームワーク 細分化して行う処理を ForkJoinTask クラスのサブクラスとして定義 RecursiveAction 戻り値なし / RecursiveTask 戻り値あり 処理は compute() メソッドをオーバーライドして実装 タスクの粒度を考慮しつつタスクを再帰呼び出し ForkJoinTask の実行 fork() タスクを非同期に実行 / join() 処理完了後に結果を返す Fork/Join の実行 ForkJoinPool#invoke(ForkJoinTask) compute() の擬似コード 1. if (problem is small) 2. // 直接処理 3. else { 4. // 処理単位をタスクに細分化 5. // 細分化したタスク実行 6. // join 7. // 結果の計算 8. } fork() は ForkJoinPool のスレッドから呼び出される必要がある 35

例題 4 Locale オブジェクト使用してロケール読み込みを設定する 次のコードの空欄 ( A ) に記述するコードとして正しいものはどれですか? 1. Currency currency = ( A ) ; 2. System.out.println(" Code: " + currency.getcurrencycode() 3. + " Display Name: " + currency.getdisplayname() + " Symbol: " 4. + currency.getsymbol()); 1. new Currency(Locale.DEFAULLT); 2. Currency.getDefaultInstance("Default" ); 3. new Currency(Locale.getDefaultLocale()); 4. Currency.getInstance(Locale.getDefault()); 36

解答 4 4. Currency.getInstance(Locale.getDefault()); ローカライゼーション 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 で追加定義可能 37

例題 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)) 14. matches++; 15. return FileVisitResult.CONTINUE; 16. } 17. } [ 選択肢 ] 1. 拡張子が java, class のファイル数が出力さ 2. ファイル名が glob: で始まるファイル数が出力される 3. オーバーライドするべきメソッド (visitfilefailed) が足りないのでコンパイルエラーになる 4. パターンに : が含まれるので実行時に例外がスローされる 38

解答 5 1. 拡張子が java, class のファイル数が出力される NIO.2 におけるファイルパスの操作 Paths ファイル操作のためのユーティリティメソッド move, copy, write, createlink/createsymboliclink, walkfiletree CopyOption でコピー時, OpenOption でオープン時のオプションを指定可能 PathMatcher パターンマッチングによるファイル検索 PathMatcher matcher = FileSystems.getDefault().getPathMatcher("glob:" + pattern); PathMatcher#matches(Path) メソッドでパターンマッチング パターン指定はグロブ構文 (glob: ) または正規表現 (regex: ) 39

3. 補足情報 40

受験前の学習方法 試験情報は受験前に必ず確認しましょう できるだけ実際にプログラムを作成しましょう 新機能も使いこなしてこそ API の使い方をしっかり身につけておきましょう 試験のための学習は Java SE API & ドキュメントを参照しましょう Oracle Technology Network > Java にはお役立ち情報が満載です 市販の書籍を活用して試験の出題傾向をつかみましょう 徹底攻略 Upgrade to Java SE7 Programmer 問題集 ( インプレスジャパン ) 41

試験情報サイト http://education.oracle.co.jp/java-se7-cert/ 42

試験のサンプル問題各試験情報サイトにサンプル問題へのリンクがあります 試験の出題形式に慣れるための例題です 43

44