How to Use the PowerPoint Template

Similar documents
Make the Future Java FY13 PPT Template

Java知識テスト問題

Microsoft PowerPoint - prog03.ppt

PowerPoint プレゼンテーション

Make the Future Java FY13 PPT Template

PowerPoint プレゼンテーション

Make the Future Java FY13 PPT Template

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

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

PowerPoint プレゼンテーション

Microsoft PowerPoint - prog09.ppt

Microsoft PowerPoint - prog09.ppt

Prog2_12th

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

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

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

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

Microsoft PowerPoint ppt

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

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

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

GEC-Java

JAVA入門

MySQL研修コース & 資格のご案内

JavaプログラミングⅠ

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

2

メソッドのまとめ

Java講座

Make the Future Java FY13 PPT Template

Microsoft Word 基_シラバス.doc

スライド 1

Microsoft PowerPoint - chap10_OOP.ppt

目次 はじめに... 2 無料トライアルのサインアップ方法... 3 トライアル環境へのアクセス 参考情報

JavaプログラミングⅠ

<Insert Picture Here> 30 分で理解する ORACLE MASTER 日本オラクル株式会社 Oracle University

Microsoft PowerPoint - prog04.ppt

Javaの作成の前に

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

Microsoft PowerPoint - CproNt02.ppt [互換モード]

Javaプログラムの実行手順

PowerPoint Presentation

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

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

<基礎領域>

Prog2_9th

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

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

Oracle Business Rules

プログラミング入門1

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

PowerPoint プレゼンテーション

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

プログラミング実習I

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

基本情報STEP UP演習Java対策

Sort-of-List-Map(A)

メソッドのまとめ

PowerPoint プレゼンテーション

情報実習Ⅱ

文字列操作と正規表現

プログラミングA

Java言語 第1回

PowerPoint プレゼンテーション

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

Microsoft PowerPoint - ●SWIM_ _INET掲載用.pptx

プログラミング入門1

コンピュータ中級B ~Javaプログラミング~ 第3回 コンピュータと情報をやりとりするには?

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


JavaプログラミングⅠ

プログラミングA

プログラミング入門1

Slide 1

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

Prog1_6th

V8.1新規機能紹介記事

Microsoft Word - Training10_プリプロセッサ.docx

/*Source.cpp*/ #include<stdio.h> //printf はここでインクルードして初めて使えるようになる // ここで関数 average を定義 3 つの整数の平均値を返す double 型の関数です double average(int a,int b,int c){

5-D オラクルコンサルが語るJava SE 8の勘所

PowerPoint プレゼンテーション

Microsoft PowerPoint - exp2-02_intro.ppt [互換モード]

JavaプログラミングⅠ

プログラミング基礎

プログラミングA

JavaプログラミングⅠ

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

JUnit 概要 2015/4/16 版今泉俊幸 2015 bbreak Systems 1

Oracle Web CacheによるOracle WebCenter Spacesパフォーマンスの向上

Prog1_15th

Microsoft Word - problem3.doc

プレポスト【問題】

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

テキストファイルの入出力1

PowerPoint プレゼンテーション

プログラミング入門1

DumpCollection IT Exam Training online / Bootcamp PDF and Testing Engine, study and practice

Microsoft PowerPoint - 計算機言語 第7回.ppt

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

JavaプログラミングⅠ

Transcription:

最新 Java 認定資格ガイド 日本オラクル株式会社 オラクルユニバーシティ 担当マネージャ 岡田 大輔 Java Day Tokyo 2015 2015年4月8日

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

本日おはなしすること 1 2 3 今日までの Java 認定資格 これからの Java 認定資格 新試験受験のポイント 5

今日までの Java 認定資格 Java SE 7 資格の現状 6

Java SE / EE 認定資格 Java 認定資格は Javaプログラミングスキルを証明する世界共通の認定資格です Expert, Java EE 6 Web Component Developer Expert, Java EE 6 Enterprise JavaBeans Developer Expert, Java EE 6 Java Persistence API Developer Expert, Java EE 6 Web Services Developer Expert, Java EE 6 JaveServer Faces Developer レベル 3 Gold SE 7 設計者の意図を正しく理解して独力で機能実装が行えるレベル ( 中上級 Java プログラマ向け ) Global 資格名 : Professional, Java SE 7 Programmer レベル 2 Silver SE 7 上級者の指導のもとで指定された実装が行えるレベル ( 初級 Java プログラマ向け ) Global 資格名 : Associate, Java SE 7 Programmer レベル 1 Bronze SE 7 Java によるオブジェクト指向プログラミングを覚えたレベル ( 言語を初めて学ぶプログラマ向け ) レベル 0 ITSS レベル 7

