Java Programmer Certification Mock Exam No 3

24 Questions


This is my mock Exam No 3 based on the Objectives for the Sun Java Programmers Exam. Please email me if you have any corrections or comments.


Question 1)

Which of the following are legal statements?

1) float f=1/3;
2) int i=1/3;
3) float f=1.01;
4) double d = 999d;

Answer to Question 1)


Question 2)

Which of the following are Java keywords?

1) NULL
2) new
3) instanceOf
4) wend

Answer to Question 2)



Question 3)

Which of the following are valid statements?

1) System.out.println(1+1);
2) int i= 2+'2';
3) String s= "on"+'one';
4) byte b=255;

Answer to Question 3)


Question 4)

Which of the following statements are true?

1) The garbage collection algorithm in Java is vendor implemented
2) The size of primitives is platform dependent
3) The default type for a numerical literal with decimal component is a float.
4) You can return the value contained in an instance of the Integer wrapper class with a call to the getValue method

Answer to Question 4)


Question 5)

Which of the following are true statements?

1) I/O in Java can only be performed using the Listener classes
2) The RandomAccess interface allows you to move directly to any point in instance of the File class
3) The creation of a named instance of the File class creates a matching file in the underlying operating system only when the close method is called.
4) The characteristics of an instance of the File class such as the directory separator, depend on the current underlying operating system

Answer to Question 5)


Question 6).

Which of the following statements are true?

1) The instanceof operator can be used to determine if a reference is an instance of a class, but not an interface.
2) The instanceof operator can be used to determine if a reference is an instance of a particular primitive wrapper class
3) The instanceof operator will only determine if a reference is an instance of a class immediately above in the hierarchy but no further up the inheritance chain
4) The instanceof operator will always return true if you ask if a reference is an instance of the Object class

Answer to Question 6)


Question 7)

Which of the following statements are true?

1) An interface can only contain method and not variables
2) Java does not allow the creation of a reference to an interface with the new keyword.
3) A class may extend only one other class and implement only one interface
4) Interfaces are the Java approach to addressing the single inheritance model, but require implementing classes to create the functionality of the Interfaces.

Answer to Question 7)


Question 8)

Which of the following are valid statements

1) public class MyCalc extends Math
2) Math.max(s);
3)Math.round(9.99,1);
4)Math.mod(4,10);

Answer to Question 8)


Question 9)

Which of the following are methods of the Runnable interface

1) run
2) start
3) yield
4) stop

Answer to Question 9)


Question 10)

Which of the following statements are true?

1) A byte can represent between -128 to 127
2) A byte can represent between -127 to 128
3) A byte can represent between -256 to 256
4) A char can represent between -2x2 pow 16 2 x2 pow 16 - 1

Answer to Question 10)



Question 11)

What will happen when you attempt to compile and run the following code
class Base{
public void Base(){
 System.out.println("Base");
 }
}
public class In extends Base{
public static void main(String argv[]){
 In i = new In();
 }
}

1) Compile time error Base is a keyword
2) Compilation and no output at runtime
3) Output of Base
4) Runtime error Base has no valid constructor

Answer to Question 11)



Question 12)

You have a public class called myclass with the main method defined as follows

public static void main(String parm[]){
    System.out.println(parm[0]);
 }

If you attempt to compile the class and run the program as follows

java myclass hello

What will happen?

1) Compile time error, main is not correctly defined
2) Run time error, main is not correctly defined
3) Compilation and output of  java
4) Compilation and output of hello

Answer to Question 12)



Question 13)
 

Which of the following statements are true?

1) If a class has any abstract methods it must be declared abstract itself.
2) All methods in an abstract class must be declared as abstract
3) The final modifier means that a class cannot be sub-classed
4) transient and volatile are Java modifiers

Answer to Question 13)



Question 14)

Objective 1.2)

Which of the following are valid methods?
 

1) public static native void amethod(){}
2) public static void amethod(){}
3) private protected void amethod(){}
4) static native void amethod();

Answer to Question 14)
 
 


Question 15)

Objective 6.2)

Which of the following statements are true?

1) Constructors cannot have a visibility modifier
2) Constructors can be marked public and protected, but not private
3) Constructors can only have a primitive return type
4) Constructors are not inherited
 

Answer to Question 15)


Question 16)

What will happen when you attempt to compile and run the following class?

class Base{
        Base(int i){
        System.out.println("Base");
        }

}
class Severn extends Base{
public static void main(String argv[]){
        Severn s = new Severn();
        }
        void Severn(){
        System.out.println("Severn");
        }
}

