はじめに
こんにちは。普段のお仕事ではJavaに携わっています。SilverはSE 11を2023年に取得済みで、今回Gold SE 17の合格を目指しました。
受験のきっかけ&目的
業務でラムダ式やStreamをよく使用するので理解を深めるきっかけになればと思いました。また資格手当があるため受けようと思いました。
受験時の環境・能力
- Java歴:通算で3年半、システム開発業務に関わってからは1年ほどです。
- 他資格:Java Silver SE 11を2023年10月に取得しました。
試験概要
- 試験番号・名称:1Z0-826-JPN
- 問題数:60問
- 制限時間:90分
- 合格ライン:65%
詳細はJava SE 17 Programmer II (1Z0-826-JPN) 試験
学習期間
受験する半年くらいからぼんやり始めました。
集中的に勉強したのは1ヶ月前からです。
学習方法
- Java Gold SE 11の黒本を3周、紫本を2周解く
- 公式ドキュメントを読む
- ChatGPTなどのAIに質問する
- 実際にコードを動かす
特にモジュール・システムの範囲はAIに質問してかなり理解が深まりました。
SE 17の問題集はないので、SE 11の問題集を解きました。何回も解いて自信をつけたのもよかったと思います。
公式ドキュメントはもう少し読んで、もっとメソッドを把握しておけばよかったと思いました。
Gold SE 17に関して実際に受験した記事が少なく不安だったのですが、Sawaブログさんを参考にさせていただきました。
試験結果
正答率 70%で合格しました。
問題傾向と感想
体感では黒本や紫本より難易度の高い問題が出題される印象でした。
例えばストリームAPIの範囲だとdropWhile
メソッドの問題がありました。また、問題集よりコードの複雑さや読む量が増えているような気がしました。時間配分は見直しを含めて時間いっぱい使いました。
以下は印象に残った範囲です。
ストリーム API
Streamの問題でrecordクラスが出てきました。
// イメージです
record Order(String food, int quantity) {}
public class FilterFoodOrderExample {
public static void main(String[] args) {
List<Order> orders = List.of(
new Order("Pizza", 2),
new Order("Burger", 3),
new Order("Pasta", 1),
new Order("Sushi", 5)
);
List<Order> largeOrders = orders.stream()
.filter(o -> o.quantity >= 3)
.collect(Collectors.toList());
}
}
私はSilverを受けた時はSE11だったので、recordクラスについてはYou Tubeの黒本著者が教える やさしくない!? Javaなどを拝見しました。ほかにswitch式なども解説を拝見しましたがSilver SE 17の範囲はrecordクラスを押さえていれば何とかなる気がしました。recordクラスを作成したときに自動生成されるメソッドは覚えておいた方がいいです。
黒本・紫本の練習問題にない少しマイナーと思われるメソッドの問題も出題されました。
// イメージです
public class DropWhileExample {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(2, 4, 6, 7, 8, 10, 12);
List<Integer> result = numbers.stream()
.dropWhile(n -> n % 2 == 0) // 偶数をスキップ
.collect(Collectors.toList());
System.out.println(result); // [7, 8, 10, 12]
}
}
解説をするとdropWhile
は少し不思議な挙動をします。条件に当てはまるまで処理をスキップするので、7以降が取得できます。
練習問題になかったとはいえ公式ドキュメントには載っているので、そちらの方をもっと見ておけばよかったと思いました。
Java モジュール・システム
モジュール・システムの出題数が思った以上に多かったです。難易度は問題集と変わらないと思ったのでしっかり理解していれば大丈夫だと思います。この範囲は生成AIに質問しながらの勉強が捗りました。
コマンドとそのオプションは覚えておいた方がいいです。
並列処理
Treadのjoin
メソッドを使用した問題が複数問出題されました。こちらも公式ドキュメントをもっと読んでおけばよかったです。
おわりに
Java Gold SE 17に関する体験記が少なかったため執筆しました。どなたかの参考になれば幸いです。
SE 17の参考本はありませんが、しっかり勉強しておけば合格できると思います。これから受験する皆さんがんばってください!