Java Silver取得に向けて
はじめに
本稿ではこれからJava Silverを取得したいという方に、学習を進めていくうえで重要だと思われる設問を紹介していきます。
学習方法
・徹底攻略 Java Silver SE 11 問題集(黒本)
基本的にはこの問題集を解くことで試験対策を進めていきます。また苦手分野は下記の参考書で理解を深めながら学習を進めていくようにしていきます。
・Java Silver SE 11(紫本)
苦手範囲はこの参考書で改めて学習をし、問題集を解き進めていくようにしていましょう。こちらは黒本に比べ解説がより詳しく書いてあるのでオススメです。
章ごとの解説
ここからは実際に学習を進めていくうえで、黒本の章ごとに重要な設問、Java Bronzeとの相違点、Java11ならではの仕様を紹介していきます。
簡単なJavaプログラムの作成
この章で紹介したいトピックは2つあります。
ソースファイルモード
java Sample.java
皆さんは上記のコマンドに対して違和感を感じるでしょうか?元々Javaではソースファイルをjavacコマンドでコンパイルし、生成されたクラスファイルをjavaコマンドで実行することで起動していました。しかしJava11では新たに追加されたソースファイルモードにより上記のようなコマンドでも直接実行できるようになりました。
起動パラメータとエスケープ文字
java Sample a ¥” b¥” “c “d e
初めて上記のような起動パラメータを見た際はどこで区切ればよいか分かりづらいでしょう。上記のコンマドは「¥」がエスケープ文字として使われており、「¥」の一つ右側にある「”」は括弧としてではなく一つの文字として扱われています。よって上記の起動パラメータは「a」、「“」、「b”」、「c d」、「e」の五つとなります。
Javaの基本データ型と文字列操作
この章で紹介したいトピックは型推論についてです。
型推論var
Java10からの変更点の一つにローカル変数を宣言する際にvarを用いて型推論が使えるようになりました。C++のautoやC#のvarと同じようなものがJavaでも使えるようになりました。使い方のイメージとしては、右辺を見れば型が分かるのだからあえて左辺に書かなくてもよいだろうという考え方です。しかし基本型などは記載量も些細なものなのであえて型推論を使用しなくても良いでしょう。型推論の例を下記に記載します。
//基本型の場合
var num1 = 1; // int型
var num2 = 1L; // long型
var num3 = 1.0; // double型
var num4 = 1.0F; // float型
var char = 'a'; // char型
var flag = true; // boolean型
//オブジェクトの場合
var str = "Sample"; // String型
var list = new ArrayList<String>();
var fis = new FileInputStream(new File("/tmp/sample.txt"));
演算子と判定構造
この章ではJava Silver・Java11特有の考え方などは少なく、Java Bronzeレベルの知識がしっかりと身についていれば大丈夫です。新たな要素としてはequalsメソッドを使用した同値性の確認があります。
制御構造
この章もJava Bronzeレベルの知識がしっかりと身についていれば大丈夫です。間違いやすそうな設問としては拡張for文と2重ループを組み合わせたものがあります。
配列の操作
この章もJava Bronzeレベルの知識がしっかりと身についていれば大丈夫です。新たな要素としてはcloneメソッドによる配列のコピーがあります。
インスタンスとメソッド
この章もJava Bronzeレベルの知識がしっかりと身についていれば大丈夫です。
クラスの継承、インターフェース、抽象クラス
この章ではJava Bronzeと同様に用語に関する説明を問われる設問も多くあるのでそこで確実に点を取りましょう。
関数型インターフェース、ラムダ式
ラムダ式や関数型インターフェース(Consumer、Supplier、Predicate、Function)などは全て初見の方が多いと思いますので、まずは紫本で理解するとこから始めるのがオススメです。ある程度理解したところで問題集を使って本当に理解しているかを確認しながら学習を進めましょう。
例外処理
例外処理はJava Bronzeにはなかった分野なので丁寧に学習をしましょう。紫本で基本のtry-catch-finally文や例外クラスを学習し、問題集で数をこなすことを意識することが大切です。
モジュールシステム
モジュールシステムもJava Bronzeにはなかった分野なので丁寧に学習をしましょう。モジュールの学習の方法としては文字だけで理解するのではなく、図に書き起こすなどしながら学習を進めると理解しやすいです。
まとめ
Java Bronzeの試験が60問65分に対して、Java SIlverは80問180分とボリュームにかなり差があります。最初この試験概要を見ただけで難しいのではと重わるかも知れませんが、学習を進めていけば、Java Bronzeでの学習範囲が多数を占めていることが分かると思いますので、身構える必要はありません。本稿がJava Silverをこれから受けようとしている方のお役に立てれば幸いです。最後まで読んでいただきありがとうございます。