Java SE 7 資格のレベル感 Gold SE 7 Silver SE 7 Bronze SE 7 設計者の意図を正しく理解して独力で機能実装が行えるレベル ( 中上級 Java プログラマ向け ) Gold 資格は コレクション API, ファイル I/O, 並行処理 JDBC などのライブラリを使用したプログラミングを理解しているかどうかが主な出題項目です 加えてデザインパターンについても問われるため設計から実装までの包括的なスキルを身につけているかが問われます (Global 資格 : Professional, Java SE 7 Programmer) 上級者の指導のもとで実装コードやテストコードなどを書けるレベル ( 初級 Java プログラマ向け ) Silver 資格は Java 言語の基本文法とオブジェクト指向プログラミング ( クラス インタフェース 例外処理 ) を理解しているかどうかが主な出題項目です プログラミングのために必要とされる仕様を詳細に理解しているかが問われます (Global 資格 : Associate, Java SE 7 Programmer) Java によるオブジェクト指向プログラミングを覚えたレベル ( 言語を初めて学ぶプログラマ向け ) Bronze 資格は Java 言語の基本文法 ( 変数宣言や制御文 ) とオブジェクト指向プログラミングの基本を理解しているかどうかが主な出題項目です 言語初学者が理解するべき基礎項目を理解しているかが問われます 8

Java SE 7 資格認定パス Bronze, Silver どちらからでもスタート可能 1Z0-804: Java SE 7 Programmer II Gold SE 7 これから資格取得を目指す方 1Z0-803: Java SE 7 Programmer I Silver SE 7 1Z0-805: Upgrade to Java SE 7 Programmer 1Z0-802: Java SE 7 Bronze Exam Bronze SE 7 OCJ-P / SJC-P 資格取得者 ( バージョンは問わない ) 一試験で移行可能 資格名 試験名 9

OCJP Bronze / Silver SE 7 試験の出題傾向 Bronze と Silver の共通点 ソースコードをもとに その結果を問う問題が多く出題されます ソースコードはそれほど長くありません (10-15 行程度 ) が 出題数が多いので短時間でコードの内容を把握できるかどうかがポイントです 1 問あたり 1 分 30 秒ペースで回答する必要があります コンパイルエラーになるか? 実行結果はどうなる? 要件に合致する実装を選ぶ問題も出題されます Java プログラミングの基礎をしっかり理解しておく必要があります 出題トピックはほとんど同じです Silver 試験では例外処理も出題範囲です Silver 試験のトピックは Gold 試験でも一部出題されます

OCJP Bronze / Silver SE 7 試験の出題傾向 Bronze と Silver で異なる点 Bronze 試験の方が素直な問題が多いです 単一項目が理解できていれば解答可能な問題が多いです Java SE 7 の新機能は出題しません オブジェクト指向プログラミングに関する出題が多いです Silver 試験は少し高度なトピックも出題されます 複数の要素を組み合わせた出題もあります Java SE 7 の新機能も出題されます 各トピックはほぼ均等に出題されるので網羅的に準備しましょう

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

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

みんなのギモン : 認定試験は時間的な余裕がない! そう感じるように試験時間を設定しています オラクル認定資格の試験仕様の策定には 心理統計学者 (Psychometrician) も関与しています! 認定試験は英語試験開始時にベータ試験を実施します 日本語でベータ試験を行うことはあまりありません ( 基本的に Bronze 試験のみ ) ベータ試験の受験結果に基づいて 合格ラインと試験時間が設定されます 試験時間については 受験者が 心理的プレッシャーを少し感じる 程度の時間になるように心理統計学者が助言を行います 時間が足りなく感じるのは当然のことなので慌てず 落ち着いて 解答しましょう 14

これからの Java 認定資格 Java SE 8 認定資格 はじまります 15

