Skip to content

Instantly share code, notes, and snippets.

@boyangwang
Created January 28, 2016 07:59
Show Gist options
  • Save boyangwang/d7a52aa43e09bf3eeda1 to your computer and use it in GitHub Desktop.
Save boyangwang/d7a52aa43e09bf3eeda1 to your computer and use it in GitHub Desktop.
Oracle Certified Associate, Java SE 7 Programmer I (1Z0-803) - OCA 7 Dumps
EXAM DETAILS:
Associated Certifications: Oracle Certified Associate, Java SE 7 Programmer
Exam Number: 1Z0-803
Exam Product Version: Java SE
Duration: 120 minutes
Number of Questions: 70
Passing Score: 63%
format: Multiple Choice
SYLLABUS:
Java Basics
Define the scope of variables
Define the structure of a Java class
Create executable Java applications with a main method
Import other Java packages to make them accessible in your code
Working With Java Data Types
Declare and initialize variables
Differentiate between object reference variables and primitive variables
Read or write to object fields
Explain an Object's Lifecycle (creation, "dereference" and garbage collection)
Call methods on objects
Manipulate data using the StringBuilder class and its methods
Creating and manipulating Strings
Using Operators and Decision Constructs
Use Java operators
Use parenthesis to override operator precedence
Test equality between Strings and other objects using == and equals ()
Create if and if/else constructs
Use a switch statement
Creating and Using Arrays
Declare, instantiate, initialize and use a one-dimensional array
Declare, instantiate, initialize and use multi-dimensional array
Declare and use an ArrayList
Using Loop Constructs
Create and use while loops
Create and use for loops including the enhanced for loop
Create and use do/while loops
Compare loop constructs
Use break and continue
Working with Methods and Encapsulation
Create methods with arguments and return values
Apply the static keyword to methods and fields
Create an overloaded method
Differentiate between default and user defined constructors
Create and overload constructors
Apply access modifiers
Apply encapsulation principles to a class
Determine the effect upon object references and primitive values when they are passed into methods that change the values
Working with Inheritance
Implement inheritance
Develop code that demonstrates the use of polymorphism
Differentiate between the type of a reference and the type of an object
Determine when casting is necessary
Use super and this to access objects and constructors
Use abstract classes and interfaces
Handling Exceptions
Differentiate among checked exceptions, RuntimeExceptions and Errors
Create a try-catch block and determine how exceptions alter normal program flow
Describe what Exceptions are used for in Java
Invoke a method that throws an exception
Recognize common exception classes and categories
QUESTIONS:
QUESTION 1
Given the code fragment:
int [] [] array2D = {{0, 1, 2}, {3, 4, 5, 6}};
system.out.print (array2D[0].length+ "" );
system.out.print(array2D[1].getClass(). isArray() + "");
system.out.println (array2D[0][1]);
What is the result?
A. 3false1
B. 2true3
C. 2false3
D. 3true1
E. 3false3
F. 2true1
G. 2false1
Correct Answer: D
Section: (none)
Explanation
Explanation/Reference:
Explanation: The length of the element with index 0, {0, 1, 2}, is 3. Output: 3 The element with index 1, {3, 4, 5,
6}, is of type array. Output: true The element with index 0, {0, 1, 2} has the element with index 1: 1. Output: 1
QUESTION 2
View the exhibit:
public class Student {
public String name = "";
public int age = 0;
public String major = "Undeclared";
public boolean fulltime = true;
public void display() {
System.out.println("Name: " + name + " Major: " + major);
}
public boolean isFullTime() {
return fulltime;
}
}
Given:
public class TestStudent {
public static void main(String[] args) {
Student bob = new Student ();
Student jian = new Student();
bob.name = "Bob";
bob.age = 19;
jian = bob;
jian.name = "Jian";
System.out.println("Bob's Name: " + bob.name);
}
}
What is the result when this program is executed?
A. Bob's Name: Bob
B. Bob's Name: Jian
C. Nothing prints
D. Bob's name
Correct Answer: B
Section: (none)
Explanation
Explanation/Reference:
Explanation: After the statement jian = bob; the jian will reference the same object as bob.
QUESTION 3
Given the code fragment:
String valid = "true";
if (valid)
{
System.out.println ("valid");
}
else
{
System.out.println ("not valid");
}
What is the result?
A. Valid
B. not valid
C. Compilation fails
D. An IllegalArgumentException is thrown at run time
Correct Answer: C
Section: (none)
Explanation
Explanation/Reference:
Explanation: In segment 'if (valid)' valid must be of type boolean, but it is a string.
This makes the compilation fail.
QUESTION 4
Given:
public class ScopeTest
{
int z;
public static void main(String[] args){
ScopeTest myScope = new ScopeTest();
int z = 6;
System.out.println(z);
myScope.doStuff();
System.out.println(z);
System.out.println(myScope.z);
}
void doStuff() {
int z = 5;
doStuff2();
System.out.println(z);
}
void doStuff2()
{
z = 4;
}
}
What is the result?
A. 6 5 6 4
B. 6 5 5 4
C. 6 5 6 6
D. 6 5 6 5
Correct Answer: A
Section: (none)
Explanation
Explanation/Reference:
Explanation: Within main z is assigned 6. z is printed. Output: 6 Within doStuff z is assigned 5.DoStuff2 locally
sets z to 4 (but MyScope.z is set to 4), but in Dostuff z is still 5. z is printed. Output: 5
Again z is printed within main (with local z set to 6). Output: 6 Finally MyScope.z is printed. MyScope.z has
been set to 4 within doStuff2(). Output: 4
QUESTION 5
Which two are valid instantiations and initializations of a multi dimensional array?
A. int [] [] array 2D = { { 0, 1, 2, 4} {5, 6}};
B. int [] [] array2D = new int [2] [2];
array2D[0] [0] = 1;
array2D[0] [1] = 2;
array2D[1] [0] = 3;
array2D[1] [1] = 4;
C. int [] [] [] array3D = {{0, 1}, {2, 3}, {4, 5}};
D. int [] [] [] array3D = new int [2] [2] [2];
array3D [0] [0] = array;
array3D [0] [1] = array;
array3D [1] [0] = array;
array3D [0] [1] = array;
E. int [] [] array2D = {0, 1};
Correct Answer: BD
Section: (none)
Explanation
Explanation/Reference:
Explanation: In the Java programming language, a multidimensional array is simply an array whose
components are themselves arrays.
QUESTION 6
An unchecked exception occurs in a method dosomething()
Should other code be added in the dosomething() method for it to compile and execute?
A. The Exception must be caught
B. The Exception must be declared to be thrown.
C. The Exception must be caught or declared to be thrown.
D. No other code needs to be added.
Correct Answer: C
Section: (none)
Explanation
Explanation/Reference:
Explanation: Because the Java programming language does not require methods to catch or to specify
unchecked exceptions (RuntimeException, Error, and their subclasses), programmers may be tempted to write
code that throws only unchecked exceptions or to make all their exception subclasses inherit from
RuntimeException. Both of these shortcuts allow programmers to write code without bothering with compiler
errors and without bothering to specify or to catch any exceptions. Although this may seem convenient to the
programmer, it sidesteps the intent of the catch or specify requirement and can cause problems for others
using your classes.
QUESTION 7
Given the code fragment:
int b = 4;
b -- ;
System.out.println (-- b);
System.out.println(b);
What is the result?
A. 2 2
B. 1 2
C. 3 2
D. 3 3
Correct Answer: A
Section: (none)
Explanation
Explanation/Reference:
Explanation: Variable b is set to 4.
Variable b is decreased to 3.
Variable b is decreased to 2 and then printed. Output: 2 Variable b is printed. Output: 2
QUESTION 8
Given the code fragment:
interface SampleClosable
{
public void close () throws java.io.IOException;
}
Which three implementations are valid?
A. public class Test implements SampleCloseable {
public void close() throws java.io.IOException {
/ / do something
}
}
B. public class Test implements SampleCloseable {
public void close() throws Exception {
/ / do something
}
}
C. public class Test implements SampleCloseable {
public void close() throws java.io.FileNotFoundException { / / do something
}
}
D. public class Test extends SampleCloseable {
public void close() throws java.IO.IOException {
/ / do something
}
}
E. public class Test implements SampleCloseable {
public void close()
/ / do something
}
}
Correct Answer: ACE
Section: (none)
Explanation
Explanation/Reference:
Explanation: A: Throwing the same exception is fine.
C: Using a subclass of java.io.IOException (here java.io.FileNotFoundException) is fine
E: Not using a throw clause is fine.
QUESTION 9
Given the code fragment:
Int [] [] array = {{0}, {0, 1}, {0, 2, 4}, {0, 3, 6, 9}, {0, 4, 8, 12, 16}};
Systemout.printIn(array [4] [1]);
System.out.printIn (array) [1][4]);
int [] [] array = {{0}, {0, 1}, {0, 2, 4}, {0, 3, 6, 9}, {0, 4, 8, 12, 16}};
System.out.println(array [4][1]);
System.out.println(array) [1][4]);
What is the result?
A. 4 Null
B. Null 4
C. An IllegalArgumentException is thrown at run time
D. 4 An ArrayIndexOutOfBoundException is thrown at run time
Correct Answer: D
Section: (none)
Explanation
Explanation/Reference:
Explanation: The first println statement, System.out.println(array [4][1]);, works fine. It selects the element/array
with index 4, {0, 4, 8, 12, 16}, and from this array it selects the element with index 1,4.
Output: 4
The second println statement, System.out.println(array) [1][4]);, fails. It selects the array/element with index 1,
{0, 1}, and from this array it try to select the element with index 4. This causes an exception.
Output:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
QUESTION 10
Given:
public class DoCompare1 {
public static void main(String[] args) {
String[] table = {"aa", "bb", "cc"};
for (String ss: table) {
int ii = 0;
while (ii < table.length) {
System.out.println(ss + ", " + ii);
ii++;
}
}
How many times is 2 printed as a part of the output?
A. Zero
B. Once
C. Twice
D. Thrice
E. Compilation fails.
Correct Answer: D
Section: (none)
Explanation
Explanation/Reference:
Explanation: The for statement, for (String ss: table), is executed one time for each of the three elements in
table. The while loop will print a 2 once for each element.
Output:
aa, 0
aa, 1
aa, 2
bb, 0
bb, 1
bb, 2
cc, 0
cc, 1
cc, 2
QUESTION 11
Given:
import java.io.IOException;
public class Y
{
public static void main(String[] args) {
try {
doSomething();
}
catch (RuntimeException e) {
System.out.println(e);
}
}
static void doSomething()
{
if (Math.random() > 0.5)
{
throw new IOException();
}
throw new RuntimeException();
}
}
Which two actions, used independently, will permit this class to compile?
A. Adding throws IOException to the main() method signature
B. Adding throws IOException to the doSoomething() method signature
C. Adding throws IOException to the main() method signature and to the dosomething() method
D. Adding throws IOException to the dosomething() method signature and changing the catch argument to
IOException
E. Adding throws IOException to the main() method signature and changing the catch argument to
IOException
Correct Answer: CD
Section: (none)
Explanation
Explanation/Reference:
Explanation: The IOException must be caught or be declared to be thrown. We must add a throws exception to
the doSomething () method signature (static void doSomething() throws IOException).
Then we can either add the same throws IOException to the main method (public static void main(String[] args)
throws IOException), or change the catch statement in main to IOException.
QUESTION 12
Given:
lass X
{
String str = "default";
X(String s)
{
str = s;
}
void print ()
{
System.out.println(str);
}
public static void main(String[] args)
{
new X("hello").print();
}
}
What is the result?
A. hello
B. default
C. Compilation fails
D. The program prints nothing
E. An exception is thrown at run time
Correct Answer: A
Section: (none)
Explanation
Explanation/Reference:
Explanation: The program compiles fine.
The program runs fine.
The output is: hello
QUESTION 13
Given:
public class SampleClass
{
public static void main(String[] args)
{
AnotherSampleClass asc = new AnotherSampleClass();
SampleClass sc = new SampleClass();
// TODO code application logic here
}
}
class AnotherSampleClass extends SampleClass
{
}
Which statement, when inserted into line "// TODO code application logic here ", is valid change?
A. asc = sc;
B. sc = asc;
C. asc = (object) sc;
D. asc = sc.clone ()
Correct Answer: B
Section: (none)
Explanation
Explanation/Reference:
Explanation: Works fine.
QUESTION 14
Given the code fragment:
System.out.println("Result: " + 2 + 3 + 5);
System.out.println("Result: " + 2 + 3 * 5);
What is the result?
A. Result: 10
Result: 30
B. Result: 10
Result: 25
C. Result: 235
Result: 215
D. Result: 215
Result: 215
E. Compilation fails
Correct Answer: C
Section: (none)
Explanation
Explanation/Reference:
Explanation: First line:
System.out.println("Result: " + 2 + 3 + 5);
String concatenation is produced.
Second line:
System.out.println("Result: " + 2 + 3 * 5);
3*5 is calculated to 15 and is appended to string 2. Result 215.
The output is:
Result: 235
Result: 215
Note #1:
To produce an arithmetic result, the following code would have to be used:
System.out.println("Result: " + (2 + 3 + 5));
System.out.println("Result: " + (2 + 1 * 5));
run:
Result: 10
Result: 7
Note #2:
If the code was as follows:
System.out.println("Result: " + 2 + 3 + 5");
System.out.println("Result: " + 2 + 1 * 5");
The compilation would fail. There is an unclosed string literal, 5", on each line.
QUESTION 15
Which code fragment is illegal?
A. class Base1 {
abstract class Abs1 { }}
B. abstract class Abs1 {
void doit () { }}
C. class Basel {
abstract class Abs1 extends Basel {
D. abstract int var1 = 89;
Correct Answer: D
Section: (none)
Explanation
Explanation/Reference:
Explanation: The abstract keyword cannot be used to declare an int variable.
The abstract keyword is used to declare a class or method to be abstract[3]. An abstract method has no
implementation; all classes containing abstract methods must themselves be abstract, although not all abstract
classes have abstract methods.
QUESTION 16
Given the code fragment:
int a = 0;
a++;
System.out.println(a++);
System.out.println(a);
What is the result?
A. 1
2
B. 0
1
C. 1
1
D. 2
2
Correct Answer: A
Section: (none)
Explanation
Explanation/Reference:
Explanation: The first println prints variable a with value 1 and then increases the variable to 2.
QUESTION 17
Given:
public class x
{
public static void main (string [] args)
{
String theString = "Hello World";
System.out.println(theString.charAt(11));
}
}
What is the result?
A. There is no output
B. d is output
C. A StringIndexOutOfBoundsException is thrown at runtime
D. An ArrayIndexOutOfBoundsException is thrown at runtime
E. A NullPointException is thrown at runtime
F. A StringArrayIndexOutOfBoundsException is thrown at runtime
Correct Answer: C
Section: (none)
Explanation
Explanation/Reference:
Explanation: There are only 11 characters in the string "Hello World". The code theString.charAt(11) retrieves
the 12th character, which does not exist. A StringIndexOutOfBoundsException is thrown.
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range:
QUESTION 18
Given a java source file:
class X
{
X ()
{
}
private void one ()
{
}
}
public class Y extends X
{
Y ()
{
}
private void two ()
{
one();
}
public static void main (string [] args)
{
new Y().two ();
}
}
What changes will make this code compile?
A. adding the public modifier to the declaration of class X
B. adding the protected modifier to the X() constructor
C. changing the private modifier on the declaration of the one() method to protected
D. removing the Y () constructor
E. removing the private modifier from the two () method
Correct Answer: C
Section: (none)
Explanation
Explanation/Reference:
Explanation: Using the private protected, instead of the private modifier, for the declaration of the one() method,
would enable the two() method to access the one() method.
QUESTION 19
Given:
#1
package handy.dandy;
public class KeyStroke {
public void typeExclamation() {
System.out.println("!")
}
}
#2
package handy; /* Line 1 */
public class Greet { /* Line 2 */
public static void main(String[] args) { /* Line 3 */
String greeting = "Hello"; /* Line 4 */
System.out.print(greeting); /* Line 5 */
Keystroke stroke = new Keystroke; /* Line 6 */
stroke.typeExclamation(); /* Line 7 */
} /* Line 8 */
} /* Line 9 */
What three modifications, made independently, made to class greet, enable the code to compile and run?
A. Line 6 replaced with handy.dandy.keystroke stroke = new KeyStroke ( );
B. Line 6 replaced with handy.*.KeyStroke = new KeyStroke ( );
C. Line 6 replaced with handy.dandy.KeyStroke Stroke = new handy.dandy.KeyStroke();
D. import handy.*; added before line 1
E. import handy.dandy.*; added after line 1
F. import handy.dandy,KeyStroke; added after line 1
G. import handy.dandy.KeyStroke.typeException(); added before line 1
Correct Answer: CEF
Section: (none)
Explanation
Explanation/Reference:
Explanation: Three separate solutions:
C: the full class path to the method must be stated (when we have not imported the package)
D: We can import the hold dandy class
F: we can import the specific method
QUESTION 20
Given:
String message1 = "Wham bam!";
String message2 = new String("Wham bam!");
if (message1 == message2)
System.out.println("They match");
if (message1.equals(message2))
System.out.println("They really match");
What is the result?
A. They match
They really match
B. They really match
C. They match
D. Nothing Prints
E. They really match
They really match
Correct Answer: B
Section: (none)
Explanation
Explanation/Reference:
Explanation: The strings are not the same objects so the == comparison fails. See note #1 below. As the value
of the strings are the same equals is true. The equals method compares values for equality.
Note: #1 ==
Compares references, not values. The use of == with object references is generally limited to the following:
Comparing to see if a reference is null.
Comparing two enum values. This works because there is only one object for each enum constant.
You want to know if two references are to the same object.
QUESTION 21
Given:
public class Speak { /* Line 1 */
public static void main(String[] args) { /* Line 2 */
Speak speakIT = new Tell(); /* Line 3 */
Tell tellIt = new Tell(); /* Line 4 */
speakIT.tellItLikeItIs(); /* Line 5 */
(Truth)speakIt.tellItLikeItIs(); /* Line 6 */
((Truth)speakIt).tellItLikeItIs(); /* Line 7 */
tellIt.tellItLikeItIs(); /* Line 8 */
(Truth)tellIt.tellItLikeItIs(); /* Line 9 */
((Truth)tellIt).tellItLikeItIs(); /* Line 10 */
}
}
class Tell extends Speak implements Truth {
public void tellItLikeItIs() {
System.out.println("Right on!");
}
}
interface Truth {
public void tellItLikeItIs()
};
Which three lines will compile and output "right on!"?
A. Line 5
B. Line 6
C. Line 7
D. Line 8
E. Line 9
F. Line 10
Correct Answer: CDF
Section: (none)
Explanation
Explanation/Reference:
Explanation:
QUESTION 22
Given the code fragment:
String h1 = "Bob";
String h2 = new String ("Bob");
What is the best way to test that the values of h1 and h2 are the same?
A. if (h1 == h2)
B. if (h1.equals(h2))
C. if (h1 = = h2)
D. if (h1.same(h2))
Correct Answer: B
Section: (none)
Explanation
Explanation/Reference:
Explanation: The equals method compares values for equality.
QUESTION 23
Which two are valid declarations of a two-dimensional array?
A. int[][] array2D;
B. int[2][2] array2D;
C. int array2D[];
D. int[] array2D[];
E. int[][] array2D[];
Correct Answer: AD
Section: (none)
Explanation
Explanation/Reference:
Explanation: int[][] array2D; is the standard convention to declare a 2-dimensional integer array.
int[] array2D[]; works as well, but it is not recommended.
QUESTION 24
Given the code fragment:
System.out.println ("Result:" +3+5);
System.out.println ("result:" + (3+5));
What is the result?
A. Result: 8
Result: 8
B. Result: 35
Result: 8
C. Result: 8
Result: 35
D. Result: 35
Result: 35
Correct Answer: B
Section: (none)
Explanation
Explanation/Reference:
Explanation: In the first statement 3 and 5 are treated as strings and are simply concatenated. In the first
statement 3 and 5 are treated as integers and their sum is calculated.
QUESTION 25
Given:
public class Main {
public static void main(String[] args) throws Exception
{
doSomething();
}
private static void doSomething() throws Exception
{
System.out.println("Before if clause");
if (Math.random() > 0.5)
{
throw new Exception();
}
System.out.println ("After if clause");
}
}
Which two are possible outputs?
A. Before if clause
Exception in thread "main" java.lang.Exception
At Main.doSomething (Main.java:8)
At Main.main (Main.java:3)
B. Before if clause
Exception in thread "main" java.lang.Exception
At Main.doSomething (Main.java:8)
At Main.main (Main.java:3)
After if clause
C. Exception in thread "main" java.lang.Exception
At Main.doSomething (Main.java:8)
At Main.main (Main.java:3)
D. Before if clause
After if clause
Correct Answer: AD
Section: (none)
Explanation
Explanation/Reference:
Explanation: The first println statement, System.out.println("Before if clause");, will always run. If Math.Random
() > 0.5 then there is an exception. The exception message is displayed and the program terminates.
If Math.Random() > 0.5 is false, then the second println statement runs as well.
QUESTION 26
A method doSomething () that has no exception handling code is modified to trail a method that throws a
checked exception. Which two modifications, made independently, will allow the program to compile?
A. Catch the exception in the method doSomething().
B. Declare the exception to be thrown in the doSomething() method signature.
C. Cast the exception to a RunTimeException in the doSomething() method.
D. Catch the exception in the method that calls doSomething().
Correct Answer: AB
Section: (none)
Explanation
Explanation/Reference:
Explanation: Valid Java programming language code must honor the Catch or Specify Requirement. This
means that code that might throw certain exceptions must be enclosed by either of the following:
* A try statement that catches the exception. The try must provide a handler for the exception, as described in
Catching and Handling Exceptions.
* A method that specifies that it can throw the exception. The method must provide a throws clause that lists
the exception, as described in Specifying the Exceptions Thrown by a Method.
Code that fails to honor the Catch or Specify Requirement will not compile.
QUESTION 27
Given the code fragment:
String color = "Red";
switch(color)
{
case "Red":
System.out.println("Found Red");
case "Blue":
System.out.println("Found Blue");
break;
case "White":
System.out.println("Found White");
break;
default:
System.out.println("Found Default");
}
What is the result?
A. Found Red
B. Found Red
Found Blue
C. Found Red
Found Blue
Found White
D. Found Red
Found Blue
Found White
Found Default
Correct Answer: B
Section: (none)
Explanation
Explanation/Reference:
Explanation: As there is no break statement after the case "Red" statement the case Blue statement will run as
well.
Note: The body of a switch statement is known as a switch block. A statement in the switch block can be
labeled with one or more case or default labels. The switch statement evaluates its expression, then executes
all statements that follow the matching case label.
Each break statement terminates the enclosing switch statement. Control flow continues with the first statement
following the switch block. The break statements are necessary because without them, statements in switch
blocks fall through: All statements after the matching case label are executed in sequence, regardless of the
expression of subsequent case labels, until a break statement is encountered.
QUESTION 28
Which two may precede the word "class" in a class declaration?
A. local
B. public
C. static
D. volatile
E. synchronized
Correct Answer: BC
Section: (none)
Explanation
Explanation/Reference:
Explanation: B: A class can be declared as public or private.
C: You can declare two kinds of classes: top-level classes and inner classes. You define an inner class within a
top-level class. Depending on how it is defined, an inner class can be one of the following four types:
Anonymous, Local, Member and Nested top-level. A nested top-level class is a member classes with a static
modifier. A nested top-level class is just like any other top-level class except that it is declared within another
class or interface. Nested top-level classes are typically used as a convenient way to group related classes
without creating a new package.
The following is an example:
public class Main {
static class Killer {
QUESTION 29
Which three are bad practices?
A. Checking for ArrayindexoutofBoundsException when iterating through an array to determine when all
elements have been visited
B. Checking for Error and. If necessary, restarting the program to ensure that users are unaware problems
C. Checking for FileNotFoundException to inform a user that a filename entered is not valid
D. Checking for ArrayIndexoutofBoundsExcepcion and ensuring that the program can recover if one occur
E. Checking for an IOException and ensuring that the program can recover if one occurs
Correct Answer: ABD
Section: (none)
Explanation
Explanation/Reference:
Explanation: A, D: Better to check if the index is within bounds. B: Restarting the program would not be a good
practice. It should be done as a last possibility only.
QUESTION 30
Given:
public class Bark {
// Insert code here - Line 5
public abstract void bark(); // Line 6
} // Line 7
// Line 8
// Insert code here - Line 9
public void bark() {
System.out.println("woof");
}
}
What code should be inserted?
A. 5.class Dog {
9. public class Poodle extends Dog {
B. 5. abstract Dog {
9. public class poodle extends Dog {
C. 5. abstract class Dog {
9. public class Poodle extends Dog {
D. 5. abstract Dog {
9. public class Poodle implements Dog {
E. 5. abstract Dog {
9. public class Poodle implements Dog {
F. 5. abstract class Dog {
9. public class Poodle implements Dog {
Correct Answer: C
Section: (none)
Explanation
Explanation/Reference:
Explanation: Dog should be an abstract class. The correct syntax for this is: abstract class Dog { Poodle should
extend Dog (not implement).
QUESTION 31
Given:
class X {}
class Y {Y () {}}
class Z {z(int i ) {} }
Which class has a default constructor?
A. X only
B. Y only
C. Z only
D. X and Y
E. Y and Z
F. X and Z
G. X, Y and Z
Correct Answer: F
Section: (none)
Explanation
Explanation/Reference:
Explanation: X an Z classes do not define constructors explicitly.
QUESTION 32
Given:
Public static void main (String [] args) {
int a, b, c = 0;
int a, b, c;
int g, int h, int i = 0;
int d, e, F;
int k, l, m; = 0;
Which three declarations will compile?
A. int a, b, c = 0;
B. int a, b, c;
C. int g, int h, int i = 0;
D. int d, e, F;
E. int k, l, m; = 0;
Correct Answer: ABD
Section: (none)
Explanation
Explanation/Reference:
QUESTION 33
Given the code fragment:
int j=0, k =0;
for (int i=0; i < x; i++)
{
do
{
k=0;
while (k < z)
{
k++;
System.out.print(k + " ");
}
System.out.println(" ");
j++;
} while (j < y);
System.out.println("----");
}
What values of x, y, z will produce the following result?
1 2 3 4
1 2 3 4
1 2 3 4
------
1 2 3 4
------
A. X = 4, Y = 3, Z = 2
B. X = 3, Y = 2, Z = 3
C. X = 2, Y = 3, Z = 3
D. X = 4, Y = 2, Z = 3
E. X = 2, Y = 3, Z = 4
Correct Answer: E
Section: (none)
Explanation
Explanation/Reference:
Explanation: Z is for the innermost loop. Should print 1 2 3 4. So Z must be 4. Y is for the middle loop. Should
print three lines of 1 2 3 4. So Y must be set 3. X is for the outmost loop. Should print 2 lines of ----. So X
should be 2.
QUESTION 34
Which statement initializes a stringBuilder to a capacity of 128?
A. StringBuilder sb = new String("128");
B. StringBuilder sb = StringBuilder.setCapacity(128);
C. StringBuilder sb = StringBuilder.getInstance(128);
D. StringBuilder sb = new StringBuilder(128);
Correct Answer: D
Section: (none)
Explanation
Explanation/Reference:
Explanation: StringBuilder(int capacity) Constructs a string builder with no characters in it and an initial capacity
specified by the capacity argument. Note: An instance of a StringBuilder is a mutable sequence of characters.
The principal operations on a StringBuilder are the append and insert methods, which are overloaded so as to
accept data of any type. Each effectively converts a given datum to a string and then appends or inserts the
characters of that string to the string builder. The append method always adds these characters at the end of
the builder; the insert method adds the characters at a specified point.
QUESTION 35
Given:
public class DoCompare4
{
public static void main(String[] args)
{
String[] table = {"aa", "bb", "cc"};
int ii =0;
do
while (ii < table.length)
System.out.println(ii++);
while (ii < table.length);
}
}
What is the result?
A. 0
1
B. 0
1
2
C. 0
1
2
3
D. Compilation fails
Correct Answer: B
Section: (none)
Explanation
Explanation/Reference:
Explanation: table.length is 3. So the do-while loop will run 3 times with ii=0, ii=1 and ii=2. The second while
statement will break the do-loop when ii = 3. Note: The Java programming language provides a do-while
statement, which can be expressed as follows:
do {
statement(s)
} while (expression);
QUESTION 36
A method is declared to take three arguments. A program calls this method and passes only two arguments.
What is the result?
A. Compilation fails.
B. The third argument is given the value null.
C. The third argument is given the value void.
D. The third argument is given the value zero.
E. The third argument is given the appropriate false value for its declared type.
F. An exception occurs when the method attempts to access the third argument.
Correct Answer: A
Section: (none)
Explanation
Explanation/Reference:
Explanation: The problem is noticed at build/compile time. At build you would receive an error message like:
required: int,int,int
found: int,int
QUESTION 37
Given the fragment:
int [] array = {1, 2, 3, 4, 5};
System.arraycopy (array, 2, array, 1, 2);
System.out.print (array [1]);
System.out.print (array[4]);
What is the result?
A. 14
B. 15
C. 24
D. 25
E. 34
F. 35
Correct Answer: F
Section: (none)
Explanation
Explanation/Reference:
Explanation: The two elements 3 and 4 (starting from position with index 2) are copied into position index 1 and
2 in the same array.
After the arraycopy command the array looks like:
{1, 3, 4, 4, 5};
Then element with index 1 is printed: 3
Then element with index 4 is printed: 5
Note: The System class has an arraycopy method that you can use to efficiently copy data from one array into
another:
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
The two Object arguments specify the array to copy from and the array to copy to. The three int arguments
specify the starting position in the source array, the starting position in the destination array, and the number of
array elements to copy.
QUESTION 38
Given the following code fragment:
if (value >= 0) {
if (value != 0)
System.out.print("the ");
else
System.out.print("quick ");
if (value < 10)
System.out.print("brown ");
if (value > 30)
System.out.print("fox ");
else if (value < 50)
System.out.print("jumps ");
else if (value < 10)
System.out.print("over ");
else
System.out.print("the ");
if (value > 10)
System.out.print("lazy ");
} else {
System.out.print("dog ");
}
System.out.print("... ");
}
What is the result if the integer value is 33?
A. The fox jump lazy ...
B. The fox lazy ...
C. Quick fox over lazy ...
D. Quick fox the ....
Correct Answer: B
Section: (none)
Explanation
Explanation/Reference:
Explanation: 33 is greater than 0.
33 is not equal to 0.
the is printed.
33 is greater than 30
fox is printed
33 is greater then 10 (the two else if are skipped)
lazy is printed
finally ... is printed.
QUESTION 39
Which three are advantages of the Java exception mechanism?
A. Improves the program structure because the error handling code is separated from the normal program
function
B. Provides a set of standard exceptions that covers all the possible errors
C. Improves the program structure because the programmer can choose where to handle exceptions
D. Improves the program structure because exceptions must be handled in the method in which they occurred
E. allows the creation of new exceptions that are tailored to the particular program being
Correct Answer: ACE
Section: (none)
Explanation
Explanation/Reference:
Explanation: A: The error handling is separated from the normal program logic.
C: You have some choice where to handle the exceptions.
E: You can create your own exceptions.
QUESTION 40
Given:
public class MyFor3
{
public static void main(String[] args)
{
int [] xx = null;
System.out.println(xx);
}
}
What is the result?
A. null
B. compilation fails
C. Java.lang.NullPointerException
D. 0
Correct Answer: A
Section: (none)
Explanation
Explanation/Reference:
Explanation: An array variable (here xx) can very well have the null value.
Note:
Null is the reserved constant used in Java to represent a void reference i.e a pointer to nothing. Internally it is
just a binary 0, but in the high level Java language, it is a magic constant, quite distinct from zero, that internally
could have any representation.
QUESTION 41
Given:
public class Main
{
public static void main(String[] args)
{
doSomething();
}
private static void doSomething()
{
doSomeThingElse();
}
private static void doSomeThingElse()
{
throw new Exception();
}
}
Which approach ensures that the class can be compiled and run?
A. Put the throw new Exception() statement in the try block of try catch
B. Put the doSomethingElse() method in the try block of a try catch
C. Put the doSomething() method in the try block of a try catch
D. Put the doSomething() method and the doSomethingElse() method in the try block of a try catch
Correct Answer: A
Section: (none)
Explanation
Explanation/Reference:
Explanation: We need to catch the exception in the doSomethingElse() method.
Such as:
private static void doSomeThingElse() {
try {
throw new Exception();}
catch (Exception e)
{}
}
Note: One alternative, but not an option here, is the declare the exception in doSomeThingElse and catch it in
the doSomeThing method.
QUESTION 42
Given:
public class ScopeTest1
{
public static void main(String[] args)
{
doStuff(); // line x1
int x1 = x2; // line x2
int x2 = j; // line x3
}
static void doStuff() {
System.out.println(j); // line x4
}
static int j;
}
Which line causes a compilation error?
A. line x1
B. line x2
C. line x3
D. line x4
Correct Answer: B
Section: (none)
Explanation
Explanation/Reference:
Explanation: The variable x2 is used before it has been declared.
QUESTION 43
Given:
class Overloading {
void x (int i) {
System.out.println("one");
}
void x (String s) {
System.out.println("two");
}
void x (double d) {
System.out.println("three");
}
public static void main(String[] args) {
new Overloading().x (4.0);
}
}
What is the result?
A. One
B. Two
C. Three
D. Compilation fails
Correct Answer: C
Section: (none)
Explanation
Explanation/Reference:
Explanation: In this scenario the overloading method is called with a double/float value, 4.0. This makes the
third overload method to run.
Note:
The Java programming language supports overloading methods, and Java can distinguish between methods
with different method signatures. This means that methods within a class can have the same name if they have
different parameter lists. Overloaded methods are differentiated by the number and the type of the arguments
passed into the method.
QUESTION 44
Which declaration initializes a boolean variable?
A. boolean h = 1;
B. boolean k = 0;
C. boolean m = null;
D. boolean j = (1 < 5) ;
Correct Answer: D
Section: (none)
Explanation
Explanation/Reference:
Explanation: The primitive type boolean has only two possible values: true and false. Here j is set to (1 <5),
which evaluates to true.
QUESTION 45
Given:
public class Basic {
private static int letter;
public static int getLetter();
public static void Main(String[] args) {
System.out.println(getLetter());
}
}
Why will the code not compile?
A. A static field cannot be private.
B. The getLetter method has no body.
C. There is no setletter method.
D. The letter field is uninitialized.
E. It contains a method named Main instead of main
Correct Answer: B
Section: (none)
Explanation
Explanation/Reference:
Explanation: The getLetter() method needs a body public static int getLetter() { }; .
QUESTION 46
Given:
public class Circle
{
double radius;
public double area:
public Circle (double r) { radius = r;}
public double getRadius() {return radius;}
public void setRadius(double r) { radius = r;}
public double getArea() { return /* ??? */;}
}
class App
{
public static void main(String[] args)
{
Circle c1 = new Circle(17.4);
c1.area = Math.PI * c1.getRadius() * c1.getRadius();
}
}
This class is poorly encapsulated. You need to change the circle class to compute and return the area instead.
What three modifications are necessary to ensure that the class is being properly encapsulated?
A. Change the access modifier of the setradius () method to private
B. Change the getArea () method
public double getArea () { return area; }
C. When the radius is set in the Circle constructor and the setRadius () method, recomputed the area and
store it into the area field
D. Change the getRadius () method:
public double getRadius () {
area = Math.PI * radius * radius;
return radius;}
Correct Answer: ABC
Section: (none)
Explanation
Explanation/Reference:
Explanation: A: There is no need to have SetRadius as public as the radius can be set through the Circle
method.
B: We need to return the area in the GetArea method.
C: When the radius changes the Area must change as well.
Incorrect answer:
D: the GetRadius() method does not change the radius, so there is no need to recomputed the area.
QUESTION 47
Given a code fragment:
StringBuilder sb = new StringBuilder ();
String h1 = "HelloWorld";
sb.append("Hello").append ("world");
if (h1 == sb.toString()) {
System.out.println("They match");
}
if (h1.equals(sb.toString())) {
System.out.println("They really match");
}
What is the result?
A. They match
They really match
B. They really match
C. They match
D. Nothing is printed to the screen
Correct Answer: D
Section: (none)
Explanation
Explanation/Reference:
Explanation: Strings can not be compared with the usual <, <=, >, or >= operators, and the == and != operators
don't compare the characters in the strings. So the first if statement fails.
Equals works fine on strings. But it does not work here.The second if-statement also fails. The StringBuffer
class does not override the equals method so it uses the equals method of Object. If a and b are two objects
from a class which doesn't override equals, thena.equals(b) is the same as a == b
QUESTION 48
Given the following code:
public class Simple { /* Line 1 */
public float price; /* Line 2 */
public static void main (String[] args) { /* Line 3 */
Simple price = new Simple (); /* Line 4 */
price = 4; /* Line 5 */
} /* Line 6 */
} /* Line 7 */
What will make this code compile and run?
A. Change line 2 to the following:
Public int price
B. Change line 4 to the following:
int price = new simple ();
C. Change line 4 to the following:
Float price = new simple ();
D. Change line 5 to the following:
Price = 4f;
E. Change line 5 to the following:
price.price = 4;
F. Change line 5 to the following:
Price = (float) 4:
G. Change line 5 to the following:
Price = (Simple) 4;
H. The code compiles and runs properly; no changes are necessary
Correct Answer: E
Section: (none)
Explanation
Explanation/Reference:
Explanation: price.price =4; is correct, not price=4; The attribute price of the instance must be set, not the
instance itself.
QUESTION 49
Given:
public class DoWhile {
public static void main (String [] args) {
int ii = 2;
do {
System.out.println (ii);
} while (--ii);
}
}
What is the result?
A. 1
B. 2
C. null
D. an infinite loop
E. compilation fails
Correct Answer: E
Section: (none)
Explanation
Explanation/Reference:
Explanation: The line while (--ii); will cause the compilation to fail.
--ii is not a boolean value.
A correct line would be while (--ii>0);
QUESTION 50
You are writing a method that is declared not to return a value. Which two are permitted in the method body?
A. omission of the return statement
B. return null;
C. return void;
D. return;
Correct Answer: AD
Section: (none)
Explanation
Explanation/Reference:
Explanation: Any method declared void doesn't return a value. It does not need to contain a return statement,
but it may do so. In such a case, a return statement can be used to branch out of a control flow block and exit
the method and is simply used like this:
return;
QUESTION 51
Identify two benefits of using ArrayList over array in software development.
A. reduces memory footprint
B. implements the Collection API
C. is multi.thread safe
D. dynamically resizes based on the number of elements in the list
Correct Answer: AD
Section: (none)
Explanation
Explanation/Reference:
Explanation: ArrayList supports dynamic arrays that can grow as needed. In Java, standard arrays are of a
fixed length. After arrays are created, they cannot grow or shrink, which means that you must know in advance
how many elements an array will hold. But, sometimes, you may not know until run time precisely how large of
an array you need. To handle this situation, the collections framework defines ArrayList. In essence, an
ArrayList is a variable-length array of object references. That is, an ArrayList can dynamically increase or
decrease in size. Array lists
are created with an initial size. When this size is exceeded, the collection is automatically enlarged. When
objects are removed, the array may be shrunk.
QUESTION 52
Which three are valid types for switch?
A. int
B. float
C. double
D. Integer
E. String
F. Float
Correct Answer: ADE
Section: (none)
Explanation
Explanation/Reference:
Explanation: A switch works with the byte, short, char, and int primitive data types. It also works with
enumerated types the String class, and a few special classes that wrap certain primitive types: Character, Byte,
Short, and Integer.
QUESTION 53
Give:
public class MyFive {
static void main(String[] args) {
short ii;
short jj = 0;
for (ii = kk;ii > 6; ii -= 1) { // line x //
jj++;
}
System.out.println("jj = " + jj);
}
}
What value should replace KK in line x to cause jj = 5 to be output?
A. -1
B. 1
C. 5
D. 8
E. 11
Correct Answer: E
Section: (none)
Explanation
Explanation/Reference:
Explanation: We need to get jj to 5. It is initially set to 0. So we need to go through the for loop 5 times. The for
loops ends when ii > 6 and ii decreases for every loop. So we need to initially set ii to 11. We set kk to 11.
QUESTION 54
Given the code fragment:
Boolean b1 = true;
Boolean b2 = false;
int 1 = 0;
while (foo) {}
Which one is valid as a replacement for foo?
A. b1.compareTo(b2)
B. i = 1
C. i == 2? -1:0
D. "foo".equals("bar")
Correct Answer: D
Section: (none)
Explanation
Explanation/Reference:
Explanation: equals works fine on strings. equals produces a Boolean value.
QUESTION 55
Given:
public class SuperTest
{
public static void main(String[] args)
{
statement1
statement2
statement3
}
}
class Shape
{
public Shape()
{
System.out.println("Shape: constructor");
}
public void foo()
{
System.out.println("Shape: foo");
}
}
class Square extends Shape
{
public Square()
{
super();
}
public Square(String label)
{
System.out.println("Square: constructor");
}
public void foo()
{
super.foo();
}
public void foo(String label)
{
System.out.println("Square: foo");
}
}
What should statement1, statement2, and statement3, be respectively, in order to produce the result:
Shape: constructor
Square: foo
Shape: foo
A. Square square = new Square ("bar");
square.foo ("bar");
square.foo();
B. Square square = new Square ("bar");
square.foo ("bar");
square.foo ("bar");
C. Square square = new Square ();
square.foo ();
square.foo(bar);
D. Square square = new Square ();
square.foo ();
square.foo("bar");
E. Square square = new Square ();
square.foo ();
square.foo ();
F. Square square = new Square ();
square.foo("bar");
square.foo ();
Correct Answer: F
Section: (none)
Explanation
Explanation/Reference:
QUESTION 56
Give:
Public Class Test {
}
Which two packages are automatically imported into the java source file by the java compiler?
A. Java.lang
B. Java.awt
C. Javax.net
D. Java.*
E. The package with no name
Correct Answer: AE
Section: (none)
Explanation
Explanation/Reference:
Explanation: For convenience, the Java compiler automatically imports three entire packages for each source
file: (1) the package with no name, (2) the java.lang package, and (3) the current package (the package for the
current file).
Note:Packages in the Java language itself begin with java. or javax.
QUESTION 57
Given:
public class X implements Z
{
public String toString()
{
return "I am X";
}
public static void main(String[] args)
{
Y myY = new Y();
X myX = myY;
Z myZ = myX;
System.out.println(myZ);
}
}
class Y extends X
{
public String toString()
{
return "I am Y";
}
}
interface Z { }
What is the reference type of myZ and what is the type of the object it references?
A. Reference type is Z; object type is Z.
B. Reference type is Y; object type is Y.
C. Reference type is Z; object type is Y.
D. Reference type is X; object type is Z.
Correct Answer: C
Section: (none)
Explanation
Explanation/Reference:
Explanation: Note: Because Java handles objects and arrays by reference, classes and array types are known
as reference types.
QUESTION 58
Given:
class SampleClass
{
}
class AnotherSampleClass extends SampleClass
{
}
class Test
{
public static void main(String[] args)
{
SampleClass sc = new SampleClass();
AnotherSampleClass asc = new AnotherSampleClass();
sc = asc;
System.out.println("sc: " + sc.getClass());
System.out.println("asc: " + asc.getClass());
}
}
What is the result?
A. sc: class.Object
asc: class.AnotherSampleClass
B. sc: class.SampleClass
asc: class.AnotherSampleClass
C. sc: class.AnotherSampleClass
asc: class.SampleClass
D. sc: class.AnotherSampleClass
asc: class.AnotherSampleClass
Correct Answer: D
Section: (none)
Explanation
Explanation/Reference:
Explanation: Note: The getClass method Returns the runtime class of an object. That Class object is the object
that is locked by static synchronized methods of the represented class.
Note: Because Java handles objects and arrays by reference, classes and array types are known as reference
types.
QUESTION 59
Given the code fragment:
public static void main(String[] args)
{
String [] table = {"aa", "bb", "cc"};
int ii = 0;
for (String ss:table)
{
while (ii < table.length)
{
System.out.println (ii);
ii++;
break;
}
}
}
How many times is 2 printed?
A. zero
B. once
C. twice
D. thrice
E. it is not printed because compilation fails
Correct Answer: B
Section: (none)
Explanation
Explanation/Reference:
Explanation: The outer loop will run three times, one time each for the elements in table. The break statement
breaks the inner loop immediately each time. 2 will be printed once only.
Note: If the line int ii = 0; is missing the program would not compile.
QUESTION 60
Given:
public class SampleClass
{
public static void main(String[] args)
{
SampleClass sc, scA, scB;
sc = new SampleClass();
scA = new SampleClassA();
scB = new SampleClassB();
System.out.println("Hash is : " + sc.getHash() + ", " + scA.getHash() + ", " + scB.getHash());
}
public int getHash()
{
return 111111;
}
}
class SampleClassA extends SampleClass
{
public long getHash()
{
return 44444444;
}
}
class SampleClassB extends SampleClass
{
public long getHash()
{
return 999999999;
}
}
What is the result?
A. Compilation fails
B. An exception is thrown at runtime
C. There is no result because this is not correct way to determine the hash code "Pass Any Exam. Any Time." -
www.actualtests.com 51
Oracle 1z0-803 Exam
D. Hash is: 111111, 44444444, 999999999
Correct Answer: A
Section: (none)
Explanation
Explanation/Reference:
Explanation: The compilation fails as SampleClassA and SampleClassB cannot override SampleClass because
the return type of SampleClass is int, while the return type of SampleClassA and SampleClassB is long.
Note: If all three classes had the same return type the output would be:
Hash is : 111111, 44444444, 999999999
QUESTION 61
Which two will compile, and can be run successfully using the command:
Java fred1 hello walls
A. class Fred1{
public static void main (String args) {
System.out.println(args[1]);
}
}
B. class Fred1{
public static void main (String [] args) {
System.out.println(args[2]);
}
}
C. class Fred1 {
public static void main (String [] args) {
System.out.println (args);
}
}
D. class Fred1 {
public static void main (String [] args) {
System.out.println (args [1]);
}
}
Correct Answer: CD
Section: (none)
Explanation
Explanation/Reference:
Explanation: Throws java.lang.ArrayIndexOutOfBoundsException: 2 at certquestions.Fred1.main(Fred1.java:3)
C. Prints out: [Ljava.lang.String;@39341183
D. Prints out: walls
QUESTION 62
Given:
public abstract class Wow {
private int wow;
public wow (int wow) {
this.wow = wow;
}
public void wow () {}
private void wowza () {}
}
What is true about the class Wow?
A. It compiles without error.
B. It does NOT compile because an abstract class CANNOT have private methods.
C. It does NOT compile because an abstract class CANNOT have instance variables.
D. It does NOT compile because an abstract class must have at least one abstract method.
E. It does NOT compile because an abstract class must have a constructor with no arguments.
Correct Answer: C
Section: (none)
Explanation
Explanation/Reference:
Explanation: An abstract class is a class that is declared abstract--it may or may not include abstract methods
(not B, not D). Abstract classes cannot be instantiated, but they can be subclassed.
The code compiles with a failure for line 'public wow (int wow) {}
QUESTION 63
Given:
class X
{
static void m(int i)
{
}
public static void main(String[] args)
{
int j = 12;
m (j);
System.out.println(j);
}
}
What is the result?
A. 7
B. 12
C. 19
D. Compilation fails
E. An exception is thrown at run time
Correct Answer: B
Section: (none)
Explanation
Explanation/Reference:
Explanation:
QUESTION 64
Which two statements are true?
A. An abstract class can implement an interface.
B. An abstract class can be extended by an interface.
C. An interface CANNOT be extended by another interface.
D. An interface can be extended by an abstract class.
E. An abstract class can be extended by a concrete class.
F. An abstract class CANNOT be extended by an abstract class.
Correct Answer: AE
Section: (none)
Explanation
Explanation/Reference:
Explanation: Reference: http://docs.oracle.com/javase/tutorial/java/IandI/abstract.htm
QUESTION 65
Given:
class Overloading {
int x(double d) {
System.out.println("one");
return 0;
}
String x(double d) {
System.out.println("two");
return null;
}
double x(double d) {
System.out.println("three");
return 0.0;
}
public static void main(String[] args) {
new Overloading().x(4.0)
}
}
What is the result?
A. One
B. Two
C. Three
D. Compilation fails
Correct Answer: D
Section: (none)
Explanation
Explanation/Reference:
Explanation: overloading of the x method fails as the input argument in all three cases are double. To use
overloading of methods the argument types must be different.
Note: The Java programming language supports overloading methods, and Java can distinguish between
methods with different method signatures. This means that methods within a class can have the same name if
they have different parameter lists
QUESTION 66
The catch clause argument is always of type___________.
A. Exception
B. Exception but NOT including RuntimeException
C. Throwable
D. RuntimeException
E. CheckedException
F. Error
Correct Answer: C
Section: (none)
Explanation
Explanation/Reference:
Explanation: Because all exceptions in Java are the sub-class ofjava.lang.Exception class, you can have a
single catch block that catches an exception of type Exception only. Hence the compiler is fooled into thinking
that this block can handle any exception.
See the following example:
try
{
// ...
}
catch(Exception ex)
{
// Exception handling code for ANY exception
}
You can also use the java.lang.Throwable class here, since Throwable is the parent class for the applicationspecific
Exception classes. However, this is discouraged in Java programming circles. This is because
Throwable happens to also be the parent class for the non-application specific Error classes which are not
meant to be handled explicitly as they are catered for by the JVM itself.
Note: The Throwable class is the superclass of all errors and exceptions in the Java language. Only objects
that are instances of this class (or one of its subclasses) are thrown by the Java Virtual Machine or can be
thrown by the Java throw statement. A throwable contains a snapshot of the execution stack of its thread at the
time it was created. It can also contain a message string that gives more information about the error.
QUESTION 67
Given the code fragment:
1. ArrayList<Integer> list = new ArrayList<>(1);
2. list.add(1001);
3. list.add(1002);
4. System.out.println(list.get(list.size()));
What is the result?
A. Compilation fails due to an error on line 1.
B. An exception is thrown at run time due to error on line 3
C. An exception is thrown at run time due to error on line 4
D. 1002
Correct Answer: C
Section: (none)
Explanation
Explanation/Reference:
Explanation: The code compiles fine.
At runtime an IndexOutOfBoundsException is thrown when the second list item is added.
QUESTION 68
View the Exhibit.
public class Hat {
public int ID =0;
public String name = "hat";
public String size = "One Size Fit All";
public String color="";
public String getName() { return name; }
public void setName(String name) {
this.name = name;
}
}
Given
public class TestHat {
public static void main(String[] args) {
Hat blackCowboyHat = new Hat();
}
}
Which statement sets the name of the Hat instance?
A. blackCowboyHat.setName = "Cowboy Hat";
B. setName("Cowboy Hat");
C. Hat.setName("Cowboy Hat");
D. blackCowboyHat.setName("Cowboy Hat");
Correct Answer: D
Section: (none)
Explanation
Explanation/Reference:
Explanation:
QUESTION 69
Given:
public class Two
{
public static void main(String[] args)
{
try
{
doStuff();
system.out.println("1");
}
catch
{
system.out.println("2");
}
}
public static void do Stuff()
{
if (Math.random() > 0.5) throw new RunTimeException(); doMoreStuff();
System.out.println("3 ");
}
public static void doMoreStuff()
{
System.out.println("4");
}
}
Which two are possible outputs?
A. 2
B. 4 3 1
C. 1 2 3
D. 1 3 4
Correct Answer: AB
Section: (none)
Explanation
Explanation/Reference:
Explanation:
QUESTION 70
Given:
public class MyFor
{
public static void main(String[] args)
{
for (int ii = 0; ii < 4; ii++)
{
System.out.println("ii = "+ ii);
ii = ii +1;
}
}
}
What is the result?
A. ii = 0
ii = 2
B. ii = 0
ii = 1
ii = 2
ii = 3
C. ii =
D. Compilation fails.
Correct Answer: A
Section: (none)
Explanation
Explanation/Reference:
Explanation:
QUESTION 71
Given the code fragment:
int [][] array2d = new int[2][3];
System.out.println("Loading the data.");
for ( int x = 0; x < array2d.length; x++)
{
for ( int y = 0; y < array2d[0].length; y++)
{
System.out.println(" x = " + x);
System.out.println(" y = " + y);
// insert load statement here.
}
}
System.out.println("Modify the data. ");
for ( int x = 0; x < array2d.length; x++)
{
for ( int y = 0; y < array2d[0].length; y++)
{
System.out.println(" x = " + x);
System.out.println(" y = " + y);
// insert modify statement here.
}
}
Which pair of load and modify statement should be inserted in the code? The load statement should set the
array's x row and y column value to the sum of x and y
The modify statement should modify the array's x row and y column value by multiplying it by 2
A. Load statement: array2d(x,y) = x + y;
Modify statement: array2d(x,y) = array2d(x,y) * 2
B. Load statement: array2d[x y] = x + y;
Modify statement: array2d[x y] = array2d[x y] * 2
C. Load statement: array2d[x,y] = x + y;
Modify statement: array2d[x,y] = array2d[x,y] * 2
D. Load statement: array2d[x][y] = x + y;
Modify statement: array2d[x][y] = array2d[x][y] * 2
E. Load statement: array2d[[x][y]] = x + y;
Modify statement: array2d[[x][y]] = array2d[[x][y]] * 2
Correct Answer: D
Section: (none)
Explanation
Explanation/Reference:
Explanation:
QUESTION 72
Given:
public class DoBreak1
{
public static void main(String[] args)
{
String[] table = {"aa", "bb", "cc", "dd"};
for (String ss: table)
{
if ( "bb".equals(ss))
{
continue;
}
System.out.println(ss);
if ( "cc".equals(ss))
{
break;
}
}
}
}
What is the result?
A. aa
cc
B. aa
bb
cc
C. cc
dd
D. cc
E. Compilation fails.
Correct Answer: A
Section: (none)
Explanation
Explanation/Reference:
Explanation:
QUESTION 73
1. class StaticMethods {
2. static void one() {
3. two();
4. StaticMethods.two();
5. three();
6. StaticMethods.four();
7. }
8. static void two() { }
9. void three() {
10. one();
11. StaticMethods.two();
12. four();
13. StaticMethods.four();
14. }
15. void four() { }
16. }
Which three lines are illegal?
A. line 3
B. line 4
C. line 5
D. line 6
E. line 10
F. line 11
G. line 12
H. line 13
Correct Answer: CDH
Section: (none)
Explanation
Explanation/Reference:
Explanation:
QUESTION 74
Which is a valid abstract class?
A. public abstract class Car {
protected void accelerate();
}
B. public interface Car {
protected abstract void accelerate();
}
C. public abstract class Car {
protected final void accelerate();
}
D. public abstract class Car {
protected abstract void accelerate();
}
E. public abstract class Car {
protected abstract void accelerate() {
//more car can do
}}
Correct Answer: D
Section: (none)
Explanation
Explanation/Reference:
Explanation:
QUESTION 75
View the exhibit:
public class Student
{
public String name = "";
public int age = 0;
public String major = "Undeclared";
public boolean fulltime = true;
public void display()
{
System.out.println("Name: " + name + " Major: " + major);
}
public boolean isFullTime()
{
return fulltime;
}
}
Given:
Public class TestStudent
{
public static void main(String[] args)
{
Student bob = new Student ();
bob.name = "Bob";
bob.age = 18;
bob.year = 1982;
}
}
What is the result?
A. year is set to 1982.
B. bob.year is set to 1982
C. A runtime error is generated.
D. A compile time error is generated.
Correct Answer: D
Section: (none)
Explanation
Explanation/Reference:
Explanation:
QUESTION 76
Given the code fragment:
String name = "Spot";
int age = 4;
String str ="My dog " + name + " is " + age;
System.out.println(str);
And
StringBuilder sb = new StringBuilder();
Using StringBuilder, which code fragment is the best potion to build and print the following string My dog Spot is
4
A. sb.append("My dog " + name + " is " + age);
System.out.println(sb);
B. sb.insert("My dog ").append( name + " is " + age);
System.out.println(sb);
C. sb.insert("My dog ").insert( name ).insert(" is " ).insert(age);
System.out.println(sb);
D. sb.append("My dog ").append( name ).append(" is " ).append(age);
System.out.println(sb);
Correct Answer: AD
Section: (none)
Explanation
Explanation/Reference:
Explanation:
QUESTION 77
Given:
public class Main {
public static void main(String[] args) {
try {
doSomething();
}
catch (SpecialException e) {
System.out.println(e);
}}
static void doSomething() {
int [] ages = new int[4];
ages[4] = 17;
doSomethingElse();
}
static void doSomethingElse() {
throw new SpecialException("Thrown at end of doSomething() method"); }
}
What is the output?
A. SpecialException: Thrown at end of doSomething() method
B. Error in thread "main" java.lang.
ArrayIndexOutOfBoundseror
C. Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
at Main.doSomething(Main.java:12)
at Main.main(Main.java:4)
D. SpecialException: Thrown at end of doSomething() method at Main.doSomethingElse(Main.java:16)
at Main.doSomething(Main.java:13)
at Main.main(Main.java:4)
Correct Answer: C
Section: (none)
Explanation
Explanation/Reference:
Explanation: The following line causes a runtime exception (as the index is out of bounds): ages[4] = 17;
A runtime exception is thrown as an ArrayIndexOutOfBoundsException.
Note: The third kind of exception (compared to checked exceptions and errors) is the runtime exception.
These are exceptional conditions that are internal to the application, and that the application usually cannot
anticipate or recover from. These usually indicate programming bugs, such as logic errors or improper use of
an API.
Runtime exceptions are not subject to the Catch or Specify Requirement. Runtime exceptions are those
indicated by RuntimeException and its subclasses.
QUESTION 78
View the exhibit:
public class Student {
public String name = "";
public int age = 0;
public String major = "Undeclared";
public boolean fulltime = true;
public void display() {
System.out.println("Name: " + name + " Major: " + major); }
public boolean isFullTime() {
return fulltime;
}
}
Which line of code initializes a student instance?
A. Student student1;
B. Student student1 = Student.new();
C. Student student1 = new Student();
D. Student student1 = Student();
Correct Answer: C
Section: (none)
Explanation
Explanation/Reference:
Explanation:
QUESTION 79
int [] array = {1,2,3,4,5};
for (int i: array) {
if ( i < 2) {
keyword1 ;
}
System.out.println(i);
if ( i == 3) {
keyword2 ;
}}
What should keyword1 and keyword2 be respectively, in oreder to produce output 2345?
A. continue, break
B. break, break
C. break, continue
D. continue, continue
Correct Answer: D
Section: (none)
Explanation
Explanation/Reference:
Explanation:
QUESTION 80
int i, j=0;
i = (3* 2 + 4 +5 ) ;
j = (3 * ((2 + 4) + 5));
System.out.println("i:"+ i + "\nj": + j);
What is the result?
A. i:16
j:16
B. 16
C. i:15
j:33
D. 33
E. i:16
j:33
F. 15
G. i:15
j:16
H. 23
Correct Answer: C
Section: (none)
Explanation
Explanation/Reference:
Explanation: It is obvious!
QUESTION 81
boolean log3 = ( 5.0 != 6.0) && ( 4 != 5);
boolean log4 = (4 != 4) || (4 == 4);
System.out.println("log3:"+ log3 + \nlog4" + log4);
What is the result?
A. log3:false
log4:true
B. log3:true
log4:true
C. log3:true
log4:false
D. log3:false
log4:false
Correct Answer: B
Section: (none)
Explanation
Explanation/Reference:
Explanation:
QUESTION 82
Which statement will emoty the contents of a StringBuilder variable named sb?
A. sb.deleteAll();
B. sb.delete(0, sb.size());
C. sb.delete(0, sb.length());
D. sb.removeAll();
Correct Answer: C
Section: (none)
Explanation
Explanation/Reference:
Explanation:
QUESTION 83
Class StaticField {
static int i = 7;
public static void main(String[] args) {
StaticFied obj = new StaticField();
obj.i++;
StaticField.i++;
obj.i++;
System.out.println(StaticField.i + " "+ obj.i);
}
}
What is the result?
A. 10 10
B. 8 9
C. 9 8
D. 7 10
Correct Answer: A
Section: (none)
Explanation
Explanation/Reference:
Explanation:
QUESTION 84
Which two are valid array declaration?
A. Object array[];
B. Boolean array[3];
C. int[] array;
D. Float[2] array;
Correct Answer: AC
Section: (none)
Explanation
Explanation/Reference:
Explanation:
QUESTION 85
Given:
class Overloading {
int x(double d) {
System.out.println("one");
return 0;
}
String x(double d) {
System.out.println("two");
return null;
}
double x(double d) {
System.out.println("three");
return 0.0;
}
public static void main(String[] args) {
new Overloading().x(4.0);
}
}
What is the result?
A. one
B. two
C. three
D. Compilation fails.
Correct Answer: D
Section: (none)
Explanation
Explanation/Reference:
Explanation:
QUESTION 86
Given:
public class MainMethod {
void main() {
System.out.println("one");
}
static void main(String args) {
System.out.println("two");
}
public static void main(String[] args) {
System.out.println("three");
}
void main(Object[] args) {
System.out.println("four");
}
}
What is printed out when the program is excuted?
A. one
B. two
C. three
D. four
Correct Answer: C
Section: (none)
Explanation
Explanation/Reference:
Explanation:
QUESTION 87
Given:
public class ScopeTest {
int j, int k;
public static void main(String[] args) {
ew ScopeTest().doStuff(); }
void doStuff() {
nt x = 5;
oStuff2();
System.out.println("x");
}
void doStuff2() {
nt y = 7;
ystem.out.println("y");
or (int z = 0; z < 5; z++) {
ystem.out.println("z");
ystem.out.println("y");
}
Which two items are fields?
A. j
B. k
C. x
D. y
E. z
Correct Answer: AB
Section: (none)
Explanation
Explanation/Reference:
Explanation:
QUESTION 88
A method is declared to take three arguments. A program calls this method and passes only two arguments.
What is the results?
A. Compilation fails.
B. The third argument is given the value null.
C. The third argument is given the value void.
D. The third argument is given the value zero.
E. The third argument is given the appropriate falsy value for its declared type.
F. An exception occurs when the method attempts to access the third argument.
Correct Answer: A
Section: (none)
Explanation
Explanation/Reference:
Explanation:
QUESTION 89
public class ForTest {
public static void main(String[] args) {
int[] arrar = {1,2,3};
for ( foo ) {
}
}
}
Which three are valid replacements for foo so that the program will compiled and run?
A. int i: array
B. int i = 0; i < 1; i++
C. ;;
D. ; i < 1; i++
E. ; i < 1;
Correct Answer: ABC
Section: (none)
Explanation
Explanation/Reference:
Explanation:
QUESTION 90
Given:
public class SampleClass {
public static void main(String[] args) {
AnotherSampleClass asc = new AnotherSampleClass(); SampleClass sc = new SampleClass();
sc = asc;
System.out.println("sc: " + sc.getClass());
System.out.println("asc: " + asc.getClass());
}}
class AnotherSampleClass extends SampleClass {
}
What is the result?
A. sc: class Object
asc: class AnotherSampleClass
B. sc: class SampleClass
asc: class AnotherSampleClass
C. sc: class AnotherSampleClass
asc: class SampleClass
D. sc: class AnotherSampleClass
asc: class AnotherSampleClass
Correct Answer: D
Section: (none)
Explanation
Explanation/Reference:
Explanation:
QUESTION 91
Given the code fragment:
int b = 3;
if ( !(b > 3)) {
System.out.println("square ");
}{
System.out.println("circle ");
}
System.out.println("...");
What is the result?
A. square...
B. circle...
C. squarecircle...
D. Compilation fails.
Correct Answer: C
Section: (none)
Explanation
Explanation/Reference:
Explanation:
QUESTION 92
What is the proper way to defined a method that take two int values and returns their sum as an int value?
A. int sum(int first, int second) { first + second; }
B. int sum(int first, second) { return first + second; }
C. sum(int first, int second) { return first + second; }
D. int sum(int first, int second) { return first + second; }
E. void sum (int first, int second) { return first + second; }
Correct Answer: D
Section: (none)
Explanation
Explanation/Reference:
Explanation:
QUESTION 93
Which two are Java Exception classes?
A. SecurityException
B. DuplicatePathException
C. IllegalArgumentException
D. TooManyArgumentsException
Correct Answer: AC
Section: (none)
Explanation
Explanation/Reference:
Explanation:
QUESTION 94
Given the for loop construct:
for ( expr1 ; expr2 ; expr3 ) {
statement;
}
Which two statements are true?
A. This is not the only valid for loop construct; there exits another form of for loop constructor.
B. The expression expr1 is optional. it initializes the loop and is evaluated once, as the loop begin.
C. When expr2 evaluates to false, the loop terminates. It is evaluated only after each iteration through the loop.
D. The expression expr3 must be present. It is evaluated after each iteration through the loop.
Correct Answer: BC
Section: (none)
Explanation
Explanation/Reference:
Explanation:
The for statement have this forms:
for (init-stmt; condition; next-stmt) {
body
}
There are three clauses in the for statement.
The init-stmt statement is done before the loop is started, usually to initialize an iteration variable. The condition
expression is tested before each time the loop is done. The loop isn't executed if the boolean expression is
false (the same as the while loop). The next-stmt statement is done after the body is executed. It typically
increments an iteration variable.
QUESTION 95
public class StringReplace {
public static void main(String[] args) {
String message = "Hi everyone!";
System.out.println("message = " + message.replace("e", "X")); }
}
What is the result?
A. message = Hi everyone!
B. message = Hi XvXryonX!
C. A compile time error is produced.
D. A runtime error is produced.
E. message =
F. message = Hi Xveryone!
Correct Answer: B
Section: (none)
Explanation
Explanation/Reference:
Explanation:
QUESTION 96
Which two statements are true for a two-dimensional array?
A. It is implemented as an array of the specified element type.
B. Using a row by column convention, each row of a two-dimensional array must be of the same size
C. At declaration time, the number of elements of the array in each dimension must be specified
D. All methods of the class Object may be invoked on the two-dimensional array.
Correct Answer: AD
Section: (none)
Explanation
Explanation/Reference:
Explanation:
QUESTION 97
Which three statements are benefits of encapsulation?
A. allows a class implementation to change without changing the clients
B. protects confidential data from leaking out of the objects
C. prevents code from causing exceptions
D. enables the class implementation to protect its invariants
E. permits classes to be combined into the same package
F. enables multiple instances of the same class to be created safely
Correct Answer: ABD
Section: (none)
Explanation
Explanation/Reference:
Explanation:
QUESTION 98
Which code fragment cause a compilation error?
A. float flt = 100F;
B. float flt = (float) 1_11.00;
C. float flt = 100;
D. double y1 = 203.22;
float flt = y1;
E. int y2 = 100;
float flt = (float) y2;
Correct Answer: D
Section: (none)
Explanation
Explanation/Reference:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Type mismatch: cannot convert from double to float
QUESTION 99
Given the code fragment:
String[] colors = {"red", "blue", "green", "yellow", "maroon", "cyan"};
A. for (String c:colors) {
if (c.length() != 4) {
continue;
}
System.out.print(c + ", ");
}
B. for (String c:colors[]) {
if (c.length() <= 4) {
continue;
}
System.out.print(c + ", ");
}
C. for (String c: String[] colors) {
if (c.length() >= 3) {
continue;
}
System.out.print(c + ", ");
}
D. for (String c:colors) {
if (c.length() != 4) {
System.out.print(c + ", ");
continue;
}
}
Correct Answer: A
Section: (none)
Explanation
Explanation/Reference:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Type mismatch: cannot convert from double to float
QUESTION 100
Given:
class X {
static void m (int[] i) {
i[0] += 7;
}
public static void main (String[] args) {
int[] j = new int[1];
j[0] = 12;
m(j);
System.out.println(j[0]);
}
}
A. 7
B. 12
C. 19
D. Compilation fails.
E. An exception is thrown at runtime.
Correct Answer: C
Section: (none)
Explanation
Explanation/Reference:
QUESTION 101
Given:
class MarksOutOfBoundsException extends IndexOutOfBoundsException { }
public class GradingProcess {
void verify(int marks) throws IndexOutOfBoundsException { if (marks > 100) {
throw new MarksOutOfBoundsException();
}
if (marks > 50) {
System.out.print("Pass");
} else {
System.out.print("Fail");
}
}
public static void main(String[] args) {
int marks = Integer.parseInt(args[2]);
try {
new GradingProcess().verify(marks);
} catch (Exception e) {
System.out.print(e.getClass());
}
}
}
And the command line invocation:
java GradingProcess 89 50 104
What is the result?
A. Pass
B. Fail
C. class MarksOutOfBoundsException
D. class IndexOutOfBoundsException
E. class Exception
Correct Answer: C
Section: (none)
Explanation
Explanation/Reference:
QUESTION 102
Given:
1. interface Pet { }
2. class Dog implements Pet { }
3. class Beagle extends Dog { }
Which three are valid?
A. Pet a = new Dog();
B. Pet b = new Pet();
C. Dog f = new Pet();
D. Dog d = new Beagle();
E. Pet e = new Beagle();
F. Beagle c = new Dog();
Correct Answer: ADE
Section: (none)
Explanation
Explanation/Reference:
QUESTION 103
Given the code fragment:
StringBuilder sb = new StringBuilder();
sb.append("World");
Which fragment prints Hello World?
A. sb.insert(0, "Hello ");
System.out.println(sb);
B. sb.append(0, "Hello ");
System.out.println(sb);
C. sb.add(0, "Hello ");
System.out.println(sb);
D. sb.set(0, "Hello ");
System.out.println(sb);
Correct Answer: A
Section: (none)
Explanation
Explanation/Reference:
QUESTION 104
Given:
package pkg1;
class Bb { }
public class Ee {
private Ee() { }
}
package pkg2;
final class Ww;
package pkg3;
public abstract class Dd { void m() { } }
And,
1. package pkg4;
2. import pkg1.*;
3. import pkg2.*;
4. import pkg3.*;
5. // insert a class definition here
Which two class definitions, when inserted independently at line 5, enable the code to compile?
A. class Cc extends Bb { }
B. class Cc extends Ww { }
C. class Cc extends Ee { }
D. class Cc extends Dd { }
Correct Answer: AD
Section: (none)
Explanation
Explanation/Reference:
QUESTION 105
Given the code fragment:
class Student {
String name;
int age;
}
And,
1. public class Test {
2. public static void main (String[] args) {
3. Student s1 = new Student();
4. Student s2 = new Student();
5. Student s3 = new Student();
6. s1 = s3;
7. s3 = s2;
8. s2 = null;
9. }
10. }
Which statement is true?
A. After line 8, three objects are eligible for garbage collection.
B. After line 8, two objects are eligible for garbage collection.
C. After line 8, one object is eligible for garbage collection.
D. After line 8, none of the objects are eligible for garbage collection.
Correct Answer: A
Section: (none)
Explanation
Explanation/Reference:
QUESTION 106
Given:
public class Test {
public static void main (String[] args) {
char[] arr = {97, '\t', 'e', '\n', 'i', '\t', 'o'};
for (char var: arr) {
System.out.print(var);
}
System.out.print("\nThe length is :" + arr.length);
}
}
What is the result?
A. a e
The length is : 2
B. a e
i o
The length is : 4
C. aeio
The length is : 4
D. a e
i o
The length is : 7
E. Compilation fails.
Correct Answer: D
Section: (none)
Explanation
Explanation/Reference:
QUESTION 107
Given the class definitrions:
class Shape { }
class Square extends Shape { }
Given the variable declarations:
Shape shape1 = null;
Square square1 = null;
Which four compile?
A. shape1 = (Square) new Square();
B. shape1 = new Square();
C. square1 = (Square) new Shape();
D. square1 = new Shape();
E. square1 = new Square();
shape1 = square1;
F. shape1 = new Shape();
square1 = shape1;
Correct Answer: ABCE
Section: (none)
Explanation
Explanation/Reference:
QUESTION 108
Given the code fragments:
9. class Student {
10. int rollnumber;
11. String name;
12. List courses = new ArrayList();
13. // insert code fragment here
14. public String toString() {
15. return rollnumber + " : " + name + " : " + courses;
16. }
17. }
And,
public class Test {
public static void main (String[] args) {
List cs = new ArrayList();
cs.add("Java");
cs.add("C");
Student s = new Student(123,"Fred",cs);
System.out.println(s);
}
}
Which code fragment, when inserted at line 13, enables class Test to print 123 : Fred : [Java, C] ?
A. private Student(int i, String name, List cs) {
/* initialization code goes here */
}
B. public void Student(int i, String name, List cs) {
/* initialization code goes here */
}
C. Student(int i, String name, List cs) {
/* initialization code goes here */
}
D. Student(int i, String name, ArrayList cs) {
/* initialization code goes here */
}
Correct Answer: C
Section: (none)
Explanation
Explanation/Reference:
QUESTION 109
Given:
public class Test2 {
public static void main (String[] args) {
int ar1[] = {2, 4, 6, 8};
int ar2[] = {1, 3, 5, 7, 9};
ar2 = ar1;
for (int e2 : ar2) {
System.out.print(" " + e2);
}
}
}
What is the result?
A. 2 4 6 8
B. 2 4 6 8 9
C. 1 3 5 7
D. 1 3 5 7 9
E. Compilation fails
F. An exception is thrown at runtime
Correct Answer: A
Section: (none)
Explanation
Explanation/Reference:
QUESTION 110
public class Test2 {
public static void doChange(int[] arr) {
for (int pos=0; pos < arr.length; pos++) {
arr[pos] = arr[pos] + 1;
}
}
public static void main (String[] args) {
int[] arr = {10, 20, 30};
doChange(arr);
for (int x : arr) {
System.out.print(x + ", ");
}
doChange(arr);
System.out.print(arr[0] + ", " + arr[1] + ", " + arr[2]); }
}
What is the result?
A. 11, 21, 31, 11, 21, 31
B. 11, 21, 31, 12, 22, 32
C. 12, 22, 32, 12, 22, 32
D. 10, 20, 30, 10, 20, 30
Correct Answer: B
Section: (none)
Explanation
Explanation/Reference:
QUESTION 111
Given:
public class Natural {
private int i;
void disp() {
while (i <= 5) {
for (int i = 1; i <= 5; ) {
System.out.print(i + " ");
i++;
}
i++;
}
}
public static void main (String args[]) {
new Natural().disp();
}
}
A. Prints 1 2 3 4 5 once
B. Prints 1 3 5 once
C. Prints 1 2 3 4 5 five times
D. Prints 1 2 3 4 5 six times
E. Compilation fails
Correct Answer: D
Section: (none)
Explanation
Explanation/Reference:
QUESTION 112
Given:
public class CheckIt {
public static void main (String[] args) {
if (doCheck()) {
System.out.print("square ");
}
System.out.print("...");
}
public static int doCheck() {
return 0;
}
}
A. square...
B. ...
C. Compilation fails.
D. An exception is thrown at runtime.
Correct Answer: C
Section: (none)
Explanation
Explanation/Reference:
QUESTION 113
class Test {
public static void main (String[] args) {
int day = 1;
switch (day) {
case "7":
System.out.print("Uranus");
case "6":
System.out.print("Saturn");
case "1":
System.out.print("Mercury");
case "2":
System.out.print("Venus");
case "3":
System.out.print("Earth");
case "4":
System.out.print("Mars");
case "5":
System.out.print("Jupiter");
}
}
}
Which two modifications, made independently, enable the code to compile and run?
A. adding a break statement after each print statement
B. adding a default section within the switch code-block
C. changing the string literals in each case label to integer
D. changing the type of the variable day to String
E. arranging the case labels in ascending order
Correct Answer: CD
Section: (none)
Explanation
Explanation/Reference:
QUESTION 114
Given:
class X {
static void m(StringBuilder sb1) {
sb1.append("er");
}
public static void main (String[] args) {
StringBuilder sb2 = new StringBuilder("moth");
m(sb2);
System.out.println(sb2);
}
}
What is the result?
A. moth
B. er
C. mother
D. Compilation fails.
E. An exception is thrown at run time
Correct Answer: C
Section: (none)
Explanation
Explanation/Reference:
QUESTION 115
Given:
public class DoWhile1 {
public static void main (String[] args) {
int i = 2;
do {
System.out.println(i);
} while (--i);
}
}
What is the result?
A. 1
B. 2
C. An exception is thrown at runtime
D. The loop executes infinite times
E. Compilation fails
Correct Answer: E
Section: (none)
Explanation
Explanation/Reference:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Type mismatch: cannot convert from int to Boolean
QUESTION 116
Given:
class X {
private X() { }
void one() { }
}
public class Y extends X {
private Y() { }
public static void main (String[] args) {
new Y().one();
}
}
Which change will make this code compile?
A. Add the public modifier to the declaration of class X
B. Remove the private modifier from the X() constructor
C. Add the protected modifier to the declaration of the one() method
D. Remove the Y() constructor
E. Remove the private modifier from Y() constructor
Correct Answer: B
Section: (none)
Explanation
Explanation/Reference:
QUESTION 117
Given the code fragment:
class Test2 {
int fvar;
static int cvar;
public static void main(String[] args) {
Test2 t = new Test2();
// insert code here to write field variables
}
}
Which two code fragments, inserted independently, enable the code to compile?
A. t.fvar = 200;
B. cvar = 400;
C. fvar = 200;
cvar = 400;
D. this.fvar = 200;
this.cvar = 400;
E. t.fvar = 200;
Test2.cvar = 400;
F. this.fvar = 200;
Test2.cvar = 400;
Correct Answer: AD
Section: (none)
Explanation
Explanation/Reference:
QUESTION 118
Given:
public class App {
public static void main(String[] args) {
char[] arr = {'A', 'e', 'I', 'O', 'u'};
int count = 0;
for (int i = 0; i < arr.length; i++) {
switch (arr[i]) {
case 'A':
continue;
case 'a':
count++;
break;
case 'E':
count++;
break;
case 'I':
count++;
continue;
case 'O':
count++;
break;
case 'U':
count++;
}
}
System.out.print("Total match found: " + count);
}
}
What is the result?
A. Total match found: 1
B. Total match found: 2
C. Total match found: 3
D. Total match found: 5
Correct Answer: B
Section: (none)
Explanation
Explanation/Reference:
QUESTION 119
Given:
public class Series {
private boolean flag;
public void displaySeries() {
int num = 2;
while (flag) {
if (num % 7 == 0)
flag = false;
System.out.print(num);
num += 2;
}
}
public static void main (String[] args) {
new Series().displaySeries();
}
}
What is the result?
A. 2 4 6 8 10 12
B. 2 4 6 8 10 12 14
C. Compilation fails
D. The program prints multiple of 2 infinite times
E. The program prints nothing
Correct Answer: E
Section: (none)
Explanation
Explanation/Reference:
QUESTION 120
Given:
public class MarkList {
int num;
public static void graceMarks(MarkList obj4) {
obj4.num += 10;
}
public static void main (String[] args) {
MarkList obj1 = new MarkList();
MarkList obj2 = obj1;
MarkList obj3 = null;
obj2.num = 60;
graceMarks(obj2);
}
}
How many objects are created in the memory at runtime?
A. 1
B. 2
C. 3
D. 4
Correct Answer: A
Section: (none)
Explanation
Explanation/Reference:
QUESTION 121
Given:
class X {
String str = "default";
int ivalue = 17;
X(String s) {
str = s;
}
X(int i) {
ivalue = i;
}
void print() {
System.out.println(str + " " + ivalue);
}
public static void main(String[] args) {
new X("hello").print();
new X(92).print();
}
}
What is the result?
A. default 17
hello 92
B. hello 92
default 17
C. hello 17
default 92
D. default 92
hello 17
Correct Answer: C
Section: (none)
Explanation
Explanation/Reference:
QUESTION 122
Given:
abstract class X {
public abstract void methodX();
}
interface Y {
public void methodY();
}
Which two code fragments are valid?
A. class Z extends X implements Y {
public void methodZ() { }
}
B. abstract class Z extends X implements Y {
public void methodZ() { }
}
C. class Z extends X implements Y {
public void methodX() { }
}
D. abstract class Z extends X implements Y {
}
E. class Z extends X implements Y {
public void methodY() { }
}
Correct Answer: BD
Section: (none)
Explanation
Explanation/Reference:
QUESTION 123
Which four statements are true regarding exception handling in Java?
A. In multicatch blocks, the subclass catch handler must be caught after the superclass catch handler.
B. A try block must be followed by either a catch or finally block
C. The Exception class is the superclass of all errors and exception in the Java language
D. A single catch block can handle more than one type of exception
E. A checked exception must be caught explicitly
F. In a catch block than can handle more than one exception, the subclass exception handler must be caught
before the superclass exception handler
Correct Answer: BDEF
Section: (none)
Explanation
Explanation/Reference:
QUESTION 124
Given the code fragment:
class MySearch {
public static void main(String[] args) {
String url = "http://www.domain.com/index.html";
if (XXXX) {
System.out.println("Found");
}
}
}
Which code fragment, replace with XXXX, enables the code to print Found?
A. url.indexOf("com") != -1
B. url.indexOf("com")
C. url.indexOf("com") == 19
D. url.indexOf("com") != false
Correct Answer: A
Section: (none)
Explanation
Explanation/Reference:
QUESTION 125
Which three statements are true about the structure of a Java class?
A. A class can have only one private constructor.
B. A method can have the same name as a field.
C. A class can have overloaded static methods.
D. A public class must have a main method.
E. The methods are mandatory components of a class.
F. The fields need not be initialized before use.
Correct Answer: BCF
Section: (none)
Explanation
Explanation/Reference:
QUESTION 126
A.
B.
C.
D.
Correct Answer:
Section: (none)
Explanation
Explanation/Reference:
QUESTION 127
class Lang {
private String category = "procedura1";
public static void main (String[] args) {
Lang obj1 = new Lang();
Lang obj2 = new Lang();
if (obj1.category == obj2.category) {
System.out.println("Equal");
} else {
System.out.println("Not equal");
}
if (obj1.category.equals(obj2.category)) {
System.out.println("Equal");
} else {
System.out.println("Not equal");
}
}
}
What is the result?
A. Equal
Not equal
B. Not equal
Equal
C. Equal
Equal
D. Not equal
Not equal
Correct Answer: C
Section: (none)
Explanation
Explanation/Reference:
QUESTION 128
Given the code fragment:
public static void main(Stirng[] args) {
int x = 353;
int j = x++;
switch (j) {
case 317:
case 353:
case 367:
System.out.println("Is a prime number.");
case 353:
case 363:
System.out.println("Is a palindrome.");
break;
default:
System.out.println("Invalid value.");
}
}
What is the result?
A. Compilation fails
B. Is a prime number.
C. Is a palindrome.
D. Is a prime number.
Is a palindrome.
E. Invalid value.
Correct Answer: A
Section: (none)
Explanation
Explanation/Reference:
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
Duplicate case
Duplicate case
QUESTION 129
Given the code fragment:
boolean log1 = (1 < 9) && (1 > 5);
boolean log2 = (3 == 4) || (3 == 3);
System.out.println("log1:" + log1 + "\nlog2:" + log2);
What is the result?
A. log1: false
log2: true
B. log1: true
log2: true
C. log1: false
log2: false
D. log1: true
log2: false
Correct Answer: A
Section: (none)
Explanation
Explanation/Reference:
QUESTION 130
Given:
public class Case {
public static void main(String[] args) {
String product = "Pen";
product.toLowerCase();
product.concat(" BOX".toLowerCase());
System.out.print(product.substring(4,6));
}
}
What is the result?
A. box
B. cbo
C. bo
D. nb
E. An exception is thrown at runtime
Correct Answer: E
Section: (none)
Explanation
Explanation/Reference:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 6 at
java.lang.String.substring(Unknown Source)
QUESTION 131
Given:
class Cake {
int model;
String flavor;
Cake() {
model = 0;
flavor = "Unknown";
}
}
public class Test {
public static void main(String[] args) {
Cake c = new Cake();
bake1(c);
System.out.println(c.model + " " + c.flavor);
bake2(c);
System.out.println(c.model + " " + c.flavor);
}
public static Cake bake1(Cake c) {
c.flavor = "Strawberry";
c.model = 1200;
return c;
}
public static void bake2(Cake c) {
c.flavor = "Chocolate";
c.model = 1230;
return;
}
}
What is the result?
A. 0 Unknown
0 Unknown
B. 1200 Strawberry
1200 Strawberry
C. 1200 Strawberry
1230 Chocolate
D. Compilation fails
Correct Answer: C
Section: (none)
Explanation
Explanation/Reference:
QUESTION 132
Given:
class X {
static void m(String s1) {
s1 = "acting";
}
public static void main(String[] args) {
String s2 = "action";
m(s2);
System.out.println(s2);
}
}
What is the result?
A. acting
B. action
C. Compilation fails
D. An exception is thrown at runtime
Correct Answer: B
Section: (none)
Explanation
Explanation/Reference:
QUESTION 133
Given:
public class Painting {
private String type;
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public static void main (String[] args) {
Painting obj1 = new Painting();
Painting obj2 = new Painting();
obj1.setType(null);
obj2.setType("Fresco");
System.out.print(obj1.getType() + " : " + obj2.getType()); }
}
A. : Fresco
B. null : Fresco
C. Fresco : Fresco
D. A NullPointerException is thrown at runtime
Correct Answer: B
Section: (none)
Explanation
Explanation/Reference:
QUESTION 134
Which two statement correctly describe checked exception?
A. These are exceptional conditions that a well-written application should anticipate and recover
from.
B. These are exceptional conditions that are external to the application, and that the application
usually cannot anticipate or recover from.
C. These are exceptional conditions that are internal to the application, and that the application
usually cannot anticipate or recover from.
D. Every class that is a subclass of RuntimeException and Error is categorized as checked
exception.
E. Every class that is a subclass of Exception, excluding RuntimeException and its subclasses, is
categorized as checked exception.
Correct Answer: AE
Section: (none)
Explanation
Explanation/Reference:
QUESTION 135
Given the code fragment:
System.out.println( 28 + 5 <= 4 + 29 );
System.out.println( ( 28 + 5 ) <= ( 4 + 29) );
What is the result?
A. 28false29
true
B. 285 < 429
true
C. true
true
D. Compilation fails
Correct Answer: C
Section: (none)
Explanation
Explanation/Reference:
QUESTION 136
Given:
public class Access {
private int x = 0;
private int y = 0;
public static void main(String[] args) {
Access accApp = new Access();
accApp.printThis(1, 2);
accApp.printThat(3, 4);
}
public void printThis(int x, int y) {
x = x;
y = y;
System.out.println("x:" + this.x + " y:" + this.y);
}
public void printThat(int x, int y) {
this.x = x;
this.y = y;
System.out.println("x:" + this.x + " y:" + this.y);
}
}
A. x:1 y:2
x:3 y:4
B. x:0 y:0
x:3 y:4
C. x:3 y:4
x:0 y:0
D. x:3 y:4
x:1 y:2
Correct Answer:
Section: (none)
Explanation
Explanation/Reference:
QUESTION 137
Given:
public class Calculator {
public static void main(String[] args) {
int num = 5;
sum;
do {
sum += sum;
} while ((num--) > 1);
System.out.println("The sum is " + sum + ".");
}
}
What is the result?
A. The sum is 2.
B. The sum is 14.
C. The sum is 15.
D. The loop executes infinite times.
E. Compilation fails.
Correct Answer:
Section: (none)
Explanation
Explanation/Reference:
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
The local variable sum may not have been initialized
The local variable sum may not have been initialized
QUESTION 138
Given the code fragment:
5. // insert code here
6.
7. arr[0] = new int[3];
8. arr[0][0] = 1;
9. arr[0][1] = 2;
10. arr[0][2] = 3;
11.
12. arr[1] = new int[4];
13. arr[1][0] = 10;
14. arr[1][1] = 20;
15. arr[1][2] = 30;
16. arr[1][3] = 40;
Which two statements, when inserted independently at line 5, enable the code to compile?
A. int [][] arr = null;
B. int [][] arr = new int[2];
C. int [][] arr = new int[2][];
D. int [][] arr = new int[][4];
E. int [][] arr = new int[2][0];
F. int [][] arr = new int[0][4];
Correct Answer: CE
Section: (none)
Explanation
Explanation/Reference:
QUESTION 139
Given the code fragment:
12. for (int row = 4; row > 0; row--) {
13. int col = row;
14. while (col <= 4) {
15. System.out.print(col);
16. col++;
17. }
18. System.out.println();
19. }
What is the result?
A. 4
34
234
1234
B. 4
43
432
4321
C. 4321
432
43
4
D. 4567
345
23
1
Correct Answer: A
Section: (none)
Explanation
Explanation/Reference:
QUESTION 140
Given:
public class Test3 {
public static void main(String[] args) {
double[] array = {10, 20.23, 'c', 300.00f};
for (double d : array) {
d = d + 10;
System.out.print(d + " ");
}
}
}
What is the result?
A. 20.0 30.23 109.0 310.0
B. 20.0 30.23 c10 310.0
C. Compilation fails.
D. An exception is thrown at runtime.
Correct Answer: A
Section: (none)
Explanation
Explanation/Reference:
QUESTION 141
Given:
public class Test {
int sum = 0;
public void doCheck(int number) {
if (number %2 == 0) {
break;
} else {
for (int i = 0; i < number; i++) {
sum +=i;
}
}
}
public static void main(String[] args) {
Test obj = new Test();
System.out.print("Red " + obj.sum);
obj.doCheck(2);
System.out.print("Orange " + obj.sum);
obj.doCheck(3);
System.out.print("Green " + obj.sum);
}
}
What is the result?
A. Red 0
Orange 0
Green 3
B. Red 0
Orange 0
Green 6
C. Red 0
Orange 1
Green 4
D. Compilation fails
Correct Answer: D
Section: (none)
Explanation
Explanation/Reference:
QUESTION 142
Given this code in a file Traveler.java:
class Tours {
public static void main (String [] args) {
System.out.print("Happy Journey! " + args[1]);
}
}
public class Traveler {
public static void main (String[] args) {
Tours.main(args);
}
}
And the commands:
javac Traveler.java
java Traveler Java Duke
What is the result?
A. Happy Journey! Duke
B. Happy Journey! Java
C. An exception is thrown at runtime.
D. The program fails to execute due to a runtime error.
Correct Answer: A
Section: (none)
Explanation
Explanation/Reference:
QUESTION 143
Which statement is true about the default constructor of a top-level class?
A. It can take arguments.
B. It has private access modifier in its declaration.
C. It can be overloaded.
D. The default constructor of a subclass always invokes the no-argument constructor of its superclass.
Correct Answer: D
Section: (none)
Explanation
Explanation/Reference:
QUESTION 144
Given:
public class X implements Z {
public String toString() {
return "X ";
}
public static void main(String[] args) {
Y myY = new Y();
X myX = myY;
Z myZ = myX;
System.out.print(myX);
System.out.print((Y)myX);
System.out.print(myZ);
}
}
class Y extends X {
public String toString() {
return "Y ";
}
}
interface Z { }
A. X X X
B. X Y X
C. Y Y X
D. Y Y Y
Correct Answer: D
Section: (none)
Explanation
Explanation/Reference:
QUESTION 145
Given:
public class Vowel {
private char var;
public static void main (String[] args) {
char var1 = 'a';
char var2 = var1;
var2 = 'e';
Vowel obj1 = new Vowel();
Vowel obj2 = obj1;
obj1.var = 'i';
obj2.var = 'o';
System.out.println(var1 + ", " + var2);
System.out.print(obj1.var + ", " + obj2.var);
}
}
What is the result?
A. a, e
i, o
B. a, e
o, o
C. e, e
i, o
D. e, e
o, o
Correct Answer: B
Section: (none)
Explanation
Explanation/Reference:
QUESTION 146
class Star {
public void doStuff() {
System.out.println("Twinkling Star");
}
}
interface Universe {
public void doStuff();
}
class Sun extends Star implements Universe {
public void doStuff() {
System.out.println("Shining Sun");
}
}
public class Bob {
public static void main(String[] args) {
Sun obj2 = new Sun();
Star obj3 = obj2;
((Sun) obj3).doStuff();
((Star) obj2).doStuff();
((Universe) obj2).doStuff();
}
}
What is the result?
A. Shining Sun
Shining Sun
Shining Sun
B. Shining Sun
Twinkling Star
Shining Sun
C. Compilation fails.
D. A ClassCastException is thrown at runtime.
Correct Answer: A
Section: (none)
Explanation
Explanation/Reference:
QUESTION 147
Given the code fragments:
public class TestA extends Root {
public static void main(String[] args) {
Root r = new TestA();
System.out.println(r.method1()); // line n1
System.out.println(r.method2()); // line n2
}
}
class Root {
private static final int MAX = 20000;
private int method1() {
int a = 100 + MAX; // line n3
return a;
}
protected int method2() {
int a = 200 + MAX; // line n4
return a;
}
}
Which line cause a compilation error?
A. line n1
B. line n2
C. line n3
D. line n4
Correct Answer: A
Section: (none)
Explanation
Explanation/Reference:
QUESTION 148
Given:
public class VarScope {
public static void main (Stirng[] args) {
String color = "red";
int qty = 10;
if (color.equals("red")) { // line n1
int amount = qty * 10;
} else if (color.equals("green")) {
int amount = qty * 15; // line n2
} else if (color.equals("blue")) {
int amount = qty * 5; // line n3
}
System.out.print(amount); // line n4
}
}
Which line causes a compilation error?
A. line n1
B. line n2
C. line n3
D. line n4
Correct Answer: D
Section: (none)
Explanation
Explanation/Reference:
QUESTION 149
Given:
public class Test {
public static void main(String[] args) {
int i = 1;
do {
if ( i % 2 == 0)
continue;
if (i == 5)
break;
System.out.print(i + "\t");
i++;
} while (true);
}
}
What is the result?
A. 1 3
B. 2 4
C. The program prints nothing.
D. Prints 1 infinite times.
E. Prints 1 once and the loop executes infinite times.
Correct Answer: E
Section: (none)
Explanation
Explanation/Reference:
QUESTION 150
Which three statements are true regarding exception handling in Java?
A. A try block can be followed by multiple finally blocks.
B. A try block can be followed by a catch or finally block.
C. In multiple catch blocks, the superclass catch handler must be caught after the subclass catch handler
D. An unchecked exception must be caught explicitly.
E. A finally block can be written before the catch block.
F. Any Exception subclass can be used as the parent class of a user-defined exception.
Correct Answer: BCF
Section: (none)
Explanation
Explanation/Reference:
QUESTION 151
public class Test {
public static void main (String[] args) {
int i = 25;
int j = i++ + 1;
if (j % 5 == 0) {
System.out.println(j + " is divisible by 5");
} else {
System.out.println(j + " is not divisible by 5");
}
System.out.println("Done");
}
}
What is the result?
A. Compilation fails.
B. 25 is divisible by 5
Done
C. 26 is not divisible by 5
Done
D. 27 is not divisible by 5
Done
Correct Answer: C
Section: (none)
Explanation
Explanation/Reference:
QUESTION 152
Given the code fragment:
1. class Test {
2. public static void main(String[] args) {
3. Test t = new Test();
4. int[] arr = new int[10];
5. arr = t.subArray(arr, 0, 2);
6. }
7. // insert code fragment here
8. }
Which method definition can be inserted at line 7 to enable the code to compile?
A. public int[] subArray(int[] src, int start, int end) { return src;
}
B. public int subArray(int src, int start, int end) {
return src;
}
C. public int[] subArray(int src, int start, int end) {
return src;
}
D. public int subArray(int[] src, int start, int end) {
return src;
}
Correct Answer: A
Section: (none)
Explanation
Explanation/Reference:
QUESTION 153
Given:
public class Test { }
From which class does the Java compiler implicitly derive Test?
A. Object
B. Class
C. An anonymous class
D. Objects
Correct Answer: A
Section: (none)
Explanation
Explanation/Reference:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment