- 宣言、初期化、スコープ
以下のコードがあります。7行目に挿入するコードとしてふさわしいものはどれですか?
1. class Food {
2. enum Fruits {
3. Banana, Apple, Lemon, Orange, Peach
4. }
5.
6. public static void main(String args[]) {
7. //ここに処理を挿入
8. System.out.println(f);
9. }
10. }
- Food f = Food.Banana;
- Fruits f = Fruits.Apple;
- enum f = Fruits.Peach;
- Food f = new Fruits();
- Fruits f = Fruits(Orange);
- フロー制御
以下のようなコードがあります。
1. class Test{
2. public static void main(String args[]){
3. for( int x = 3; x > 0 ; x-- ){
4. switch( x - 1 ){
5. 0: System.out.print("1 ");
6. 1: System.out.print("2 ");
7. 2: System.out.print("3 ");
8. 3: System.out.print("4 ");
9. }
10. }
11. }
12. }
実行結果として正しいものはどれですか?
- 3 2 1
- 4 3 2 1
- 3 4 2 3 4 1 2 3 4
- 何も出力されない
- コンパイルエラーになる
- 実行時に例外が発生する
- APIコンテンツ
以下のようなコードがあります。
1. class Exam {
2. public static void main(String args[]) {
3. // ここにコードを挿入
4. }
5. }
3 行目に挿入するコードとして、ふさわしいものはどれですか?
- System.out.printf("number is %d\n" , Math.PI);
- System.out.printf("number is %f\n" , Math.PI);
- System.out.printf("number is %x\n" , Math.PI);
- System.out.printf("number is %d\n" + Math.PI);
- System.out.printf("number is %f\n" + Math.PI);
- System.out.printf("number is %x\n" + Math.PI);
- 並行性
現在実行中のスレッドが実行待ち状態になる原因として考えられるものはどれですか。
- synchronized ブロックの処理を終了したとき;
- スレッドが interrupt() メソッドを呼び出したとき;
- スレッドが notify() メソッドを呼び出したとき;
- スレッドが notifyAll() メソッドを呼び出したとき;
- スレッドが wait() メソッドを呼び出したとき;
- オブジェクト指向コンセプト
以下のようなコードがあります。このコードにおいてクラス A とクラス B の関係の説明としてふさわしいものはどれですか?
10. class A { }
11. class B {
12. private A obj = new A();
13. }
- クラス B はクラス A と関係を持たない。
- クラス B はクラス A と1対多の関係を持つ。
- クラス B はクラス A と多対多の関係を持つ。
- クラス A とクラス B の関係は、"has-a" 関係である。
- クラス A とクラス B の関係は、"is-a" 関係である。
- コレクション/ジェネリックス
以下のようなコードがあります。
10. import java.util.*;
11. public class Gen {
12. public static void main(String [] args) {
13. // ここにコードを挿入
14. list.add("south");
15. list.add("north");
16. list.add("west");
17. list.add("east");
18. // ここにコードを挿入
19. }
20. }
このコードが正しくコンパイル、実行できるようにするためには、どのコードを 13 行目と 18 行目に挿入すればよいですか?
- 13. List(String) list = new ArrayList();
18. for(String str : list) System.out.print(str + " ");
- 13. List list = new ArrayList();
18. for(String str : list) System.out.print(str + " ");
- 13. List list = new ArrayList();
18. for(String str : list) System.out.print(str + " ");
- 13. List list = new List();
18. for(String str : list) System.out.print(str + " ");
- 13. List list = new ArrayList();
18. for(String str ; list) System.out.print(str + " ");
解説:
C が正解です。A は、13 行目のList(String) が不正な記述であるため、誤りです。B は、13 行目の型パラメータの記述が誤っています。目的の型名を指定する必要があります。D は、13 行目でList インタフェースをインスタンス化しようとしてるため、誤りです。E は、18 行目の拡張 for の記述で変数宣言とリストとの区切りが ; になっているため誤りです。
- Java言語の基礎
以下のようなコードがあります。
1. class Exam {
2. public static void main(String args[]) {
3. System.out.println(args[0]);
4. }
5. }
また、コマンドラインで以下のように java コマンドを実行するとします。
java Exam Foo
実行結果はどれですか?
- 問題なく実行されるが何も出力されない
- java という値が出力される
- Exam という値が出力される
- Foo という値が出力される
- 実行時に例外が発生する
解説:
D が正解です。実行時にコマンドライン上でクラスファイル名の後に指定した値は main()メソッドの引数に渡されます。ここでは、クラス名 Exam の次に指定した Foo が args[0] に渡されるため、Foo が出力されます。