Java SE 8 対応認定資格 2015 年 5 月 28 日 ( 木 ) より日本語試験順次開始 Bronze SE 7/8 Silver SE 8 Gold SE 8 16

Java SE 7 / 8 認定資格 あたらしい認定資格体系 Gold SE 7 Silver SE 7 Gold SE 8 Silver SE 8 設計者の意図を正しく理解して独力で機能実装が行えるレベル ( 中上級 Java プログラマ向け ) 上級者の指導のもとで指定された実装が行えるレベル ( 初級 Java プログラマ向け ) Bronze SE 7/8 Java によるオブジェクト指向プログラミングを覚えたレベル ( 言語を初めて学ぶプログラマ向け ) 17

Java SE 8 資格のレベル感 Gold SE 8 Silver SE 8 Bronze SE 7/8 設計者の意図を正しく理解して独力で機能実装が行えるレベル ( 中上級 Java プログラマ向け ) Gold 資格は コレクション API, ファイル I/O, 並行処理 JDBC などのコア ライブラリを使用方法と Java SE 8 の新機能である Lambda 式や Stream API を使用した関数スタイルのプログラミング方法を理解しているかどうかが主な出題項目です 加えてデザインパターンについても問われるため設計から実装までの包括的なスキルを身につけているかが問われます (Global 資格 : Professional, Java SE 8 Programmer) 上級者の指導のもとで実装コードやテストコードなどを書けるレベル ( 初級 Java プログラマ向け ) Silver 資格は Java 言語の基本文法とオブジェクト指向プログラミング ( クラス インタフェース 例外処理 ) を理解しているかどうかが主な出題項目です また 基本的な Lambda 式の書き方や Date and Time API の基礎を含めたプログラミングのために必要とされる仕様を詳細に理解しているかが問われます (Global 資格 : Associate, Java SE 8 Programmer) Java によるオブジェクト指向プログラミングを覚えたレベル ( 言語を初めて学ぶプログラマ向け ) Bronze 資格は Java 言語の基本文法 ( 変数宣言や制御文 ) とオブジェクト指向プログラミングの基本を理解しているかどうかが主な出題項目です 言語初学者が理解するべき基礎項目を理解しているかが問われます 18

Java SE 7 / 8 認定パス 任意 必須 SJC-P (any version) OCJ-P SE 5/6 Upgrade to Java SE 7 Programmer (1Z0-805) Java SE 7 Programmer I (1Z0-803) OCJP Silver SE 7 Java SE 7 Programmer II (1Z0-804) OCJP Gold SE 7 Java SE 7 資格 Upgrade to Java SE 8 Programmer (1Z0-810) OCJP Bronze SE 7/8 OCJP Silver SE 8 OCJP Gold SE 8 Java SE 7/8 Bronze (1Z0-814) Java SE 8 資格 Java SE 8 Programmer I (1Z0-808) Java SE 8 Programmer II (1Z0-809) Upgrade Java SE 5 and 6 to Java SE 8 Programmer (1Z0-813) 19

Java SE 8 認定パス ( 新規 ) Bronze, Silver どちらからでもスタート可能 1Z0-809: Java SE 8 Programmer II Gold SE 8 これから資格取得を目指す方 1Z0-808: Java SE 8 Programmer I Silver SE 8 1Z0-814: Java SE 7/8 Bronze Exam Bronze SE 7/8 資格名 試験名 20

Java SE 8 認定パス ( 移行 ) SJC-P 保持者は OCJP Gold SE 7 OCJP Gold SE 8 の順でアップグレード 1Z0-810: Upgrade to Java SE 7 Programmer Gold SE 8 1Z0-805: Upgrade to Java SE 7 Programmer OCJP Gold SE 7 資格取得者 OCJ-P SE 5 / 6 資格取得者 1Z0-813: Upgrade Java SE 5 and 6 to Java SE 8 Programmer SJC-P 資格取得者 ( バージョンは問わない ) OCJ-P SE 5/6 または OCJP Gold SE 7 保持者は一試験で移行可能! 資格名 試験名 21

