はじめに
先日Java Silver (SE11)を取得したので、その時のノウハウを少し共有したいと思います。(合格体験記的なものではないです)
試験中に何を気を付けるか
Java Silverは結構というかかなり引っ掛けの問題が多いので、ボーっと解いていると簡単に点を落としてしまうと思います。そこで本記事では非常に簡単にではありますが、試験本番中に頭に片隅に入れておくことで3%くらい点数を伸ばせるかもしれないノウハウを紹介します。
(試験自体の学習が済んでいることを前提としているので、試験前日とかに確認するTips的なものとして捉えていただけると幸いです)
1. finalは初期化しないとエラー
finalの付いた変数は、初期化をしないとコンパイルエラーとなります。
特に気を付けたいのは、複数定義されているコンストラクタの中でfinalの変数が初期化されている問題です。一方のコンストラクタでは初期化されているのにもう一方では初期化されていない場合などがあるので、目を光らせておく必要があります。
例) 引数なしのコンストラクタではfinalの変数aが初期化されない
public class ClassA {
private final int a;
public ClassA(int a) {
this.a = a;
}
public ClassA() {}
}
2. Immutableなクラス
StringなどのImmutableなクラスのメソッドが記述されている場合、返り値を変数に代入しているかをよく確認することが重要です。基本的な要素ですが、本番中に緊張すると見落とす可能性も高まるので気を付ける必要があります。
3. 抽象メソッドが実装されているか
インターフェースや抽象クラスにおいて定義される抽象メソッドは継承先のどこかで実装される必要があります。継承・実装を2個以上挟む場合などに見落としやすくなりがちなので、この場合は特に気を付けた方がいいでしょう。
4. クラスのアクセス修飾子
問題をこなしているうちに、メソッドや変数のアクセス修飾子については、よく確認する癖が自然と付くと思います。一方でクラスのアクセス修飾子については、メソッドや変数ほど気を付けて見ないことが多いかもしれません(少なくとも自分はそうでした)。
クラスのアクセス修飾子が解答の分かれ目になる問題が出題される可能性もあるため、確認する意識を持つと良いと思います。
例) ClassAのアクセス修飾子がデフォルトなのでClassBからアクセスができない
package example.p1;
class ClassA {}
package example.p2;
import example.ClassA;
public class ClassB {
public static void main(String[] args) {
ClassA a = new ClassA();
}
}
5. 「進研ゼミでやったやつだ」で反射的に解答しないようにする
受験者の方は試験対策として模擬問題を解くことがあると思いますが、特に黒本の問題は質が良いため、本番でもかなり似たような問題を見かけることになるかと思います。その時に気を付けたいのが、反射的に「進研ゼミでやったやつだ」が発生して黒本での解答と同じような選択肢を選んでしまうことです。もちろんそれが結果的に正解となれば良いのですが、問題文によく目を通さずに解答してしまうのが一番怖いです。実際それで引っかかりかけた問題がありました。
したがって、よく知った(気がする)問題が出題されても油断しないことが大切だと感じます。
終わりに
最後まで読んでいただきありがとうございました。
今回はつまらないミスを減らすためのちょっとした考えを紹介させていただきました。本記事が皆様の助けとなれば幸いです。