Java is one of the most popular and widely used programming languages in the world. It is famous for its simplicity, platform independence, and robust performance. If you are a beginner or want to polish your Java knowledge, practicing with multiple-choice questions is a great way to test and improve your understanding.
In this blog, we have compiled 50 Java MCQs and every one of them was created to challenge your understanding of the Java concepts-the syntax to the advanced stuff, such as Object-Oriented Programming (OOP), exceptions, multithreading, and everything else. Each question carries an elaborate explanation to learn the underlying concept.
MCQs on Java
1. Which of the following is the default value of a boolean variable in Java?
- A) true
- B) false
- C) 0
- D) null
Answer: B) false
A boolean variable in Java is automatically initialized to false
when declared as a class member.
2. What is the size of a char
in Java?
- A) 8 bits
- B) 16 bits
- C) 32 bits
- D) 64 bits
Answer: B) 16 bits
In Java, a char
is a 16-bit Unicode character, capable of representing characters from various international languages.
3. Which method in the Thread
class is used to start a thread in Java?
- A) start()
- B) run()
- C) begin()
- D) execute()
Answer: A) start()
The start()
method is used to begin the execution of a thread in Java. It invokes the run()
method in a separate call stack.
4. Which keyword is used to define a constant in Java?
- A) const
- B) constant
- C) final
- D) static
Answer: C) final
The final
keyword in Java is used to define constants. Once a value is assigned to a final
variable, it cannot be changed.
5. What is the correct syntax for a for
loop in Java?
- A) for(int i=0; i<=10; i++)
- B) for(int i=0; i<10; i++)
- C) for(int i=0; i<10; ++i)
- D) All of the above
Answer: D) All of the above
All three options are valid ways to write a for
loop in Java. They perform the same task, differing only slightly in terms of incrementing the counter variable.
6. Which of the following is the parent class of every class in Java?
- A) Object
- B) Class
- C) Parent
- D) Super
Answer: A) Object
Every class in Java implicitly extends the Object
class, making it the root of the class hierarchy in Java.
7. Which method is used to compare two strings in Java?
- A) equals()
- B) compare()
- C) equalTo()
- D) match()
Answer: A) equals()
The equals()
method compares the contents of two strings in Java. It returns true
if the strings are identical, otherwise false
.
8. Which of the following is not a valid access modifier in Java?
- A) public
- B) private
- C) protected
- D) restricted
Answer: D) restricted
In Java, valid access modifiers are public
, private
, protected
, and default (package-private). There is no restricted
access modifier.
9. What is the purpose of the super
keyword in Java?
- A) To refer to the current object
- B) To call the constructor of the parent class
- C) To declare a subclass
- D) To access private members
Answer: B) To call the constructor of the parent class
The super
keyword is used to invoke the parent class’s constructor and its methods, helping in inheritance.
10. What does JVM stand for?
- A) Java Virtual Manager
- B) Java Virtual Machine
- C) Java Visual Machine
- D) Java Visual Manager
Answer: B) Java Virtual Machine
JVM stands for Java Virtual Machine, and it allows Java programs to run on any device or operating system by interpreting the bytecode.
11. What is the default value of an integer variable in Java?
- A) 0
- B) 1
- C) null
- D) undefined
Answer: A) 0
In Java, an integer variable is initialized to 0
by default if it is declared as a member of a class.
12. What is the result of the expression 10 / 4
in Java?
- A) 2
- B) 2.5
- C) 2.0
- D) Compilation error
Answer: A) 2
In Java, dividing two integers results in an integer. The remainder is discarded, so 10 / 4
evaluates to 2
.
13. What does the finally
block do in Java exception handling?
- A) It executes only if an exception occurs
- B) It executes after the try block and any catch blocks
- C) It executes before the try block
- D) It catches exceptions
Answer: B) It executes after the try block and any catch blocks
The finally
block is always executed, whether an exception occurs or not, making it ideal for cleaning up resources like closing files.
14. Which of the following is not a primitive data type in Java?
- A) int
- B) float
- C) double
- D) String
Answer: D) String
In Java, String
is a class, not a primitive data type. Primitive types include int
, float
, double
, etc.
15. What will the following code print?
javaCopy codeString s = "Hello";
System.out.println(s.charAt(1));
- A) H
- B) e
- C) l
- D) o
Answer: B) e
The charAt()
method returns the character at the specified index. The index starts at 0, so charAt(1)
returns the character at position 1, which is e
.
16. Which of these is used to read user input in Java?
- A) read()
- B) input()
- C) Scanner class
- D) System.in()
Answer: C) Scanner class
The Scanner
class in Java is used to read input from the user through standard input, such as keyboard input.
17. Which of the following statements is true regarding Java arrays?
- A) The size of an array cannot be changed after it is created
- B) Arrays can only hold integers
- C) Array indices start at 1
- D) An array can hold only one type of data
Answer: A) The size of an array cannot be changed after it is created
Once an array is created in Java, its size is fixed. If you need a dynamic size, you can use collections like ArrayList
.
18. Which of these collections does not allow duplicate elements?
- A) List
- B) Set
- C) Queue
- D) Stack
Answer: B) Set
A Set
in Java does not allow duplicate elements. In contrast, a List
allows duplicates, and a Queue
and Stack
are used for specific types of data management.
19. Which method is used to find the length of a string in Java?
- A) getSize()
- B) length()
- C) getLength()
- D) size()
Answer: B) length()
The length()
method is used to find the number of characters in a string, including spaces and special characters.
20. What does ArrayList
in Java implement?
- A) List
- B) Map
- C) Set
- D) Queue
Answer: A) ListArrayList
implements the List
interface, which allows it to maintain the order of insertion and allows duplicates.
21. Which of the following is not a valid Java identifier?
- A) _variable
- B) 2variable
- C) variable2
- D) $variable
Answer: B) 2variable
A valid Java identifier cannot start with a number. It must begin with a letter, underscore (_
), or dollar sign ($
).
22. Which of the following statements is true about constructors in Java?
- A) Constructors cannot have return types
- B) Constructors can have multiple return types
- C) Constructors must be defined with the
void
return type - D) Constructors can be called directly using the class name
Answer: A) Constructors cannot have return types
Constructors in Java are used to initialize objects. They do not have a return type, not even void
.
23. Which of the following is used to handle exceptions in Java?
- A) try-catch block
- B) if-else block
- C) switch-case block
- D) for loop
Answer: A) try-catch block
The try-catch
block is used to handle exceptions in Java. Code that may throw an exception is placed inside the try
block, and the catch
block is used to handle the exception.
24. What is the correct way to declare an array in Java?
- A) int arr[] = new int[5];
- B) int[] arr = new int[5];
- C) int arr = new int[5];
- D) Both A and B
Answer: D) Both A and B
Both int arr[] = new int[5];
and int[] arr = new int[5];
are valid ways to declare and initialize an array in Java.
25. Which of the following is the base class for all exceptions in Java?
- A) Error
- B) Exception
- C) Throwable
- D) RuntimeException
Answer: C) Throwable
The Throwable
class is the superclass of all errors and exceptions in Java. Both Error
and Exception
are subclasses of Throwable
.
26. What is the output of the following code?
javaCopy codeint a = 5;
int b = 10;
System.out.println(a > b ? a : b);
- A) 5
- B) 10
- C) true
- D) false
Answer: B) 10
This is a ternary conditional expression. Since a > b
is false
, the value after the :
is chosen, which is b
, i.e., 10
.
27. Which of the following is a correct statement about Java methods?
- A) A method can have multiple return types
- B) A method can have more than one
main
function in a class - C) A method can be overloaded with the same number of parameters
- D) A method can return multiple values
Answer: D) A method can return multiple values
While a method can return only one value, it can return multiple values if they are wrapped in an array, list, or object.
28. Which of the following is not a valid keyword in Java?
- A) goto
- B) synchronized
- C) this
- D) instanceof
Answer: A) gotogoto
is a reserved keyword in Java but is not used. It was reserved for future use but never implemented.
29. Which of the following classes are part of the Java Collections Framework?
- A) List
- B) Set
- C) Map
- D) All of the above
Answer: D) All of the aboveList
, Set
, and Map
are all interfaces in the Java Collections Framework that define various types of collections, such as ArrayList
, HashSet
, and HashMap
.
30. What is the output of the following code?
javaCopy codeString str = "Java";
str = str.concat(" Programming");
System.out.println(str);
- A) Java
- B) Java Programming
- C) JavaProgramming
- D) Compilation error
Answer: B) Java Programming
The concat()
method adds the specified string to the end of the current string, resulting in “Java Programming.”
31. Which of the following statements is true about static methods in Java?
- A) A static method can access non-static variables
- B) A static method can access other static methods
- C) A static method cannot access static variables
- D) A static method must be defined within the main method
Answer: B) A static method can access other static methods
Static methods can access other static methods and static variables but cannot access instance variables directly.
32. In Java, which operator is used to allocate memory to an object?
- A) malloc()
- B) alloc()
- C) new
- D) create
Answer: C) new
In Java, the new
keyword is used to allocate memory to an object, creating an instance of a class.
33. Which of the following statements about the StringBuilder
class in Java is true?
- A) It is immutable
- B) It can be used to modify strings
- C) It is slower than
String
for concatenation - D) It does not provide methods for appending data
Answer: B) It can be used to modify stringsStringBuilder
is a mutable class, and it allows modification of strings without creating new objects, making it more efficient for concatenation operations.
34. Which of the following is not a method of the Math
class in Java?
- A) sqrt()
- B) pow()
- C) random()
- D) max()
Answer: D) max()
The max()
method is not a method of the Math
class in Java. It is a method of the Integer
class. The Math
class includes sqrt()
, pow()
, and random()
.
35. Which of the following types of exceptions are checked exceptions in Java?
- A) ArithmeticException
- B) NullPointerException
- C) IOException
- D) IndexOutOfBoundsException
Answer: C) IOExceptionIOException
is a checked exception that must be either caught or declared to be thrown in the method signature. ArithmeticException
, NullPointerException
, and IndexOutOfBoundsException
are unchecked exceptions.
36. What does the final
keyword mean when applied to a method in Java?
- A) The method cannot be overridden
- B) The method cannot be called
- C) The method cannot have parameters
- D) The method cannot be static
Answer: A) The method cannot be overridden
When a method is marked final
, it cannot be overridden by subclasses, ensuring that its implementation remains unchanged.
37. What will the following code print?
javaCopy codeint[] arr = {1, 2, 3, 4};
System.out.println(arr.length);
- A) 1
- B) 2
- C) 3
- D) 4
Answer: D) 4
The length
property of an array in Java returns the number of elements in the array, which is 4
in this case.
38. Which of the following interfaces does the ArrayList
class implement?
- A) List
- B) Set
- C) Map
- D) Queue
Answer: A) ListArrayList
implements the List
interface, which defines methods for maintaining ordered collections that can have duplicate elements.
39. What is the default value of a double
variable in Java?
- A) 0
- B) 0.0
- C) null
- D) undefined
Answer: B) 0.0
A double
variable in Java is initialized to 0.0
by default if it is declared as a class member.
40. Which of the following is the correct way to declare an anonymous inner class in Java?
- A) class MyClass extends Thread { }
- B) new MyClass() { }
- C) MyClass myObj = new MyClass();
- D) new Thread() { }
Answer: D) new Thread() { }
Anonymous inner classes are used to extend or implement a class or interface without creating a named class. Option D shows the correct syntax for declaring an anonymous inner class.
41. Which of these is used for synchronization in Java?
- A) wait()
- B) sleep()
- C) synchronized block
- D) yield()
Answer: C) synchronized block
The synchronized
block is used in Java to ensure that only one thread can access a particular piece of code at a time, preventing thread interference.
42. What is the default value of a reference variable in Java?
- A) null
- B) 0
- C) false
- D) undefined
Answer: A) null
A reference variable (such as an object) is initialized to null
by default in Java.
43. Which of the following is a valid method signature in Java?
- A) void method()
- B) int 1method()
- C) String @method()
- D) float &method()
Answer: A) void method()
A method signature consists of the return type, method name, and parameters. 1method()
, @method()
, and &method()
are not valid method names.
44. Which of these classes belong to the java.util
package in Java?
- A) String
- B) StringBuilder
- C) ArrayList
- D) System
Answer: C) ArrayListArrayList
belongs to the java.util
package. String
and StringBuilder
belong to java.lang
, and System
belongs to java.lang
.
45. Which of the following is an example of method overloading in Java?
- A) Multiple methods with the same name and different return types
- B) Multiple methods with the same name and parameters
- C) Multiple methods with the same name and different number of parameters
- D) A method that overrides another method
Answer: C) Multiple methods with the same name and different number of parameters
Method overloading occurs when multiple methods have the same name but different parameters (either in type or number).
46. Which of the following is true about abstract classes in Java?
- A) An abstract class cannot have constructors
- B) Abstract classes cannot have fields
- C) Abstract classes cannot be instantiated
- D) Abstract classes cannot have methods
Answer: C) Abstract classes cannot be instantiated
Abstract classes can have constructors, fields, and methods, but they cannot be instantiated directly.
47. Which of the following statements is true about a HashMap
in Java?
- A) It maintains the order of insertion
- B) It allows duplicate keys
- C) It allows null keys and values
- D) It is synchronized
Answer: C) It allows null keys and values
A HashMap
allows one null
key and multiple null
values. It does not guarantee the order of insertion and is not synchronized.
48. Which of the following is not an interface in Java?
- A) Runnable
- B) Comparator
- C) Iterable
- D) ArrayList
Answer: D) ArrayListArrayList
is a class, not an interface. Runnable
, Comparator
, and Iterable
are all interfaces in Java.
49. What is the default value of a float
variable in Java?
- A) 0
- B) 0.0
- C) 0.0f
- D) null
Answer: C) 0.0f
The default value of a float
variable in Java is 0.0f
, indicating that it is a floating-point number.
50. Which of the following statements is true about constructors in Java?
- A) Constructors cannot be overloaded
- B) A constructor must have a return type
- C) A constructor is automatically called when an object is created
- D) A constructor can be static
Answer: C) A constructor is automatically called when an object is created
Constructors are automatically invoked when an object of the class is instantiated. They are used to initialize the object.
This concludes the full set of 50 Java MCQs. I hope you found these questions helpful in preparing for Java programming challenges or exams. Keep practicing to strengthen your Java skills!
Also Read: Data Structure MCQs for all the Upcoming Exams
You may also like to Read This: DPSP and Fundamental Rights: MCQs for SSC, UPSC and other Exams
As a seasoned content writer specialized in the fitness and health niche, Arun Bhagat has always wanted to promote wellness. After gaining proper certification as a gym trainer with in-depth knowledge of virtually all the information related to it, he exercised his flair for writing interesting, informative content to advise readers on their healthier lifestyle. His topics range from workout routines, nutrition, and mental health to strategies on how to be more fit in general. His writing is informative but inspiring for people to achieve their wellness goals as well. Arun is committed to equipping those he reaches with the insights and knowledge gained through fitness.