Java SE 8 認定パス (OCJP Silver SE 7 資格取得者 ) OCJP Silver SE 7 資格取得者 1Z0-804: Java SE 7 Programmer II Gold SE 7 1Z0-808: Java SE 8 Programmer I Silver SE 8 OCJP Silver SE 7 資格取得者は OCJP Gold SE 7 OCJP Gold SE 8 のルートがオススメ 1Z0-809: Java SE 8 Programmer II 1Z0-810: Upgrade to Java SE 8 Programmer Gold SE 8 資格名 試験名 22

Java SE 8 認定パス (OCJP Bronze SE 7 資格取得者 ) 1Z0-803: Java SE 7 Programmer I Silver SE 7 1Z0-804: Java SE 7 Programmer II Gold SE 7 OCJP Bronze SE 7 資格取得者 Bronze 新試験 (1Z0-814) は再受験不要なので Silver 試験にチャレンジしましょう! 1Z0-808: Java SE 8 Programmer I Silver SE 8 1Z0-809: Java SE 8 Programmer II Gold SE 8 資格名 試験名 23

Java SE 8 試験と資格 日本語試験は順次開始します 試験番号試験名認定資格前提資格試験開始時期 1Z0-814 Java SE 7/8 Bronze 1Z0-808 Java SE 8 Programmer I 1Z0-809 Java SE 8 Programmer II Programmer, Bronze SE 7/8 Programmer, Silver SE 8 なし なし 2015 年 5 月 28 日 2015 年 7 月上旬 OCJP Silver SE 8 2015 年 10 月 ( ) 1Z0-810 Upgrade to Java SE 8 Programmer Programmer, OCJP Gold SE 7 2015 年 9 月 ( ) Gold SE 8 Upgrade Java SE 5 and 6 to Java SE 8 OCJ-P SE 5 または 1Z0-813 2015 年 10 月 ( ) Programmer OCJ-P SE 6 英語試験のリリース状況によって日本語試験開始時期を変更する可能性があります 24

新試験受験のポイント OCJP Bronze SE 7/8 資格試験と OCJP Silver SE 8 資格試験 25

OCJP Bronze SE 7/8 資格試験 1Z0-814: Java SE 7/8 Bronze 試験名 ( 試験番号 ): Java SE 7/8 Bronze (1Z0-814) 資格名 : Bronze Java SE 7/8 出題数 : 60 問 試験時間 : 65 分 合格ライン : 60% 試験開始日 : 2015 年 5 月 28 日 ( 木 ) 試験予約開始 : 2015 年 5 月 21 日 ( 木 ) 26

新試験 1Z0-814: Java SE 7/8 Bronze の真実 バージョンに依存する内容は出題しません Java SE 7 Bronze (1Z0-802) と同ーの試験問題 27

よくある質問と回答 OCJP Bronze SE 7/8 1Z0-802 と 1Z0-814 の違いはなんですか? 試験番号と試験名が異なるだけです 出題内容はもちろん 出題数や試験時間 合格ラインなどの試験仕様も変更はありません 試験対策本も 1Z0-802 用のものをそのまま使って大丈夫です オラクル認定資格教科書 Java プログラマ Bronze SE 7 ( 翔泳社 ) オラクル認定資格教科書 Java プログラマ Bronze SE7 スピードマスター問題集 ( 翔泳社 ) 徹底攻略 Java SE 7 Bronze 問題集 [1Z0-802] 対応 ( インプレスジャパン ) 1Z0-802 の受験予約をしてしまいました 1Z0-814 に変更した方がいいですか? いいえ 1Z0-802 試験合格者も OCJP Bronze SE 7/8 資格者として認定されますので そのまま 802 試験を受験しても大丈夫です 28

OCJP Silver SE 8 資格試験 1Z0-808: Java SE 8 Programmer 試験名 ( 試験番号 ): Java SE 8 Programmer (1Z0-808) 資格名 : Silver Java SE 8 出題数 : 77 問 試験時間 : 120 分 合格ライン : 65 % 日本語試験開始予定 : 2015 年 7 月上旬 29

