【SJC-P】Sun認定 Javaプログラマ 例題

 Sun Certified Programmer for the Java 2 Platform 5.0
概要 | お申込方法 | 認定証 | FAQ
Sun Certified Programmer for the Java 2 Platform5.0 試験 (試験番号 310-055) では、次のような問題が出題されます。
  1. 宣言、初期化、スコープ
  2. 以下のコードがあります。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. }
    

    1. Food f = Food.Banana;
    2. Fruits f = Fruits.Apple;
    3. enum f = Fruits.Peach;
    4. Food f = new Fruits();
    5. Fruits f = Fruits(Orange);

  3. フロー制御
  4. 以下のようなコードがあります。

     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. }
    

    実行結果として正しいものはどれですか?

    1. 3 2 1
    2. 4 3 2 1
    3. 3 4 2 3 4 1 2 3 4
    4. 何も出力されない
    5. コンパイルエラーになる
    6. 実行時に例外が発生する

  5. APIコンテンツ
  6. 以下のようなコードがあります。

     1. class Exam {
     2.   public static void main(String args[]) {
     3.     // ここにコードを挿入
     4.   }
     5. }
    

    3 行目に挿入するコードとして、ふさわしいものはどれですか?

    1. System.out.printf("number is %d\n" , Math.PI);
    2. System.out.printf("number is %f\n" , Math.PI);
    3. System.out.printf("number is %x\n" , Math.PI);
    4. System.out.printf("number is %d\n" + Math.PI);
    5. System.out.printf("number is %f\n" + Math.PI);
    6. System.out.printf("number is %x\n" + Math.PI);

  7. 並行性
  8. 現在実行中のスレッドが実行待ち状態になる原因として考えられるものはどれですか。

    1. synchronized ブロックの処理を終了したとき;
    2. スレッドが interrupt() メソッドを呼び出したとき;
    3. スレッドが notify() メソッドを呼び出したとき;
    4. スレッドが notifyAll() メソッドを呼び出したとき;
    5. スレッドが wait() メソッドを呼び出したとき;

  9. オブジェクト指向コンセプト
  10. 以下のようなコードがあります。このコードにおいてクラス A とクラス B の関係の説明としてふさわしいものはどれですか?

    10. class A { }
    11. class B { 
    12.   private A obj = new A();
    13. }
    

    1. クラス B はクラス A と関係を持たない。
    2. クラス B はクラス A と1対多の関係を持つ。
    3. クラス B はクラス A と多対多の関係を持つ。
    4. クラス A とクラス B の関係は、"has-a" 関係である。
    5. クラス A とクラス B の関係は、"is-a" 関係である。

  11. コレクション/ジェネリックス
  12. 以下のようなコードがあります。

    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 行目に挿入すればよいですか?

    1. 13. List(String) list = new ArrayList(); 18. for(String str : list) System.out.print(str + " ");
    2. 13. List<E> list = new ArrayList<E>(); 18. for(String str : list) System.out.print(str + " ");
    3. 13. List<String> list = new ArrayList<String>(); 18. for(String str : list) System.out.print(str + " ");
    4. 13. List<String> list = new List<String>(); 18. for(String str : list) System.out.print(str + " ");
    5. 13. List<String> list = new ArrayList<String>(); 18. for(String str ; list) System.out.print(str + " ");

  13. Java言語の基礎
  14. 以下のようなコードがあります。

     1. class Exam {
     2.   public static void main(String args[]) {
     3.     System.out.println(args[0]);
     4.   }
     5. }
    

    また、コマンドラインで以下のように java コマンドを実行するとします。
    java Exam Foo
    実行結果はどれですか?

    1. 問題なく実行されるが何も出力されない
    2. java という値が出力される
    3. Exam という値が出力される
    4. Foo という値が出力される
    5. 実行時に例外が発生する
バージョン5.0の解答は、こちらをご覧ください。
 Sun Certified Programmer for the Java 2 Platform 1.4
