SCJP Test - shaobin0604/misc GitHub Wiki

Question No: 1

Given:

1. public class Test { 
2.     public static void main (String args[]) { 
3.         int i = 0xFFFFFFF1; 
4.         int j = ~i; 
5. 
6.     } 
7. }

What is the decimal value of j at line 5?

  • A. 0
  • B. 1
  • C. 14
  • D. –15
  • E. An error at line 3 causes compilation to fail.
  • F. An error at line 4 causes compilation to fail.

Answer: D

Question No: 2

Given:

Integer i = new Integer (42); 
Long 1 = new Long (42); 
Double d = new Double (42.0); 

Which two expressions evaluate to True? (Choose Two)

  • A. (i ==1)
  • B. (i == d)
  • C. (d == 1)
  • D. (i.equals (d))
  • E. (d.equals (i))
  • F. (i.equals (42))

Answer: D, E

Question No: 3

Exhibit :

1. public class Test { 
2.     private static int j = 0; 
3. 
4.     private static boolean methodB(int k) { 
5.         j += k; 
6.         return true; 
6.     } 
7. 
8.     public static void methodA(int i) { 
9.         boolean b: 
10.        b = i < 10 | methodB(4); 
11.        b = i < 10 || methodB(8); 
12.    }
13. 
14.    public static void main(String args[]) { 
15.        methodA(0); 
16.        system.out.printIn(j); 
17.    } 
18.}

What is the result?

  • A. The program prints "0"
  • B. The program prints "4"
  • C. The program prints "8"
  • D. The program prints "12"
  • E. The code does not complete.

Answer: B

Question No: 4

Given

1. public class Test { 
2.     public static void main(String args[]) { 
3.         System.out.printIn(6 ^ 3); 
4.     }
5. }

What is the output?

Answer: 5

Question No: 5

Given:

1. public class Foo { 
2.     public static void main(String[] args) { 
3.         StringBuffer a = new StringBuffer("A"); 
4.         StringBuffer b = new StringBuffer("B"); 
5.         operate(a, b); 
6.         System.out.printIn(a + "," +b); 
7.     } 
8.     static void operate(StringBuffer x, StringBuffer y) { 
9.         x.append(y); 
10.        y = x; 
11.    } 
12.}

What is the result?

  • A. The code compiles and prints "A,B".
  • B. The code compiles and prints "A,A".
  • C. The code compiles and prints "B,B".
  • D. The code compiles and prints "AB,B".
  • E. The code compiles and prints "AB,AB".
  • F. The code does not compile because "+" cannot be overloaded for StringBuffer.

Answer: D

Question No: 6

Exhibit:

1. public class Test { 
2.     public static void stringReplace(String text) {
3.         text = text.replace('j', 'i'); 
4.     }
5. 
6.     public static void bufferReplace(StringBuffer text) { 
7.         text = text.append("C"); 
8.     }
9. 
10.    public static void main(String args[]} ( 
11.        String textString = new String("java"); 
12.        StringBuffer text BufferString = new StringBuffer("java"); 
13. 
14.        stringReplace(textString); 
15.        BufferReplace(textBuffer); 
16. 
17.        System.out.printIn(textString + textBuffer); 
18.    } 
19.}

What is the output?

Answer: javajavaC

Question No: 7

Exhibit:

1. public class Test { 
2.     public static void add3(Integer i) { 
3.         int val = i.intValue( ); 
4.         val += 3; 
5.         i = new Integer(val); 
6.     } 
7. 
8.     public static void main(String args[]) { 
9.         Integer i = new Integer(0); 
10.        add3(i); 
11.        System.out.printIn(i.intValue()); 
12.    } 
13.}

What is the result?

  • A. Compilation will fail.
  • B. The program prints "0".
  • C. The program prints "3".
  • D. Compilation will succeed but an exception will be thrown at line 3.

Answer: B

Question No: 8

Given:

1. public class ConstOver { 
2.     public ConstOver(int x, int y, int z) { 
3.     } 
4. } 

Which two overload the ConstOver constructor? (Choose Two)

  • A. ConstOver() { }
  • B. protected int ConstOver() { }
  • C. private ConstOver(int z, int y, byte x) { }
  • D. public Object ConstOver(int x, int y, int z) { }
  • E. public void ConstOver(byte x, byte y, byte z) { }

Answer: A, C

Question No: 9

Given:

1. public class MethodOver { 
2.     public void setVar(int a, int b, float c) { 
3.     } 
4. } 

Which two overload the setVar method? (Choose Two)

  • A. private void setVar(int a, float c, int b) { }
  • B. protected void setVar(int a, int b, float c) { }
  • C. public int setVar(int a, float c, int b) (return a;)
  • D. public int setVar(int a, int b, float c) (return a;)
  • E. protected float setVar(int a, int b, float c) (return c;)

Answer: A, C

Question No: 10

Given:

1. class BaseClass { 
2.     private float x = 1.0f ; 
3.     float getVar() { return x;} 
4. } 
5. class Subclass extends BaseClass { 
6.     private float x = 2.0f; 
7.     //insert code here 
8. }

Which two are valid examples of method overriding? (Choose Two)

  • A. private float getVar() { return x;}
  • B. protected float getVar() { return x;}
  • C. float double getVar() { return x;}
  • D. public float getVar() { return x;}
  • E. public float getVar(float f) { return f;}

Answer: B, D

Question No: 11

Which statement is true?

  • A. An anonymous inner class may be declared as final.
  • B. An anonymous inner class can be declared as private.
  • C. An anonymous inner class can implement multiple interfaces.
  • D. An anonymous inner class can access final variables in any enclosing scope.
  • E. Construction of an instance of a static inner class requires an instance of the enclosing outer class.

Answer: D

Question No 12

Given:

1. package foo; 
2. 
3. public class Outer { 
4.     public static class Inner { 
5.     }
6. }

Which statement is true?

  • A. An instance of the Inner class can be constructed with "new Outer.Inner ()"
  • B. An instance of the inner class cannot be constructed outside of package foo.
  • C. An instance of the inner class can only be constructed from within the outer class.
  • D. From within the package foo, an instance of the inner class can be constructed with "new Inner()"

Answer: A

Question No 13

Exhibit:

1. public class EnclosingOne {
2.     public class InsideOne {} 
3. } 
4. public class InnerTest { 
5.     public static void main(string[] args) {
6.         EnclosingOne eo = new EnclosingOne(); 
7.         //insert code here 
8.     }
9. }

Which statement at line 7 constructs an instance of the inner class?

  • A. InsideOne ei = eo.new InsideOne();
  • B. Eo.InsideOne ei = eo.new InsideOne();
  • C. InsideOne ei = EnclosingOne.new InsideOne();
  • D. EnclosingOne.InsideOne ei = eo.new InsideOne();

Answer: D

Question No 14

Exhibit:

1. interface Foo { 
2.     int k = 0; 
3. }
4. 
5. public class Test implements Foo { 
6.     public static void main(String args[]) ( 
7.         int i; 
8.         Test test = new Test(); 
9.         i = test.k; 
10.        i = Test.k; 
11.        i = Foo.k; 
12.    } 
13.} 
14. 

What is the result?

  • A. Compilation succeeds.
  • B. An error at line 2 causes compilation to fail.
  • C. An error at line 9 causes compilation to fail.
  • D. An error at line 10 causes compilation to fail.
  • E. An error at line 11 causes compilation to fail.

Answer: A

Question No 15

Given:

1. //point X 
2. public class Foo { 
3.     public static void main(String[] args) throws Exception { 
4.         PrintWriter out = new PrintWriter(new 
5.           java.io.OutputStreamWriter(System.out), true); 
6.         System.out.printIn("Hello"); 
7.     } 
8. } 

Which statement at PointX on line 1 allows this code to compile and run?

A. import java.io.PrintWriter; B. include java.io.PrintWriter; C. import java.io.OutputStreamWriter; D. include java.io.OutputStreamWriter; E. No statement is needed.

Answer: A

Question No 16

Which two statements are reserved words in Java? (Choose Two)

  • A. run
  • B. import
  • C. default
  • D. Implement

Answer: B, C

Question No 17

Which three are valid declarations of a float?

  • A. Float foo = -1;
  • B. Float foo = 1.0;
  • C. Float foo = 42e1;
  • D. Float foo = 2.02f;
  • E. Float foo = 3.03d;
  • F. Float foo = 0x0123;

Answer: D

Question No 18

Given:

1. int index = 1; 
2. Boolean[] test = new Boolean[3]; 
3. boolean foo = test[index]; 

What is the result?

  • A. Foo has the value of 0.
  • B. Foo has the value of null.
  • C. Foo has the value of true.
  • D. Foo has the value of false.
  • E. An exception is thrown.
  • F. The code will not compile.

Answer: D

Question No 19

Given:

1. public class Test( 
2.     public static void main(String[] args) { 
3.         String foo = args[1]; 
4.         String bar = args[2]; 
5.         String baz = args[3]; 
6.     } 
7. } 

And command line invocation:

Java Test red green blue 

What is the result?

  • A. baz has the value of ""
  • B. baz has the value of null
  • C. baz has the value of "red"
  • D. baz has the value of "blue"
  • E. baz has the value of "green"
  • F. The code does not compile.
  • G. The program throws an exception.

Answer: G

Question No 20

Given:

1. int index = 1; 
2. int[] foo = new int[3]; 
3. int bar = foo[index]; 
4. int baz = bar + index; 

What is the result?

  • A. Baz has the value of 0
  • B. Baz has the value of 1
  • C. Baz has the value of 2
  • D. An exception is thrown.
  • E. The code will not compile.

Answer: B

Question No 21

Given:

1. public class Foo { 
2.     public static void main(String[] args) { 
3.         String s; 
4.         System.out.printIn ("s=" + s); 
5.     } 
6. } 

