エンタープライズ系では、Javaは依然として一番使われているプログラミング言語になっています。
その能力証明となるのが、Oracle Certified Java Programmer試験になっています。
Javaの提供元となっているオラクルが実施する試験ですので、信頼性の高い試験と言えます。
今回、Oracle Certified Java Programmer, Silver SE 8に合格しましたので、合格するための勉強方法などを書きたいと思います。
Java Silver SE 8とは
Java Silver SE 8は中級者向けの試験になっています。Bronzeだと少しかじった程度にしかならないので、履歴書などに書けるのはSilverからになるでしょう。
Java8というバージョンは明記されていますが、資格に有効期限はありませんので「このバージョンまではマスターしている」という能力の照明をすることができます。
Javaの基本的な構文だけでなく、Java8から出てきた新しい構文、代表的なAPIの仕様を抑えていないといけないので、勉強しないで合格することはなかなか困難です。
試験を受けるための前提
Java Silverを受験するにあたって、Bronzeに合格している必要はありませんので、いきなりJava Silverを受験しても大丈夫です。
一方でJava Silverは上級資格となっているJava Goldの前提科目となっています。Java Goldを受験したい場合は、Java Silverに合格していなければいけません。
勉強する方法
代表的な参考書が出ています。紫本と黒本です。
紫本はテキスト的な参考書になっています。まずはこの本を何周か読んで、ひととおり理解しましょう。
一度、概要を学んだほうが、暗記するにしても効率的です。
そのあとで、黒本を解いていきます。黒本は問題集となっています。
時間がない方は、巻末にある総仕上げ問題を解くだけでも効果はあるはずです。
申し込みのときに注意したほうがいいこと
試験の申し込み方法は下記にまとめました。
オラクルの試験は「再受験キャンペーン」というのがやっていることがあります。これは申込のときにクーポンコードを入力することで、再受験の試験料が無料になるというものです。
Java Silverの試験は24時間前までキャンセルすることが可能ですので、再受験のクーポンを使用し忘れた場合はキャンセルして再度申込をしましょう。
抑えておいたほうがいいこと
実務でJavaを使っているだけでは、エディターやコンパイラーの補助に頼ってしまうので、なかなか意識しないことや、この試験特有の傾向で抑えておいたほうがいいことがあるので書いておきます。
コンストラクタ
- super()とthis()は必ずコンストラクタの一番上で呼び出す。そうでないと、コンパイルエラーになる。
- super()とthis()は同時に呼び出すことはできない。
- クラスに一つもコンストラクタを定義していない場合は、コンパイル時にデフォルトコンストラクタが追加される。コンストラクタを一つでも定義した場合は、引数なしのコンストラクタは定義しないと使えない。
変数
- 情報量の少ない型の変数に、情報量の多い型の値を設定しようとすると、コンパイルエラーになる(intの変数にdoubleの値を設定するなど)。
- tryブロックの中で宣言された変数はtryブロックの中でのみ、有効である。
- lambda式の中で宣言された変数はlambda式の中でのみ、有効である。
配列
- 配列の要素は初期化されていない場合はnullが設定されている。
分岐
- switch文で使用できる値に注意する。boolean型は使用できない。数値もint型より情報量が少ない型(byte, shortなど)しか使用できない。これは高速化のため、そのような仕様になっている。
- if(hoge++)の場合は式が評価されてから、その値がインクリメントされる。
- 三項演算子では、値を返さない式は使えない。
比較
- ==は参照先が同じか比較する。
- equals()は値が同じか比較する。オブジェクトの場合はhashcodeが同じ値か比較する。
ループ
- 拡張for文はインデックスではなく、配列の要素を順番に取り出す。順番を変えて取り出すことはできない。
型変換
- long型からString型に変換するには、valueOfを使う必要がある。
メソッドの引数
- 基本データ型の場合は引数は値渡しになるので、引数で渡した変数の値は書き換えない
- 一方で、それ以外の型を引数に渡された場合は参照渡しになるので、引数で渡した変数の値が書き換えられる。
mainメソッド
- コマンド実行のときに引数で渡された値はString型として渡される。
- コマンド実行するときに呼ばれるmainメソッドは、必ずpublic static void main(String args[])でないといけない。
抽象クラス
- 具象メソッドか、抽象メソッド、staticメソッドをとることができる。抽象メソッドにはabstractをつけないといけない。
- 抽象クラスがインターフェースを実装する場合は、必ずしもすべてのメソッドを実装しなくてもよい。抽象クラスはインスタンス化されないから。ただし、その抽象クラスを継承したクラスはすべてのインターフェースのメソッドを実装する必要がある。
オーバーライド
- メソッドをオーバーライドした場合は、そのメソッドの可視性はスーパークラスのものよりも下げることはできない。
例外
- ErrorクラスとExceptionクラスはどちらも例外であるが違うクラスとなっている。Exceptionクラスを指定してErrorをcatchすることはできない。
- Errorクラス、およびRuntimeExceptionは非検査例外なので、catchで捕捉したり、throws宣言をつける必要はない。
- RuntimeException以外のExceptionは検査例外なのでcatchで補足するか、throws宣言をつけておかないといけない。
まとめ
Java SilverはJavaの中級者であることを証明できる資格となっています。有効期限がなく、世界的なベンダであるオラクルが実施しているので信頼性の高い資格となっています。
ぜひ受験して資格を取得しましょう!
コメント