1) Compilation and output of the string "Severn" at runtime
2) Compile time error
3) Compilation and no output at runtime
4) Compilation and output of the string "Base"
 

Answer to Question 16)


Question 17)

Which of the following statements are true?
 

1) static methods do not have access to the implicit variable called this
2) a static method may not be overriden
3) a static may not be overriden to be non-static
4) a static method may not be overloaded

Answer to question 17)


Question 18)

Which of the following will compile without error?
 

1)

char c = '1';
System.out.println(c>>1);

2)

Integer i = Integer("1");
System.out.println(i>>1);

3)

int i =1;
System.out.println(i<<<1);

4)

int i =1;
System.out.println(i<<1);

Answer to Question 18)


Question 19)

Which of the following are true?

1) A component may have only one event listener attached at a time
2) An event listener may be removed from a component
3) The ActionListener interface has no corresponding Adapter class
4) The processing of an event listener requires a try/catch block
 

Answer to Question 19)


Question 20)

Which of the following are Java keywords?

1) sizeof
2) main
3) transient
4) volatile

Answer to Question 20)


Question 21)

Which of the following statements are true?

1) The default constructor has a return type of void
2) The default constructor takes a parameter of void
3) The default constructor takes no parameters
4) The default constructor is not created if the class has any constructors of its own.


Answer to Question 21)


Question 22)

Which of the following statements are true?

1) All of the variables in an interface are implicitly static
2) All of the variables in an interface are implicitly final
3) All of the methods in an interface are implictly abstract
4) Any methods in an interface cannot access class level variables


Answer to Question 22)



Question 23)

Which of the following statements are true?


1) The String class is implemented as a char array, elements are addressed using the stringname[] convention
2) Strings are a primitive type in Java that overloads the + operator for concatenation
3) Strings are a primitive type in Java and the StringBuffer is used as the matching wrapper type
4) The size of a string can be retrieved using the length property


Answer to Question 23)


Question 24)

Which of the following statements are true?

1) A method in an interface must not have a body
2) A class may extend one other class plus one interface
3) A class may extends one other class plus many interfaces
4) An class accesses an interface via the keyword uses


Answer to Question 24)



Answers

Answer to Question 1)

Objective 4.5)

1) float f=1/3;
2) int i=1/3;
4) double d = 999d;

The fact that option 3 does not compile may be a surprise. The problem is because the default type for a number with a decimal component is a double and not a float. The additional trailing d in the option with 999 doesn't help, but it doesn't harm.


Answer to Question 2)

Objective 4.3)

2) new

The option NULL (note the upper case letter) is definitely not a keyword. There is some discussion as to if null is a keyword but for the purpose of the exam you should probably assume it is a keyword.

The option instanceOf is a bit of a misleading option that would probably not occur on the exam. The real keyword is instanceof (note that the of has no capital letter O). I had the incorrect version in an earlier version of this tutorial as it looks more likely to my eyes. The instanceof keyword looks like a method, but it is actually an operator.

The option wend is probably valid in some other language to indicate the end of a while loop, but Java has no such keyword.


Answer to Question 3)

Objective 4.5)

1) System.out.println(1+1);
2) int i= 2+'2';
Option 3 is not valid because single quotes are used to indicate a character constant and not a string.
Option 4 will not compile because 255 is out of the range of a byte


Answer to Question 4)

Objective 7.1)

1) The garbage collection algorithm in Java is vendor implemented

Threading and garbage collection are two of the few areas that are platform dependent. This is one of the
reasons why Java is not suitable for realtime programming. It is not a good idea use it to control your
plane or nuclear power station.


Answer to Question 5)

Objective 10.1)

(Not on the official sub objectives but this topic does come up on the exam)

2) The RandomAccess interface allows you to move directly to any point in instance of the File class
3) The creation of a named instance of the File class creates a matching file in the underlying operating system only when the close method is called
4) The characteristics of an instance of the File class such as the directory separator, depend on the current underlying operating system


Answer to Question 6)

2) The instanceof operator can be used to determine if a reference is an instance of a particular primitive wrapper class
4) The instanceof operator will always return true if you ask if a reference is an instance of the Object class



Answer to Question 7)

Objective 4.1)

4) Interfaces are the Java approach to addressing the single inheritance model, but require implementing classes to create the functionality of the Interfaces.

An interface may contain variables as well as methods. However any variables are final by default and must be assigned values on creation. A class can only extend one other class (single inheritance) but may implement as many interfaces as you like (or is sensible).


