1. | Given: class Hexy { public static void main(String[] args) { Integer i = 42; String s = (i<40)?"life":(i>50)?"universe":"everything"; System.out.println(s); } } What is the result? -
null -
life -
universe -
everything -
Compilation fails. -
An exception is thrown at runtime. | |
2. | Given: 1. class Example { 2. public static void main(String[] args) { 3. Short s = 15; 4. Boolean b; 5. // insert code here 6. } 7. } Which, inserted independently at line 5, will compile? (Choose all that apply.) -
b = (Number instanceof s); -
b = (s instanceof Short); -
b = s.instanceof(Short); -
b = (s instanceof Number); -
b = s.instanceof(Object); -
b = (s instanceof String); | |
3. | Given: 1. class Comp2 { 2. public static void main(String[] args) { 3. float f1 = 2.3f; 4. float[][] f2 = {{42.Of}, {l.7f, 2.3f}, {2.6f, 2.7f}}; 5. float[] f3 = {2.7f}; 6. Long x = 42L; 7. // insert code here 8. System.out.println("true"); 9. } 10. } And the following five code fragments: F1. if (f1 == f2) F2. if (f1 == f2[2][1]) F3. if (x == f2[0][0]) F4. if (f1 == f2 [1,1] ) F5. if (f3 == f2 [2] ) What is true? -
One of them will compile, only one will be true. -
Two of them will compile, only one will be true. -
Two of them will compile, two will be true. -
Three of them will compile, only one will be true. -
Three of them will compile, exactly two will be true. -
Three of them will compile, exactly three will be true. | |
4. | Given: class Fork { public static void main(String[] args) { if(args.length == 1 | args[1] .equals("test")) { System.out.println ("test case"); } else { System.out.println("production " + args[0]) ; } } } And the command-line invocation: java Fork live2 What is the result? -
test case -
production -
test case live2 -
Compilation fails. -
An exception is thrown at runtime. | |
5. | Given: class Foozit { public static void main(String[] args) { Integer x = 0; Integer y = 0; for(Short z = 0; z < 5; z++) if((++x > 2) || (++y > 2)) X++ ; System.out.println (x + " " + y); } } What is the result? -
5 1 -
5 2 -
5 3 -
8 1 -
8 2 -
8 3 -
10 2 -
10 3 | |
6. | Given: class Titanic { public static void main(String[] args) { Boolean bl = true; boolean b2 = false; boolean b3 = true; if((bl & b2) | (b2 & b3) & b3) System.out.print("alpha "); if((bl = false) | (b1 & b3) | (bl | b2)) System.out.print("beta "}; } } What is the result? -
beta -
alpha -
alpha beta -
Compilation fails. -
No output is produced. -
An exception is thrown at runtime. | |
7. | Given: class Feline { public static void main(String[] args) { Long x = 42L; Long y = 44L; System.out.print (" " + 7 + 2 + " ") ; System.out.print(foo () + x + 5 + " "); System.out.println(x + y + foo()); } static String foo() { return "foo"; } } What is the result? -
9 foo47 86foo -
9 foo47 4244foo -
9 foo425 86foo -
9 foo425 4244foo -
72 foo47 86foo -
72 foo47 4244foo -
72 foo425 86foo -
72 foo425 4244foo -
Compilation fails. | |
8. | Place the fragments into the code to produce the output 33. Note, you must use each fragment exactly once. CODE: class Incr { public static void main(String[] args) { Integer x = 7; int y = 2 ; X ___ ___; ___ ___ ___; ___ ___ ___; ___ ___ ___; System.out.println(x); } } FRAGMENTS: Y | Y | Y | Y | y | x | x | | -= | *= | *= | *= | | |
9. | Given: 1. class Maybe { 2. public static void main(String[] args) { 3. boolean bl = true; 4. boolean b2 = false; 5. System.out.print(!false ^ false); 6. System.out.print(" " + (!b1 & (b2 = true))); 7. System.out.println(" " + (b2 ^ b1)); 8. } 9. } Which are true? -
Line 5 produces true. -
Line 5 produces false. -
Line 6 produces true. -
Line 6 produces false. -
Line 7 produces true. -
Line 7 produces false. | |
10. | Given: class Sixties { public static void main(String[] args) { int x = 5; int y = 7 ; System.out.print(((y * 2) % x)); System.out.print(" " + (y % x)); } } What is the result? -
1 1 -
1 2 -
2 1 -
2 2 -
4 1 -
4 2 -
Compilation fails. -
An exception is thrown at runtime. | |
1. | þ | D is correct. This is a ternary nested in a ternary with a little unboxing thrown in. Both of the ternary expressions are false. | ý | A, B, C, E, and F are incorrect based on the above. (Objective 7.6) | |
2. | þ | B and D correctly use boxing and instanceof together. | ý | A is incorrect because the operands are reversed. C and E use incorrect instanceof syntax. F is wrong because Short isn't in the same inheritance tree as String. (Objective 7,6) | |
3. | þ | D is correct, Fragments F2, F3, and F5 will compile, and only F3 is true. | ý | A, B, C, E, and F are incorrect. F1 is incorrect because you can't compare a primitive to an array. F4 is incorrect syntax to access an element of a two-dimensional array. (Objective 7.6) | |
4. | þ | E is correct. Because the short circuit (| |) is not used, both operands are evaluated, Since args[1] is past the args array bounds, an ArrayIndexOutOf BoundsException is thrown. | ý | A, B, C, and D are incorrect based on the above. (Objective 7.6) | |
5. | þ | E is correct. The first two times the if test runs, both x and y are incremented once (the x++ is not reached until the third iteration). Starting with the third iteration of the loop, y is never touched again, because of the short-circuit operator. | ý | A, B, C, D, F, G, and H are incorrect based on the above. (Objective 7.6) | |
6. | þ | E is correct. In the second if test, the leftmost expression is an assignment, not a comparison. Once bl has been set to false, the remaining tests are all false. | ý | A, B, C, D, and F are incorrect based on the above. , (Objective 7.6) | |
7. | þ | G is correct. Concatenation runs from left to right, and if either operand is a String, the operands are concatenated. If both operands are numbers they are added together. Unboxing works in conjunction with concatenation. | ý | A, B, C, D, E, F, H, and I are incorrect based on the above. (Objective 7.6) | |
8. | class Incr{ public static void main(String[] args){ Integer.x = 7; int Y = 2; x *_ X; Y *= Y; Y = Y; x -= Y; System.out.println(x); } } Yeah, we know it's kind of puzzle-y, but you might encounter something like it on the real exam. (Objective 7.6) |
9. | þ | A, D, and F are correct. The ^ (xor) returns true if exactly one operand is true. The ! inverts the operand's boolean value. On line 6 b2 = true is an assignment not a comparison, and it's evaluated because & does not short-circuit it. | ý | B, C, and E are incorrect based on the above. (Objective 7.6) | |
10. | þ | F is correct. The % (remainder a.k.a. modulus) operator returns the remainder of a division operation. | ý | A, B, C, D, E, G, and H .are incorrect based on the above. (Objective 7.6) | |