1Z0-808: テスト内容チェックリスト (1) 1. Java の基本 変数のスコープを定義する Javaクラスの構造を定義する main() メソッドがある実行可能なJavaアプリケーションを作成する他のJavaパッケージをインポートしてコードでアクセスできるようにする 2. Java のデータ型の操作 変数を宣言および初期化するオブジェクト参照変数とプリミティブ変数を区別するオブジェクトのフィールドに対して読取りと書込みを行うオブジェクトのライフサイクルについて説明するオブジェクトのメソッドを呼び出す 3. 演算子と決定構造の使用 Java の演算子を使用する カッコを使用して演算子の優先順位を変更する == と equals() を使用して文字列と他のオブジェクトが等しいかどうかをテストする if および if/else 構造を作成する switch 文を使用する 4. 配列の作成と使用 1 次元配列を宣言 初期化 インスタンス化および使用する 多次元配列を宣言 初期化 インスタンス化および使用する 30

1Z0-808: テスト内容チェックリスト (2) 5. ループ構造の使用 while ループを作成および使用する 拡張 for ループを含む for ループを作成および使用する do/while ループを作成および使用する ループの構造を比較する break と continue を使用する 6. メソッドとカプセル化を操作する 引数と戻り値があるメソッドを作成する static キーワードをメソッドとフィールドに適用する オーバーロードメソッドを作成する デフォルトコンストラクタとユーザー定義のコンストラクタを区別する コンストラクタを作成および多重定義する アクセス修飾子を適用する カプセル化の原則をクラスに適用する 値を変更するメソッドに渡した場合のオブジェクト参照とプリミティブ値に対する影響を判断する 7. 継承の操作 継承を実装する ポリモフィズムの使用例を示すコードを開発する 参照の型とオブジェクトの型を区別する キャストが必要なタイミングを判断する super と this を使用してオブジェクトとコンストラクタにアクセスする 抽象クラスとインタフェースを使用する 8. 例外の処理 チェックされる例外 RuntimeException およびエラーを区別する try/catch ブロックを作成し 通常のプログラム フローが例外によってどのように変更されるかを判断する Java で使用される例外について説明する 例外をスローするメソッドを呼び出す 一般的な例外クラスとカテゴリを認識する 31

1Z0-808: テスト内容チェックリスト (3) 9. 基本的な Java API の使用 StringBuilder クラスおよびそのメソッドを使用してデータを操作する 文字列を作成および操作する Date and Time API を使用した日付の操作 ( java.time.localdatetime, java.time.localdate, java.time.localtime, java.time.format.datetimeformatter, java.time.period ) ArrayList を宣言および使用する Predicate を使用する基本的な Lambda 式を記述する 新トピックは 9. 基本的な Java API の使用 のみ文字列操作と ArrayList は Java SE 7 試験でも出題されていたので 新規は Date and Time API と Lambda の基礎だけ 32

1Z0-808: Java SE 8 Programmer I を先取り Date and Time API は何が聞かれる? One Point: 和暦 (java.time.chrono.japanesedate) の使い方も確認しておきましょう LocalDate クラスの使い方 オブジェクト生成のためのメソッドは次をチェック! now(), of(int year, int month, int dayofmonth), parse(charsquence text) of メソッド引数が取りうる値の範囲? month: 1-12 or 列挙型 Month, day: 1-28,29,30, 31 parse フォーマットは? "YYYY-MM-DD" 日付の加減算するメソッド 加算 : plusdays(long days), plusmonths(long months), plusweeks(long weeks), plusyears(long years) 減算 : minusdays(long days), minusmonths(long months), minusweeks(long weeks), minusyears(long years) DateTimeFormatter クラスの使い方 事前定義されたフォーマッタ ISO_LOCAL_DATE ('2011-12-03'), ISO_LOCAL_DATE_TIME ('2011-12-03T10:15:30') 無効な値を指定した場合はどうなるか? も確認しましょう 次のコードは同じ結果? LocalDate.now().plusMonths(-2); LocalDate.now().minusMonths(2); 33

1Z0-808: Java SE 8 Programmer I を先取り Lambda 式はどの程度問われる? List のデフォルトメソッド : replaceall (UnaryOparator<E> operator) removeif (Predicate<? super E> filter) *Collection インタフェースのデフォルトメソッド UnaryOperator や Predicate は関数型インタフェース = Lambda 式 OK! List<String> words = Arrays.asList("java", "day", "tokyo"); // Lambda 式 ( 省略なし ) words.replaceall((string t) -> {return t.tolowercase();} ); 引数アロー演算子処理本体 // Lambda 式 ( 省略あり ) words.replaceall( t -> t.tolowercase() ); One Point: デフォルトメソッドインタフェースに記述できる実装を持ったメソッドのこと キーワード default を指定する 実装クラスでオーバーライド可能 t のスコープを説明できますか? 34

