Tuesday, 30 June 2009

Java Certification Question 0020

Which of the following are Java keywords?
1) sizeof
2) main
3) transient
4) volatile



Answer :
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.

Monday, 29 June 2009

Java Certification Question 0019

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 :
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, requiring 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.

Sunday, 28 June 2009

Java Certification Question 0018

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 :
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.

Saturday, 27 June 2009

Java Certification Question 0017

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 be called without creating an instance of its class
3) A static method may not be overriden to be non-static
4) A static method may not be overloaded



Answer :
1) static methods do not have access to the implicit variable called this
2) A static method may be called without creating an instance of its class
3) a static may not be overriden to be non-static
The implicit variable this refers to the current instance of a class and thus and by its nature a static method cannot have access to it.

Friday, 26 June 2009

Java Certification Question 0016

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 :
2) Compile time error
An error occurs when the class Severn attempts to call the zero parameter constructor in the class Base Because the Base class has an integer constructor Java does not provide the "behind the scenes" zero parameter constructor.

Thursday, 25 June 2009

Java Certification Question 0015

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 :
4) Constructors are not inherited
Constructors can be marked public, private or protected. Constructors do not have a return type.

Wednesday, 24 June 2009

Java Certification Question 0014

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 :
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.

Tuesday, 23 June 2009

Java Certification Question 0013

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) When applied to a class, the final modifier means it cannot be sub-classed
4) transient and volatile are Java modifiers



Answer :
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.

Monday, 22 June 2009

Java Certification Question 0012

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 :
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.

Sunday, 21 June 2009

Java Certification Question 0011

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 :
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

Saturday, 20 June 2009

Java Certification Question 0010

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 :
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.

Friday, 19 June 2009

Java Certification Question 0009

Which of the following are methods of the Runnable interface
1) run
2) start
3) yield
4) stop


Answer :
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.

Thursday, 18 June 2009

Java Certification Question 0008

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 :
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.

Wednesday, 17 June 2009

Java Certification Question 0007

Which of the following statements are true?
1) An interface can only contain method and not variables
2) Interfaces cannot have constructors
3) A class may extend only one other class and implement only one interface
4) Interfaces are the Java approach to addressing its lack of multiple inheritance, but require implementing classes to create the functionality of the Interfaces.

Answer:
2) Interfaces cannot have constructors
If you try to create a constructor for an Interface the compiler will give you an error message something like "interface can't have constructors".
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).

Tuesday, 16 June 2009

Java Certification Question 0006

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 can be used to determine if one reference is of the same class as another reference thus



Answer:
2) The instanceof operator can be used to determine if a reference is an instance of a particular primitive wrapper class
The instanceof operator can only be used to make a static comparison with a class type. Java1.1 added the isInstance method to the class Class to allow you to dynamically determine a class type. The exam does not test you on isInstance.

Monday, 15 June 2009

Java Certification Question 0005

Which of the following are true statements?
1) I/O in Java can only be performed using the Listener classes
2) The RandomAccessFile class allows you to move directly to any point a file.
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:
(Not on the official sub objectives but this topic does come up on the exam)
2) The RandomAccessFile class allows you to move directly to any point a file.
4) The characteristics of an instance of the File class such as the directory separator, depend on the current underlying operating system
The File class can be considered to represent information about a file rather than a real file object. You can create a file in the underlying operating system by passing an instance of a file to a stream such as FileOutputStream. The file will be created when you call the close method of the stream.

Sunday, 14 June 2009

Java Certification Question 0004

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 modify the value in an Instance of the Integer class with the setValue method



Answer:
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. Once an instance of the Integer class has a value it cannot be changed.

Saturday, 13 June 2009

Java Certification Question 0003

Which of the following are valid statements?
1) System.out.println(1+1);
2) int i=2+'2';
3) c
4) byte b=255;


Answer:
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. Several people have emailed me to say that option 3 will compile. When they eventually compiled the exact code they have agreed, it will not compile. Let me re-state that
String s="on"+'one'; Will NOT compile.
Option 4 will not compile because 255 is out of the range of a byte

Friday, 12 June 2009

Java Certification Question 0002

Which of the following are Java keywords?
1) NULL
2) new
3) instanceOf
4) wend


Answer:
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.

Thursday, 11 June 2009

Java Certification Question 0001

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:
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.