Sail E0 Webinar

MCQs

Total Questions : 97 | Page 2 of 10 pages
Question 11.


What will be the output of the program?


import java.util.*;
class H
{
public static void main (String[] args)
{
Object x = new Vector().elements();
System.out.print((x instanceof Enumeration)+",");
System.out.print((x instanceof Iterator)+",");
System.out.print(x instanceof ListIterator);
}
}
  1.    Prints: false,false,false
  2.    Prints: false,false,true
  3.    Prints: false,true,false
  4.    Prints: true,false,false
 Discuss Question
Answer: Option D. -> Prints: true,false,false

The Vector.elements method returns an Enumeration over the elements of the vector. 

Vector implements the List interface and extends AbstractList so it is also possible to 

get an Iterator over a Vector by invoking the iterator or listIterator method.


Question 12.


What will be the output of the program?


public class Test
{
private static float[] f = new float[2];
public static void main (String[] args)
{
System.out.println("f[0] = " + f[0]);
}
}
  1.    f[0] = 0
  2.    f[0] = 0.0
  3.    Compile Error
  4.    Runtime Exception
 Discuss Question
Answer: Option B. -> f[0] = 0.0

The choices are between Option A and B, what this question is really testing is your knowledge 

of default values of an initialized array. This is an array type float i.e. it is a type that uses decimal

 point numbers therefore its initial value will be 0.0 and not 0


Question 13.


What will be the output of the program?


import java.util.*;
class I
{
public static void main (String[] args)
{
Object i = new ArrayList().iterator();
System.out.print((i instanceof List)+",");
System.out.print((i instanceof Iterator)+",");
System.out.print(i instanceof ListIterator);
}
}
  1.    Prints: false, false, false
  2.    Prints: false, false, true
  3.    Prints: false, true, false
  4.    Prints: false, true, true
 Discuss Question
Answer: Option C. -> Prints: false, true, false

The iterator() method returns an iterator over the elements in the list in proper sequence, it 

doesn't return a List or a ListIterator object.

A ListIterator can be obtained by invoking the listIterator method.


Question 14.


What will be the output of the program?


public class Test
{
private static int[] x;
public static void main(String[] args)
{
System.out.println(x[0]);
}
}
  1.    0
  2.    null
  3.    Compile Error
  4.    NullPointerException at runtime
 Discuss Question
Answer: Option D. -> NullPointerException at runtime

In the above code the array reference variable x has been declared but it has not been 

instantiated i.e. the new statement is missing, for example:

private static int[]x = new int[5];

private static int[x] declares a static i.e. class level array.

the "new" keyword is the word that actually creates said array.

int[5] in association with the new sets the size of the array. so since the above code contains 

no new or size decalarations when you try and access x[0] you are trying to access a member 

of an array that has been declared but not intialized hence you get a NullPointerException at

 runtime.


Question 15.


What will be the output of the program?


package foo;
import java.util.Vector; /* Line 2 */
private class MyVector extends Vector
{
int i = 1; /* Line 5 */
public MyVector()
{
i = 2;
}
}
public class MyNewVector extends MyVector
{
public MyNewVector ()
{
i = 4; /* Line 15 */
}
public static void main (String args [])
{
MyVector v = new MyNewVector(); /* Line 19 */
}
}
  1.    Compilation will succeed.
  2.    Compilation will fail at line 3.
  3.    Compilation will fail at line 5.
  4.    Compilation will fail at line 15.
 Discuss Question
Answer: Option B. -> Compilation will fail at line 3.

Option B is correct. The compiler complains with the error "modifier private not allowed here". 

The class is created private and is being used by another class on line 19.


Question 16.


What will be the output of the program?


public class Test
{
public static void main (String args[])
{
String str = NULL;
System.out.println(str);
}
}
  1.    NULL
  2.    Compile Error
  3.    Code runs but no output
  4.    Runtime Exception
 Discuss Question
Answer: Option B. -> Compile Error

Option B is correct because to set the value of a String variable to null you must use "null" 

and not "NULL".


Question 17.

Which statement is true?


  1.    Calling Runtime.gc() will cause eligible objects to be garbage collected.
  2.    The garbage collector uses a mark and sweep algorithm.
  3.    If an object can be accessed from a live thread, it can't be garbage collected.
  4.    If object 1 refers to object 2, then object 2 can't be garbage collected.
 Discuss Question
Answer: Option C. -> If an object can be accessed from a live thread, it can't be garbage collected.

This is a great way to think about when objects can be garbage collected.

Option A and B assume guarantees that the garbage collector never makes.

Option D is wrong because of the now famous islands of isolation scenario.

Question 18.

Which statement is true?


  1.    Memory is reclaimed by calling Runtime.gc().
  2.    Objects are not collected if they are accessible from live threads.
  3.    An OutOfMemory error is only thrown if a single block of memory cannot be found that is large enough for a particular requirement.
  4.    Objects that have finalize() methods always have their finalize() methods called before the program ends.
 Discuss Question
Answer: Option B. -> Objects are not collected if they are accessible from live threads.

Option B is correct. If an object can be accessed from a live thread, it can't be garbage collected.

Option A is wrong. Runtime.gc() asks the garbage collector to run, but the garbage collector never 

makes any guarantees about when it will run or what unreachable objects it will free from memory.

Option C is wrong. The garbage collector runs immediately the system is out of memory before an OutOfMemoryException is thrown by the JVM.

Option D is wrong. If this were the case then the garbage collector would actively hang onto objects

 until a program finishes - this goes against the purpose of the garbage collector.


Question 19.


What will be the output of the program?


public class Test
{
public static void main (String[] args)
{
String foo = args[1];
String bar = args[2];
String baz = args[3];
System.out.println("baz = " + baz); /* Line 8 */
}
}


And the command line invocation:



> java Test red green blue


  1.    baz =
  2.    baz = null
  3.    baz = blue
  4.    Runtime Exception
 Discuss Question
Answer: Option D. -> Runtime Exception

When running the program you entered 3 arguments "red", "green" and "blue". When dealing 

with arrays in java you must remember ALL ARRAYS IN JAVA ARE ZERO BASED therefore

 args[0] becomes "red", args[1] becomes "green" and args[2] becomes "blue".

When the program entcounters line 8 above at runtime it looks for args[3] which has never been 

created therefore you get an

ArrayIndexOutOfBoundsException at runtime.


Question 20.

Which of the following are Java reserved words?

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


  1.    1 and 2
  2.    2 and 3
  3.    3 and 4
  4.    2 and 4
 Discuss Question
Answer: Option B. -> 2 and 3

(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


Latest Videos

Latest Test Papers