What is the result?

  • A. The code compiles and "s=" is printed.
  • B. The code compiles and "s=null" is printed.
  • C. The code does not compile because string s is not initialized.
  • D. The code does not compile because string s cannot be referenced.
  • E. The code compiles, but a NullPointerException is thrown when toString is called.

Answer: C

Question No 22

Which will declare a method that forces a subclass to implement it?

  • A. Public double methoda();
  • B. Static void methoda (double d1) {}
  • C. Public native double methoda();
  • D. Abstract public void methoda();
  • E. Protected void methoda (double d1){}

Answer: D

Question No 23

You want subclasses in any package to have access to members of a superclass. Which is the most restrictive access modifier that will accomplish this objective?

  • A. public
  • B. private
  • C. protected
  • D. transient
  • E. No access modifier is qualified

Answer: C

Question No 24

Given:

1. abstract class AbstrctIt { 
2.     abstract float getFloat(); 
3. } 
4. public class AbstractTest extends AbstractIt { 
5.     private float f1 = 1.0f; 
6.     private float getFloat() { return f1; } 
7. } 

What is the result?

  • A. Compilation is successful.
  • B. An error on line 6 causes a runtime failure.
  • C. An error at line 6 causes compilation to fail.
  • D. An error at line 2 causes compilation to fail.

Answer: C

Question No 25

Exhibit:

1. public class Test { 
2.     public int aMethod() { 
3.         static int i = 0; 
4.         i++; 
5.         return i; 
6.     }
7.     public static void main(String args[]) { 
8.         Test test = new Test(); 
9.         test.aMethod(); 
10.        int j = test.aMethod(); 
11.        System.out.printIn(j); 
12.    } 
13.} 

What is the result?

  • A. Compilation will fail.
  • B. Compilation will succeed and the program will print "0"
  • C. Compilation will succeed and the program will print "1"
  • D. Compilation will succeed and the program will print "2"

Answer: A

Question No 26

Given:

1. class Super { 
2.     public float getNum() {return 3.0f;} 
3. } 
4. 
5. public class Sub extends Super { 
6. 
7. }

Which method, placed at line 6, will cause a compiler error?

  • A. public float getNum() {return 4.0f; }
  • B. public void getNum() { }
  • C. public void getNum(double d) { }
  • D. public double getNum(float d) {retrun 4.0f; }

Answer: B

Question No 27

Which declaration prevents creating a subclass of an outer class?

  • A. Static class FooBar{}
  • B. Private class FooBar{}
  • C. Abstract public class FooBar{}
  • D. Final public class FooBar{}
  • E. Final abstract class FooBar{}

Answer: D

Question No 28

Given:

1. byte[] array1, array2[]; 
2. byte array3[][]; 
3. byte[][] array4; 

If each array has been initialized, which statement will cause a compiler error?

  • A. array2 = array1;
  • B. array2 = array3;
  • C. array2 = array4;
  • D. Both A and B
  • E. Both A and C
  • F. Both B and C
  • G. None of the above answer

Answer: G

Question No 29

Exhibit:

1. class Super {  
2.     public int i = 0; 
3. 
4.     public Super(String text) { 
5.         i = 1;
6.     }
7. }
8. 
9. public class Sub extends Super { 
10.    public Sub(String text) ( 
11.        i = 2; 
12.    }
13. 
14.    public static void main(String args[]) { 
15.        Sub sub = new Sub("Hello"); 
16.        System.out.printIn(sub.i); 
17.    }
18.}

What is the result?

  • A. Compilation will fail.
  • B. Compilation will succeed and the program will print "0"
  • C. Compilation will succeed and the program will print "1"
  • D. Compilation will succeed and the program will print "2"

Answer: A

Question No 30

Given:

1. public class ReturnIt { 
2.     returnType methodA(byte x, double y) { 
3.         return (short) x/y * 2; 
4.     } 
5. }

What is the valid returnType for methodA in line 2?

  • A. int
  • B. byte
  • C. long
  • D. short
  • E. float
  • F. double

Answer: F

Question No: 31

Give the following method:

1 public void method() { 
2     String a,b; 
3     a = new String("hello world"); 
4     b = new String("game over"); 
5     System.out.println(a + b + "ok"); 
6     a = null; 
7     a = b; 
8     System.out.println(a); 
9 } 

In the absence of compiler optimization, which is the earliest point the object a refered is definitely elibile to be garbage collection.

  • A. before line 3
  • B. before line 5
  • C. before line 6
  • D. before line 7
  • E. Before line 9

Answer: D

Question No: 32

Give the code fragment:

1 switch(x) { 
2     case 1: System.out.println("Test 1");break; 
3     case 2: 
4     case 3: System.out.println("Test 2");break; 
5     default:System.out.println("end"); 
6 } 

which value of x would clause "Test 2" to the output:

  • A. 1
  • B. 2
  • C. 3
  • D. default

Answer: B, C