Answer to Question 8)

Objective 9.1)

None of these are valid statements. The Math class is final and cannot be extended. The max method takes two parameters, round only takes one parameter and there is no mod parameter. You may get questions in the exam that have no apparently correct answer. If you are absolutely sure this is the case, do not check any of the options.


Answer to Question 9)

Objective 7.1)

1) The Runnable interface has only one method run that needs to be created in any class that implements it. The start method is used to actually call and start the run method executing.


Answer to Question 10)

Objective 4.5)

1) A byte can represent between -128 to 127

The char type is the only unsigned type in Java and thus cannot represent a negative number.


Answer to Question 11)

Objective 1.2)

2) Compilation and no output at runtime

Because the method in Base called Base has a return type it is not a constructor and there for does not get called on creation of an instance of its child class In



Answer to Question 12)

Objective 4.2)

4) Compilation and output of hello

This type of question is particularly calculated to catch out C/C++ programmers who might expect parameter zero to be the name of the compiler.


Answer to Question 13)

Objective 1.2)

1) If a class has any abstract methods it must be declared abstract itself.
3) The final modifier means that a class cannot be sub-classed
4) transient and volatile are Java modifiers

An abstract class may have non abstract methods. Any class that descends from an abstract class must implement the abstract methods of the base class or declare them as abstract itself.


Answer to Question 14)

Objective 1.2)

2) public static void amethod(){}
4) static native void amethod(); 

Option 1 is not valid because it has braces and the native modifier means that the method can have no body. This is because the body must be implemented in some other language (often C/C++). Option 3 is not valid because private and protected contradict themselves.


Answer to Question 15)

Objective 6.2)

4) Constructors are not inherited

Constructors can be marked public, private or protected. Constructors do not have a return type.


 


Answer to Question 16)

Objective 1.3)
 

2) Compile time error

An error occurs when the class Severn attempts to call the zero parameter constructor in the class Base



Answer to Question 17)

Objective 1.2)

1) static methods do not have access to the implicit variable called this
3) a static may not be overriden to be non-static

The implicit variable this referrs to the current instant of a class and thus and by its nature a static method cannot have access to it.



Answer to Question 18)

Objective 5.1)

1)

char c = '1';
System.out.println(c>>1);

4)

int i =1;
System.out.println(i<<1);
 

Be aware that Integer (not the upper case I) is a wrapper class and thus cannot be treated like a primitive. The fact that option 1 will compile may be a surprise, but although the char type is normally used to store character types, it is actually an unsigned integer type. The reason option 3 does not compile is that Java has a >>> operator but not a <<< operator.


 


Answer to Question 19)

Objective 4.6)

2) An event listener may be removed from a component
3) The ActionListener interface has no corresponding Adapter class

A component may have multiple event listeners attached. Thus a field may need to respond to both the mouse and the keyboard, requireing multiple event handlers. The ActionListener has not matching Adapter class because it has only one method, the idea of the Adapter classes is to eliminate the need to create blank methods.


 


Answer to Question 20)

Objective 4.3)
 

3) transient
4) volatile
 

Option 1, sizeof is designed to catch out the C/C++ programmers. Java does not have a sizeof keyword as the size of primitives should be consistent on all Java implementations. Although a program needs a main method with the standard signature to start up it is not a keyword. The real keywords are less commonly used and therefore might not be so familiar to you.


Answer to Question 21)

Objective 1.3)

3) The default constructor takes no parameters
4) The default constructor is not created if the class has any constructors of its own.

Option 1 is fairly obviously wrong as constructors never have a return type. Option 2 is very dubious as well as Java does not offer void as a type for a method or constructor.


Answer to Question 22)

Objective 4.1)

1) All of the variables in an interface are implicitly static
2) All of the variables in an interface are implicitly final
3) All of the methods in an interface are implictly abstract

All the variables in an interface are implictly static and final. Any methods in an interface have no body, so may not access any type of variable



Answer to Question 23)

2) The + operator is overloaded for concatenation for the String class

In Java Strings are implemented as a classs within the Java.lang package with the special distinction that the + operator is overloaded. If you thought that the String class is implemented as a char array, you may have a head full of C/++ that needs emptying. There is not "wrapper class" for String as wrappers are only for primitive types.

If you are suprised that option 4 is not a correct answer it is because length is a method for the String class, but a property for and array and it is easy to get the two confused.


Answer to Question 24)

1) A method in an interface must not have a body
3) A class may extends one other class plus many interfaces

A class accesses an interface using the implements keyword (not uses)