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;
Question 2)
Which of the following are Java keywords?
1) NULL
2) new
3) instanceOf
4) wend
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;
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
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
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
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.
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);
Question 9)
Which of the following are methods of the Runnable interface
1) run
2) start
3) yield
4) stop
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
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
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
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
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();
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
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"
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
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);
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
Question 20)
Which of the following are Java keywords?
1) sizeof
2) main
3) transient
4) volatile
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.
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
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
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
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.
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.
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
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.
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
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
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).
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.
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.
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.
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
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.
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.
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.
Objective 6.2)
4) Constructors are not inherited
Constructors can be marked public, private or protected. Constructors do not have a return type.
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
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.
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.
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.
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.
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.
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
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.
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)