以前、オラクル認定試験のJava Silverを受験した記事を書きました。
元々、Silverよりも上位の資格であるJava Goldを受けたくてSilver試験を受験しました。
その数週間後にJava Goldを受験して無事に合格しましたので、合格するための勉強方法やコツなどを書きたいと思います。
Java Gold SE 8とは
Java Gold SE 8はOracle Certified Java Programmer試験の中では、今のところ最上位の資格となっています。履歴書上でもアピールになるでしょう。
ただし、実際のところは問題の難易度がSilverよりも高いわけではありません。Silverと難易度が同じだが出題される範囲が広い、といった表現が適切かもしれません。そのため、Silverまで取得したならば、臆せずGoldまで取っておいたほうがいいと思います。
資格に有効期限はないのですが、新しいバージョンのJavaが出た場合にはおそらく新しいバージョンに対応した資格が出ると思われます。その場合に受け直すことで新しいバージョンのGold資格を取れるはずなのですが、新しいバージョンがでるたびにメンテナンスするならばSilverよりもGoldにしておいたほうが費用対効果は高いと思われます。
試験を受けるための前提
試験自体は無条件で受けられるようなのですが、Silverに合格していないとGold資格は認定されません。
ただし、試験日の何週間前までに持っていけない、といったルールは特にないようなので、短期間で連続してSilverとGoldを受けることも可能です。
勉強する方法
Java Silverと同様に紫本と黒本が代表的な参考書となっています。
紫本はテキスト的な参考書になっています。まずはこの本を何周か読んで、ひととおり理解しましょう。
そのあとで、黒本を解いていきます。黒本は問題集となっています。
申し込みのときに注意したほうがいいこと
試験の申し込み方法は下記にまとめました。
オラクルの試験は「再受験キャンペーン」というのがやっていることがあります。これは申込のときにクーポンコードを入力することで、再受験の試験料が無料になるというものです。
Java Goldの試験は24時間前までキャンセルすることが可能ですので、再受験のクーポンを使用し忘れた場合はキャンセルして再度申込をしましょう。
抑えておいたほうがいいこと
実務でJavaを使っているだけでは、エディターやコンパイラーの補助に頼ってしまうので、なかなか意識しないことや、この試験特有の傾向で抑えておいたほうがいいことがあるので書いておきます。
コンストラクタ
- クラスでコンストラクタを何も定義していない場合は、暗黙的に引数なしコンストラクタがつくられる。一つでもコンストラクタを定義していると、このルールはあてはまらない。
- スーパークラスのコンストラクタを明示的に呼ばない場合、自動的にスーパークラスの引数なしコンストラクタが呼ばれる。
抽象クラス
- 抽象クラスのメソッドは具象メソッドにして実装するか、abstractをつけて抽象メソッドにしないといけない。
- 継承するときに、メソッドの可視性を下げようとするとコンパイルエラーが発生する。
内部クラス
- メソッドの中にpublic クラスを定義することはできない。
- staticクラスから外のインスタンス変数をアクセスすることはできない。
インターフェース
- 実装するときに、インターフェースのメソッドの可視性を下げようとするとエラーになる。
- インターフェースのメソッドは抽象メソッドなので本来はabstractをつけるべきだが、つけなくてもよい。
- 2つのインターフェースで同じ名前のメソッドを実装していたとしても、その2つのインターフェースを2つとも実装することができる。
- Lambda式として扱えるのは、抽象メソッドを一つだけ持つインターフェース。
- インターフェースは、匿名クラスでnewすることで実装したことになる。
ロケール
- ロケールが適用される順番は、言語と国が一致している、言語が一致している、デフォルトの順番。
アサーション
- プログラムを実行するときに-eaオプションをつけないと、有効にはならない。
ソート
- sorted()メソッドでソートされる場合にはComparableを実装したオブジェクトのリストを渡すか、あるいは第二引数にComparatorを実装したオブジェクトを渡す。
- Comparableを実装する場合は、compareTo()を実装しないといけない。
- Comparatorを実装する場合は、compare()を実装しないといけない。戻り値はint型。
- comparing()メソッドを使うことで、どの要素を比較すればいいのか指定するだけで比較してくれる。
リソース
- try-with-resourceでクローズすることができるのは、AutoClosable、あるいはClosableを実装したクラス。
- try-with-resourceの形にしてtryを抜けたあとでリソースにアクセスすると、すでにクローズされた状態になのでエラーになる。
- try-with-resourceで複数のリソースを扱った場合、最初に宣言したリソースが最後にクローズされる。
データベース
- JDBCドライバをロードするのは、ClassForNameを使用する。
- executeQuery()をしたら、必ずrs.next()をしないと値を取ることはできない。
- データベースを更新するときには、insertRow()やupdateRow()などのメソッドを呼ばないと更新はされない。
- execute()は、取得できる行がない場合はfalseになる。つまり、SELECT文以外はfalseが返ってくる。
ストリーム
- ストリーム処理は中間処理と終端処理で構成されていた場合、全ての要素に対して中間処理を実施してから終端処理を実施するのではない。一つの要素に対して中間処理と終端処理を実施してから次の要素を処理する。多重forループをイメージするとよい。
- Parallel streamの場合はreduce()の初期値はそれぞれのstreamに対して適用される。普通のstreamの場合は、1回適用されるだけになる。
- 最後が中間処理で終わっている場合は何も出力がされない。
例外
- try-finally節の中で例外が発生した場合はfinally節をコールしてからメソッドを抜ける。
まとめ
Oracle Certified Java Programmer, Java SE 8はJavaの最上位の資格になっています。業務で使うことが多い場合は取得しておくとアピールになると思いますし、難しいわけではないのでぜひチャレンジしてみましょう!
コメント