以下に「Javaの基本」について、Java Bronze試験を想定した問題と解答解説を記載します。
問題1: Javaプログラムの基本構造
以下のコードについて正しい説明を選んでください。
public class Example {
public static void main(String[] args) {
System.out.println("Hello, Java!");
}
}選択肢:
- このプログラムはエラーが発生する。
- プログラムを実行すると
"Hello, Java!"が画面に出力される。 - main メソッドの引数
String[] argsは必須ではない。 Systemはローカル変数である。
解答と解説
解答: 2
解答解説:
- 選択肢1: 誤り。このプログラムは構文的にも正しく、エラーは発生しません。
- 選択肢2: 正解。
System.out.printlnによって"Hello, Java!"が標準出力に表示されます。 - 選択肢3: 誤り。
String[] argsはmainメソッドの標準シグネチャであり、エントリーポイントとして必須です。 - 選択肢4: 誤り。
SystemはJava標準ライブラリのクラスであり、ローカル変数ではありません。
問題2: JVMの特徴
Javaプログラムの実行におけるJVMの役割として適切でないものを選んでください。
選択肢:
- JVMはJavaプログラムをコンパイルしてバイトコードに変換する。
- JVMはバイトコードを各OSで実行可能な形式に変換する。
- JVMによって異なるOS間でJavaプログラムを実行できる。
- JVMは
Write once, run anywhereを実現する要素である。
解答と解説
解答: 1
解答解説:
- 選択肢1: 正解。バイトコードへの変換を行うのは Javaコンパイラ(javac) であり、JVMの役割ではありません。
- 選択肢2: 正しい。JVMはバイトコードを解釈し、各OSで動作可能な形式に変換します。
- 選択肢3: 正しい。JVMは異なるOSでJavaプログラムを動作させる基盤を提供します。
- 選択肢4: 正しい。"Write once, run anywhere" を実現する中心的な役割を果たすのがJVMです。
問題3: オブジェクト指向
以下のコードについて、正しい説明を選びなさい。
public class Employee {
String name;
int id;
public void displayDetails() {
System.out.println("Name: " + name + ", ID: " + id);
}
}
選択肢:
Employeeクラスはフィールドを持つが、メソッドは持たない。nameとidはローカル変数である。displayDetailsメソッドを呼び出すにはEmployeeクラスのインスタンスが必要である。displayDetailsメソッドは戻り値が必要である。
解答と解説
解答: 3
解答解説:
- 選択肢1: 誤り。
EmployeeクラスはdisplayDetailsというメソッドを持っています。 - 選択肢2: 誤り。
nameとidはクラスのフィールド(メンバ変数)であり、ローカル変数ではありません。 - 選択肢3: 正解。
displayDetailsはインスタンスメソッドなので、インスタンスを生成して呼び出す必要があります。 - 選択肢4: 誤り。このメソッドは戻り値を持たないため、
voidと宣言されています。
問題4: Javaと他言語の比較
次のうち、C言語とJavaの違いに関する正しい説明はどれですか?
選択肢:
- Javaは手続き型プログラミング言語である。
- C言語はJVMを使用してプログラムを実行する。
- Javaはメモリ管理をガベージコレクションで行う。
- C言語はオブジェクト指向プログラミングをサポートする。
解答と解説
解答: 3
解答解説:
- 選択肢1: 誤り。Javaはオブジェクト指向プログラミング言語であり、手続き型ではありません。
- 選択肢2: 誤り。C言語はコンパイルされたマシンコードを直接実行し、JVMは使用しません。
- 選択肢3: 正解。Javaはガベージコレクタによって不要なメモリを自動的に解放します。
- 選択肢4: 誤り。C言語は手続き型言語であり、オブジェクト指向をサポートしていません。
問題5: エラーの種類
次のJavaプログラムをコンパイルすると発生するエラーの種類は何ですか?
public class Test {
public static void main(String[] args) {
System.out.println("Hello World")
}
}
選択肢:
- 実行時エラー (Runtime error)
- 文法エラー (Syntax error)
- 論理エラー (Logic error)
- エラーは発生しない。
解答と解説
解答: 2
解答解説:
- 選択肢1: 誤り。このプログラムはコンパイル段階でエラーになるため、実行時エラーは発生しません。
- 選択肢2: 正解。このプログラムには文末のセミコロン(
;)が欠けており、コンパイル時に文法エラーが検出されます。 - 選択肢3: 誤り。論理エラーは実行結果が意図したものと異なる場合を指しますが、このプログラムはコンパイルすら通りません。
- 選択肢4: 誤り。セミコロンが欠如しているためエラーが発生します。