こんな問題に注意! - その 1 例外はスローできる? 次のコードを正しく説明しているものはどれですか? ( 例外クラスは適切に import されているものとします ) 1. public void process() throws IOException, SQLException { 2. try { 3. // 例外が発生する処理 ; 4. } catch (Exception e) { 5. // 例外処理 6. throw e; 7. } 8. } 1. 6 行目でコンパイルエラーが発生する 2. 4 行目でコンパイルエラーが発生する 3. 1 行目でコンパイルエラーが発生する 4. コンパイルは正しく行われる

出題者の意図 - その 1 バージョンによる違いが理解できていますか? Java SE 7 以降では コンパイラによる例外オブジェクトの再 throw 時の型チェックが改善されています throws 節に指定されたクラスのスーパークラスも throw 可能 発生する例外の型を推論可能なので 複数の例外をまとめて処理できます Java SE 6 では 問題文のコードは 6 行目でコンパイルエラーです コンパイラの型チェックは意外とかしこい!! 1. public static void exec() throws IOException, SQLException { 2. try { 3. // 例外が発生する処理 ; 4. } catch (Exception e) { 5. // 例外処理 6. e = new Exception(); 7. throw e; 8. } 9. } catch した例外オブジェクトとは別の例外オブジェクトを throw するとコンパイルエラーになります!

こんな問題に注意 - その 2 Data and Time API を使った日付の加減算 次のコードの実行結果正しく説明しているものはどれですか? LocalDate date = LocalDate.parse("2015-04-08"); date.plusdays(2); date.minusmonths(-2); System.out.println(date); 1. 2015-04-08 2. 2015-06-10 3. 2015-05-10 4. 実行時例外が発生する 37

出題者の意図 - その 2 Date and Time API の日付は不変オブジェクト LocalDate クラスの parse メソッドの引数 第二引数がない場合 DateFormatter.ISO_LOCAL_DATE (= "YYYY-MM-DD") LocalDate クラスでの加減算 2015-4-8 だとフォーマットに合致しないので実行時例外になります LocalDate クラスは 日付 の演算のみ (Day, Week, Month, Year) 時間のみを扱う場合は LocalTime クラス 日付と時間は LocalDateTime クラス メソッド引数には負の値を指定しても OK date.minusmonths(-2); // 評価結果は 2015-06-08 One Point: LocalDate クラスのオブジェクトは不変 (Immutable) です 演算を行っても作成したオブジェクトの値は変わらない点に注意しましょう 38

こんな問題に注意! - その 3 Lambda 式に惑わされるな! 次のコードを確認してください List<Integer> even = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); even.removeif(i -> i % 2!= 0); System.out.println(even); このコードについて正しい説明はどれですか? 1. 246810 が出力される 2. 12345678910 が出力される 3. 実行時例外になる 4. コンパイルに失敗する 39

出題者の意図 - その 3 問われているのは Lambda 式の知識ではない!? 問題の Lambda 式には構文上の間違いはありません List<Integer> even = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); even.removeif(i -> i % 2!= 0); System.out.println(even); この問題で注目すべきは Arrays.asList(1, 2,..); このメソッドは固定サイズのリストを返すので add / clear / remove メソッドを呼び出すと実行時例外 (UnsupportedOperationException) が発生します コードを正しく動作させるためには以下のように修正します List<Integer> even = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)); 40

よくある質問と回答 OCJP Silver SE 8 これから資格をとるなら Java SE 8 資格と Java SE 7 資格のどちらがいいですか? これから学習を始めるのでしたら Java SE 8 資格をオススメします 最新技術をキャッチアップしていることを証明できたほうが差別化につながります 出題トピックが Java SE 7 資格試験と重複する部分は同じ傾向の問題が出題されます ただし 全く同じ問題が出題されるわけではありません Silver 試験で出題された Lambda 式や Data and Time API に関するトピックは Gold 試験では出題されませんか? いいえ Gold 試験でも出題されますので 今のうちにしっかり整理しておきましょう 41

42

43