General Questions

Question 1 :

Suppose that you would like to create an instance of a new Map that has an iteration order that is the same as the iteration order of an existing instance of a Map. Which concrete implementation of the Map interface should be used for the new instance?


A). TreeMap
B). HashMap
C). LinkedHashMap
D). The answer depends on the implementation of the existing instance.
Answer : Option C

Explanation :

The iteration order of a Collection is the order in which an iterator moves through the elements of the Collection. The iteration order of a LinkedHashMap is determined by the order in which elements are inserted.

When a new LinkedHashMap is created by passing a reference to an existing Collection to the constructor of a LinkedHashMap the Collection.addAll method will ultimately be invoked.

The addAll method uses an iterator to the existing Collection to iterate through the elements of the existing Collection and add each to the instance of the new LinkedHashMap.

Since the iteration order of the LinkedHashMap is determined by the order of insertion, the iteration order of the new LinkedHashMap must be the same as the interation order of the old Collection.


Question 2 :

Which class does not override the equals() and hashCode() methods, inheriting them directly from class Object?


A). java.lang.String
B). java.lang.Double
C). java.lang.StringBuffer
D). java.lang.Character
Answer : Option C

Explanation :

java.lang.StringBuffer is the only class in the list that uses the default methods provided by class Object.


Question 3 :

Which collection class allows you to grow or shrink its size and provides indexed access to its elements, but whose methods are not synchronized?


A). java.util.HashSet
B). java.util.LinkedHashSet
C). java.util.List
D). java.util.ArrayList
Answer : Option D

Explanation :

All of the collection classes allow you to grow or shrink the size of your collection. ArrayList provides an index to its elements. The newer collection classes tend not to have synchronized methods. Vector is an older implementation of ArrayList functionality and has synchronized methods; it is slower than ArrayList.


Question 4 :

You need to store elements in a collection that guarantees that no duplicates are stored and all elements can be accessed in natural order. Which interface provides that capability?


A). java.util.Map
B). java.util.Set
C). java.util.List
D). java.util.Collection
Answer : Option B

Explanation :

Option B is correct. A set is a collection that contains no duplicate elements. The iterator returns the elements in no particular order (unless this set is an instance of some class that provides a guarantee). A map cannot contain duplicate keys but it may contain duplicate values. List and Collection allow duplicate elements.

Option A is wrong. A map is an object that maps keys to values. A map cannot contain duplicate keys; each key can map to at most one value. The Map interface provides three collection views, which allow a map's contents to be viewed as a set of keys, collection of values, or set of key-value mappings. The order of a map is defined as the order in which the iterators on the map's collection views return their elements. Some map implementations, like the TreeMap class, make specific guarantees as to their order (ascending key order); others, like the HashMap class, do not (does not guarantee that the order will remain constant over time).

Option C is wrong. A list is an ordered collection (also known as a sequence). The user of this interface has precise control over where in the list each element is inserted. The user can access elements by their integer index (position in the list), and search for elements in the list. Unlike sets, lists typically allow duplicate elements.

Option D is wrong. A collection is also known as a sequence. The user of this interface has precise control over where in the list each element is inserted. The user can access elements by their integer index (position in the list), and search for elements in the list. Unlike sets, lists typically allow duplicate elements.


Question 5 :

Which interface does java.util.Hashtable implement?


A). Java.util.Map
B). Java.util.List
C). Java.util.HashTable
D). Java.util.Collection
Answer : Option A

Explanation :

Hash table based implementation of the Map interface.


Question 6 :

Which interface provides the capability to store objects using a key-value pair?


A). Java.util.Map
B). Java.util.Set
C). Java.util.List
D). Java.util.Collection
Answer : Option A

Explanation :

An object that maps keys to values. A map cannot contain duplicate keys; each key can map to at most one value.


Question 7 :

Which collection class allows you to associate its elements with key values, and allows you to retrieve objects in FIFO (first-in, first-out) sequence?


A). java.util.ArrayList
B). java.util.LinkedHashMap
C). java.util.HashMap
D). java.util.TreeMap
Answer : Option B

Explanation :

LinkedHashMap is the collection class used for caching purposes. FIFO is another way to indicate caching behavior. To retrieve LinkedHashMap elements in cached order, use the values() method and iterate over the resultant collection.


Question 8 :

Which collection class allows you to access its elements by associating a key with an element's value, and provides synchronization?


A). java.util.SortedMap
B). java.util.TreeMap
C). java.util.TreeSet
D). java.util.Hashtable
Answer : Option D

Explanation :

Hashtable is the only class listed that provides synchronized methods. If you need synchronization great; otherwise, use HashMap, it's faster.


Question 9 :

Which is valid declaration of a float?


A). float f = 1F;
B). float f = 1.0;
C). float f = "1";
D). float f = 1.0d;
Answer : Option A

Explanation :

Option A is valid declaration of float.

Option B is incorrect because any literal number with a decimal point u declare the computer will implicitly cast to double unless you include "F or f"

Option C is incorrect because it is a String.

Option D is incorrect because "d" tells the computer it is a double so therefore you are trying to put a double value into a float variable i.e there might be a loss of precision.


Question 10 :

/* Missing Statement ? */
public class foo 
{
    public static void main(String[]args)throws Exception 
    {
        java.io.PrintWriter out = new java.io.PrintWriter(); 
        new java.io.OutputStreamWriter(System.out,true); 
        out.println("Hello"); 
    } 
}
What line of code should replace the missing statement to make this program compile?


A). No statement required.
B). import java.io.*;
C). include java.io.*;
D). import java.io.PrintWriter;
Answer : Option A

Explanation :

The usual method for using/importing the java packages/classes is by using an import statement at the top of your code. However it is possible to explicitly import the specific class that you want to use as you use it which is shown in the code above. The disadvantage of this however is that every time you create a new object you will have to use the class path in the case "java.io" then the class name in the long run leading to a lot more typing.


Question 11 :

What is the numerical range of char?


A). 0 to 32767
B). 0 to 65535
C). -256 to 255
D). -32768 to 32767
Answer : Option B

Explanation :

The char type is integral but unsigned. The range of a variable of type char is from 0 to 216-1 or 0 to 65535. Java characters are Unicode, which is a 16-bit encoding capable of representing a wide range of international characters. If the most significant nine bits of a char are 0, then the encoding is the same as seven-bit ASCII.


Question 12 :

Which of the following are Java reserved words?

1. run
2. import
3. default
4. implement


A). 1 and 2
B). 2 and 3
C). 3 and 4
D). 2 and 4
Answer : Option B

Explanation :

(2) - This is a Java keyword
(3) - This is a Java keyword
(1) - Is incorrect because although it is a method of Thread/Runnable it is not a keyword
(4) - This is not a Java keyword the keyword is implements