ぺんぎんらぼ

お笑いとマンガ好きなしょぼしょぼWeb系エンジニアの日記です

*

オラクルの Java SE8 Silver を受験してきました

      2016/04/20

Java8

せんじつ会社命令でJava SE8 Silverを受験し、無事合格してきました。
得点率が87%だったので、全77問中11問くらい間違えた感じです。
けっこう間違えてますね・・・。

1年前にSE7 Silverを取得していたこともあって、
試験勉強としては前日に志賀澄人先生の『徹底攻略 Java SE 8 Silver 問題集[1Z0-808]対応』(黒本)を買って、
第10章と第11章の「総仕上げ問題」 だけ解いて、あとは全体をパラパラ眺めました。
本番ではこの「総仕上げ問題」とかなり似た問題が出たので、
やっておいてよかったと思いました。

試験範囲にSE8の新しいAPIや構文、
「LocalDate/LocalDateTimeのAPI」とか「ラムダ」とかが追加されましたが、
実際の出題率は、LocalDate系が3問、ラムダは1問、でした。

LocalDate/LocalDateTimeは、
・DateTimeFormatter
・実行時例外
・オブジェクトのImmutable性
の理解について問う問題でした。

このうちひっかかりやすいのはImmutable性の問題と思います。

答えはAの「2015-02-01が出力される」です。
7行目や8行目で
date = date.plusDays(30);
date = date.plusMonths(1);
というように、それぞれの結果返ってきたオブジェクトを、
変数dateに設定しなおしていれば回答はCですが、
そうはしていないので、2015年2月1日の情報をもったLocaldateオブジェクトの内容がそのまま出力されます。

ラムダの問題は確かこんな感じだったと思います。

答えはAの「Hi removedが出力」です。

11行目の「(String s) -> {return s.length() <= 2;})」を、
removeIfメソッドの引数として渡しています。
removeIfメソッドは引数にPredicate型のラムダ式を受け取り、
実装された条件式がtrueを戻せばコレクションの要素を削除します。
さらにremoveIfメソッドは削除処理を実行したとき、tureを戻り値でかえしますので、
実行時には「Hi removedが出力」されます。

ラムダ式に関する丁寧な解説も黒本に載っているので、
SE7を持っている人は差分だけ勉強、
初めてSilverを受験する人でも黒本をしっかりやれば、合格できると思います。

 - Java, お仕事