Java Varargs or Variable Arguments Interview MCQ Questions and Answers

Study and learn Interview MCQ Questions and Answers on Varargs or Variable Arguments in Java. Attend job interviews easily with these Multiple Choice Questions. You can print these Questions in default mode to conduct exams directly. You can download these MCQs in PDF format by Choosing Print Option first and Save as PDF option next using any Web Browser.

Go through Java Theory Notes on Varargs before reading these objective questions.



1) Java Varargs are applicable only for ___.
A) Constructors
B) Methods
C) Both Constructors and Methods
D) None
Answer [=]
C
Explanation:

Only constructors and methods accept arguments. So, Java Varargs are applicable only to these.

2) A Java-Vararg is nothing but ____.
A) Variable number of arguments
B) Variable type of arguments
C) Variable size of arguments
D) All
Answer [=]
A
Explanation:

A Java Vararg represents simply a variable number of arguments.

3) A Java vararg is a ____.
A) Method
B) Constructor
C) Variable
D) All
Answer [=]
C
Explanation:

A Java-Vararg represents a variable of a particular type.

4) A Java-Vararg can be of any type like primitive or object type. State TRUE or FALSE.
A) TRUE
B) FALSE
C) -
D) -
Answer [=]
A
Explanation:

Yes. A Vararg can be a non-primitive or object type also along with a primitive type like byte, short, int, long, float, double etc.

5) A Java Vararg or Variable Argument can come at any position in a method or constructor. State TRUE or FALSE.
A) FALSE
B) TRUE
C) -
D) -
Answer [=]
B
Explanation:

A Vararg can come only as the last argument in the list of arguments of a constructor or method.

6) What is the output of the below java program with varargs?
public class Varargs1
{
  static void displayStudents(String... stu)
  {
    for(String s: stu)
      System.out.print(s + " ");
  }
  public static void main(String args[])
  {
    displayStudents("Bean", "Atkinson", "Milton");
  }
}
A) Bean Bean Bean
B) null null null
C) Bean Atkinson Milton 
D) Compiler error
Answer [=]
C
Explanation:

In the above example, the Vararg variable "stu" is of String array type. So, we have used a FOR loop to go through all the elements. We also use a NORMAL FOR loop with an index starting from 0.

7) What is the output of the below Java program with Variable arguments?
public class Varargs2
{
  void attendance(String... allStu)
  {
    System.out.println("Attended: " + allStu.length);
  }
  void attendance(boolean... all)
  {
    System.out.println("Attended: " + all.length);
  }
  public static void main(String args[])
  {
    new Varargs2().attendance();
  }
}
A)
Attended: 0
B)
Attended: 0
Attended: 0
C) No Output
D) Compiler Error
Answer [=]
D
Explanation:

Observe that there is no default constructor with 0 arguments. When no argument is passed, the compiler can not choose which attendance() method to choose. So it gives an error.



8) Which is the error thrown when two methods with varargs look the same to the compiler?
A) The method is ambiguous
B) The method is difficult to choose
C) The method signature is not correct
D) None
Answer [=]
A
Explanation:

The compiler simply gives an error when two methods look the same to the compiler for calls at compile time.

9) What is the output of the below Java program with Varargs?
public class Varargs3
{
  Varargs3(int... dates)
  {
    System.out.println("Inside Varargs(int...)");
  }
  Varargs3(boolean... yesno)
  {
    System.out.println("Inside Varargs(float...)");
  }
  public static void main(String[] args)
  {
    new Varargs3();
  }
}
A)
Inside Varargs(int...)
B)
Inside Varargs(boolean...)
C)
Inside Varargs(int...)
Inside Varargs(boolean...)
D) Compiler error
Answer [=]
D
Explanation:

As the two constructors have the same method signature with zero arguments, the compiler sees those as the same. So, it throws an error saying the Constructor is ambiguous.

10) What is the output of the below Java program with Varargs?
public class Varargs4
{
  Varargs4(int... carnums)
  {
    System.out.println("Inside Varargs(int...)");
  }
  Varargs4(float... prices)
  {
    System.out.println("Inside Varargs(float...)");
  }
  public static void main(String[] args)
  {
    new Varargs4();
  }
}
A)
Inside Varargs(int...)
B)
Inside Varargs(int...)
Inside Varargs(float...)
C) No output
D) Compiler error
Answer [=]
A
Explanation:

In the above example, both constructors are overloading one another. In such cases, the compiler chooses the Constructor or Method with a lower sized data type as an argument.

11) What is the output of the below code snippet?
public class Varargs5
{
  Varargs5(int...weights, boolean yesno)
  {
    System.out.println("AMAZON");
  }
  public static void main(String[] args)
  {
   //new Varargs5(20, true);
  }
}
A) No output
B) Error: The variable argument type int of the method Varargs5 must be the last parameter
C) Error: Varargs do not allow other data types
D) None
Answer [=]
B
Explanation:

Yes. The compiler throws errors "Unresolved Compilation Problem" and "The variable argument type of the method or constructor must be the last parameter"

12) Which is the operator used to represent a Vararg type in a method or constructor in Java?
A) One Dot (.)
B) Two Dots (..)
C) Three Dots (...)
D) DOT DOT DOT COMMA (...,)
Answer [=]
C
Explanation:

The data type (primitive or object) immediately followed by three dots and a variable name separated by a space create a Variable Argument.

13) How many maximum numbers of Varargs or Variable-Arguments can be there in a method or a constructor in Java?
A) 1
B) 2
C) 8
D) 16
Answer [=]
A
Explanation:

Yes, only one. Because a VARARG can be present only as the last parameter or argument.

14) What is the maximum number of methods or constructors with Varargs in a single Java class?
A) 1
B) 2
C) 8
D) There is no limit
Answer [=]
D
Explanation:

Yes. There is no limit. There can be any number of methods or constructors with one Vararg per each method or constructor.