Java初心者の私がJava Programmer Bronze SE 7/8 (1Z0-814)の過去問で間違えたところをまとめていきます。
間違えた過去問その1<重要度★★★>
◆問題
次のコードに関して、2行目にどのコードを挿入すれば、正常に実行できるかでしょうか?2つ答えよ。
public class Welcome { // insert code here System.out.println("Welcome to Java"); } }
A. public void main(String[] args) {
B. public static void main(String args) {
C. public static void main(String] args) {
D. static public void main(String] args) I
E. static void main(String args) {
◆解答
C.D
◆解説
Javaアプリケーションを実行するためには、mainメソッドが必要です。このメソッドはJVMによって呼び出され、アプリケーションの処理を開始します。JVMはjavaコマンドで実行する際に、指定されたクラスをロードし、そのクラス内に定義されたmainメソッドを探して実行します。つまり、mainメソッドはJavaアプリケーションのエントリーポイントであり、処理の開始地点となります。
Javaアプリケーションには必ず1つのmainメソッドが定義されている必要があり、以下のように宣言する必要があります。
public static void main(String[I args) {
//処理
}
選択肢Cは、main()メソッドとして必要な条件を満たしているため、正解です。
選択肢Dは、選択肢Cと比較すると、static修飾子とpublic修飾子の順序が入れ替わっていますが、修飾子の順序はどちらでも指定可能です。したがって、正解です。
間違えた過去問その2<重要度★★☆>
◆問題
次のコードを確認してください。
class Test { public static void Main(String args []) { System.out.println (10); } }
このコードをコンパイルおよび実行すると、どのような結果になりますか。1つ選択してください。
A. 10
B. 1行目でコンパイルエラーが発生する
C. 2行目でコンパイルエラーが発生する
D. コンパイルは成功するが、実行はできない
◆解答
D
◆解説
Javaプログラムにおいて、main()メソッドは重要な役割を持っていますが、メソッド名の指定には厳密なルールがあります。例えば、Testクラス内に「Main」メソッドを定義している場合、メソッド名が正しい「main」ではなく、先頭文字が大文字の「Main」となっています。この場合、Javaは大文字と小文字を区別するため、コンパイルは成功しますが、実行時にはJVMが呼び出すmain()メソッドの定義が見つからず、プログラムを実行できません。したがって、このプログラムを正常に実行するためには、main()メソッドの定義を正しい形式で記述する必要があります。
したがって、選択肢Dが正解です。
間違えた過去問その3<重要度★★☆>
◆問題
Javaプログラムの実行環境を表す用語として適切なものはどれですか。1つ選択してください。
A. JRE
B. JDK
C. JVM
D. JRK
◆解答
A
◆解説
Javaプログラムの実行に必要な環境はJREと呼ばれ、OSに依存しない実行環境を提供します。JREには、Javaプログラムを実行するために必要なソフトウェアが含まれており、Javaプログラムを実行する際には、JREをインストールしておく必要があります。JREは、各OSの違いを吸収することができるため、「Write Once, Run Anywhere」というJavaの特徴を実現しています。これは、Javaプログラムを開発した場合、OSの違いによってプログラムの修正や再コンパイルが必要なく、同じプログラムを様々なOSで実行できるということを意味します。
以下に、JDK、JRE、JVMのそれぞれの役割と違いを示します。
JDK (Java Development Kit) | JRE (Java Runtime Environment) | JVM (Java Virtual Machine) | |
定義 | Javaの開発ツール群 | Javaプログラムの実行環境 | Javaバイトコードを実行するエンジン |
機能 | Javaアプリケーションの開発、コンパイル、デバッグ | Javaアプリケーションの実行 | Javaバイトコードをマシン語に変換して実行 |
内容 | JRE + Java開発ツール群 | Javaクラスライブラリ + JVM | JVM |
役割 | Javaアプリケーションの開発環境を提供 | Javaプログラムの実行環境を提供 | Javaバイトコードを実行するエンジンとして機能 |
必要なもの | なし | JRE | JRE |
インストール | 必要 | 一般的には必要 | 不要 |
バージョン管理 | JDKのバージョンによって異なる | JREのバージョンによって異なる | JVMのバージョンによって異なる |
上記から、Javaプログラムの実行環境を表す用語は選択肢AのJREになります。
まとめ
今後も過去問で躓いた箇所をいつでも見返して復習できるようにまとめていきます。
コメント