LoginSignup
4

More than 3 years have passed since last update.

Java SE 8 Silverに受かったので色々紹介

Last updated at Posted at 2019-03-29

初めての投稿なのでこちらの書き方を少し真似てます

結果

まずは試験結果

  • 得点率 91%

中2にしてはそこそこ良い方だと思います(多分)

難易度

基本的なことを奥底まで理解できているかを問う問題が多い印象がありました。なので、まだJavaの基本構文やオブジェクト思考、ラムダ式の基本的な使い方を理解していない様であればドットインストールを取り敢えず一通り終えるといいと思います。

使った教材

勉強方法

解く毎に、[間違えた,偶然合った,迷った]のどれかに該当すればその問題に印をつける。

  • 取り敢えず登校時の電車での移動時間などの隙間時間を利用して1周目(正答率45%くらい)
  • 1周目に間違えたものをやり直す
  • 2周目をする(正答率70%くらい)
  • 2周目に間違えたものをやり直す
  • 印が付いた問題を重点的に最終確認を行う(解説の中で重要な所が所々あるので、そこも合わせて読んでおく。例えばswitch文に入れる事が出来る型の一覧や正規表現の表など)

以上

試験中に意識していたこと

自分が常に意識していたことをまとめておきます。

  • プログラムの実行順序を落ち着いて確認する
  • エントリーポイントがpublic static void main(String[] args){}になっているか
  • アクセスしているフィールドやメソッドの修飾子を確認する
  • そのオブジェクトの参照先がどこにあるのか
  • 到達不可能なコードがないか
  • NullPointerExceptionが発生しないか
  • 多様性、キャストを正しく実行できるか
  • 不変オブジェクトかどうか
  • コンストラクタを正しく実行できるか

試験時間

試験時間は2時間30分で77問なのでかなり余裕があります(自分は1時間で終わりました)。なので、時間に関しては気にせず、ミス無くじっくりと解けば良いと思います。

例題

本の中で印象に残っている問題はこんな感じの問題

Main.java
public class Main {
    public static void main(String[] args){
        int i=0;
        while(i++<1) {
            ++i;
        }
        System.out.println(i);
    }
}

何が表示されるか
答え:3
もし0と答えた人は引っかかってます。i++<1かの判断時にi=i+1されてます。
もし1と答えた人は後置インクリメントを理解しましょう。説明はこちら
もし2と答えた人はいい線いってます。自分も最初はこうでした。最初はi++<1の時にi=i+1になっていることに気付けているんですが、while内の処理を終えた後もう一度i++<1の判断をしているのでこちらもi=i+1されて、i=3になっています。最後まで油断禁物。

レベル的に難しい問題

Main.java
public class Main{
    public static void main(String[] args){
        Sample s=new SubSample();
        s.test("Hello");
    }
}

interface Sample {
    void test(String s);
}

class SubSample implements Sample{
    void test(String s) {
        System.out.println(s+"!");
    }
}

実行すると、、、

A:Hello!と表示される
B:Mainクラスでコンパイルエラーが発生する
C:Sampleインターフェースでコンパイルエラーが発生する
D:SubSampleクラスでコンパイルエラーが発生する
E:実行時に例外が発生する

答え
答え:D
もしAと答えた人はインターフェースの詳しい仕様を理解しましょう。自分も最初はこれを選んでました。クラスは継承時にメソッドをオーバーライドする時、メソッドの修飾子はスーパークラスのメソッドの修飾子よりも厳しくする事が出来ません。また、インターフェースのメソッドは修飾子が無いと勝手にpublicが付いた状態になります。それを踏まえるとSampleインターフェースではtestメソッドの修飾子がpublicなのに、それを実装しているSubSampleクラスではtestメソッドの修飾子が無しとなり、より修飾子が厳しくなっているのでコンパイルエラーが発生します。
もしBを選んだ人は多様性について理解しましょう。説明はこちら
もしCを選んだ人はインターフェースを理解しましょう。説明はこちら
もしEを選んだ人はコンパイルエラーなのか例外なのかをしっかりと区別できる様にしておきましょう。例外はカツ丼にケチャップをかけて食べるイメージで(見た目では美味いか不味いか分からないが、食べてみると不味かった)コンパイルエラーはカツ丼にお酢をぶっかけて食べるイメージ(見た目からして不味いのが分かる)。余計分かりにくくなった人はすみません(笑)

ここまで全問不正解の人も安心して下さい。こんな感じの問題が出てくるときもあれば、単純に基本構文を理解しているかを聞いてくるときもあります。この様な問題も黒本にすべて載っているので黒本を解説含めてしっかりと理解すればいずれは正解出来る様になります。

申し込み

こちらを見て申し込みをしました。CertViewは自分は直後に行っても問題ありませんでした。試験結果は速攻で返ってきます。会場を出てトイレ行っている間に返ってきました。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4