概要 | お申込方法 | 認定証 | FAQ
Sun Certified Programmer for the Java 2 Platform1.4 試験 (試験番号 310-035) では、次のような問題が出題されます。

  1. 正しい配列の宣言を下記より3つ選択して下さい。


    1. int [42] x;
    2. int x [42];
    3. int [] x = (1,2,3);
    4. char [] myChars;
    5. int [] x = new int[] {2,4,5};
    6. int [] myScores [];

  2. 下記の内、オーバーライドの関係になるものを2つ選択して下さい。


    1. native void methoda();
    2. final void methoda() {}
    3. void final methoda() {}
    4. synchronized void methoda() {}
    5. synchronized final void methoda() {}

  3. 以下のコードの実行結果を1つ選択して下さい。


  4. class Bool {
    static boolean b;
    public static void main(String [] args) {
    int x=0;
    if (b ) {
    x=1;
    }

    else if (b = false){
    x=2;
    }
    else if (b){
    x=3;
    }
    else {
    x=4;
    }
    System.out.println("x = " + x);
    }
    }

    1. X = 0
    2. X = 1
    3. X = 2
    4. X = 3
    5. X = 4
    6. コンパイルエラー

  5. オブジェクトを破棄する方法を選択して下さい。


    1. オブジェクトへの参照を全て null にする
    2. Runtime.getRuntime().gc を呼び出す
    3. オブジェクトの持っている参照の全てを全て null にする
    4. (x をオブジェクトへの参照名とすると)x.remove() を呼び出す
    5. (x をオブジェクトへの参照名とすると)x.finalize() を呼び出す
    6. ガベッジコレクションのみがオブジェクトを破棄できる

  6. 以下のコードを下記コマンドで実行したときの結果を選択して下さい。


  7. public class X {
    public void main(String [] args) {
    System.out.println("brand " + args[0]);
    }
    }

    %java X Y

    1. brand
    2. brand X
    3. brand Y
    4. brand X Y
    5. コンパイルエラー
    6. 実行時の例外

  8. 以下のコードの実行結果を選択して下さい。


  9. int i=3, j=0, result=1;
    result += i-- * --j ;
    System.out.println( result );

    1. 0
    2. -1
    3. -2
    4. -3
    5. コンパイルエラー
    6. 実行時の例外

  10. 以下のコードを実行した際、A, Bの関係を表す正しい表記を2つ選択して下さい。


  11. class A {}
    class B {
    private A myA = new A();
    }

    1. A と B との関係がない場合もある
    2. B は A との関係がない場合もある
    3. B は A と "1対多" の関係をもっている
    4. A と B は "has-a" の関係をもっている
    5. A と B は "is-a" の関係をもっている

  12. 以下のコードの実行結果を選択して下さい。


  13. public static void main(String [] args) {
    class T1 extends java.lang.Thread{}
    class T2 extends T1{}
    class T3 implements java.lang.Runnable{}

    new T1().start();
    new T2().start();
    new Thread(new T3()).start();
    System.out.println( "Executing" );
    }

    1. コンパイルエラー
    2. プログラムは終了しない
    3. プログラムは実行するがなにも出力しない
    4. 実行時例外が発生する
    5. プログラムが結果出力後終了する
    6. プログラムは3つめのスレッドを生成後終了する

  14. 以下のコードの実行結果を選択して下さい。


  15. public class Test811 {
    public static void main(String [] args) {
    double num = 7.4;
    int a = (int) Math.abs(num + .5);
    int b = (int) Math.ceil(num + .5);
    int c = (int) Math.floor(num + .5);
    int d = (int) Math.round(num + .5);
    int e = (int) Math.round(num - .5);
    int f = (int) Math.floor(num - .5);
    int g = (int) Math.ceil(num - .5);
    int h = (int) Math.abs(num - .5);

    System.out.println("" + a + b + c + d + e + f + g + h);
    }
    }

    1. 56
    2. 78787676
    3. 78788777
    4. 77787776
    5. コンパイルエラー
    6. 実行時例外が発生する

  16. java.util.ArrayListクラスの説明で正しい表記を3つ選択して下さい。


    1. 重複する要素を保持できる
    2. そのメソッドはスレッドセーフである
    3. 双方向に検索ができる
    4. java.util.Setを実装する
    5. 迅速なランダムアクセスに向いている
    6. java.util.Collectionsを実装する

バージョン1.4の解答は、こちらをご覧ください。
 
 
 
 
サン認定資格 再受験無料ダブルキャンペーン
~目指せ! クラウド世代の選り抜きエンジニア~