Java interviews and campus tests lean heavily on object oriented behaviour rather than API recall. This set covers inheritance and polymorphism, interfaces and abstract classes, the collections framework, exception handling, multithreading, string handling, and JVM basics such as garbage collection. Output based questions are included because they expose the gaps that theory questions hide.
Analyze this code: public void test() throws IOException { // method body } What does 'throws' indicate?
Answer: B
The 'throws' keyword declares that a method might throw the specified checked exception. The responsibility of handling is passed to the caller of the method.
Q.202Medium
Which exception hierarchy is correct in Java?
Answer: B
Throwable is the root. It has two subclasses: Exception and Error. Exception has RuntimeException as a subclass. Checked exceptions extend Exception directly.
Q.203Medium
What will happen if you don't catch a checked exception?
Answer: A
Checked exceptions must be either caught in a try-catch block or declared in the method signature with 'throws'. Failure to do so results in a compilation error.
Q.204Medium
Which statement about multiple catch blocks is TRUE?
Answer: B
Only one catch block executes for a thrown exception. The first matching catch block is executed.
Q.205Medium
Analyze the code: public void process() throws IOException { try { readFile(); } catch (FileNotFoundException e) { // handle } } What is the issue here?
Answer: C
Since FileNotFoundException is a subclass of IOException, and readFile() can throw IOException, it should be caught in a separate catch block or the method signature should only throw FileNotFoundException.
Q.206Medium
What happens if you throw an exception inside the finally block?
Answer: A
If an exception is thrown in finally block, it replaces the original exception that was being propagated. The original exception is lost.
Q.207Medium
Consider the code: try (FileReader fr = new FileReader("file.txt")) { // use fr } catch (IOException e) { // handle } What will happen to 'fr' after the try block?
Answer: B
Try-with-resources automatically closes resources implementing AutoCloseable interface, regardless of normal or exceptional termination.
Q.208Medium
Which of these is NOT a correct way to handle checked exceptions?
Answer: D
Checked exceptions must be either caught or declared using throws. Ignoring them causes compilation error.
Q.209Medium
What is the output? public class Test { public static void main(String[] args) { int x = 0; try { x = 5; System.out.println(x / 0); x = 10; } catch (ArithmeticException e) { x = 15; } finally { System.out.println(x); } } }
Answer: C
x becomes 5, then ArithmeticException occurs. x becomes 15 in catch block. Finally block prints 15.
Q.210Medium
What will happen if a finally block contains a return statement?
Answer: A
Return in finally block overrides returns in try or catch blocks. The finally return value is what gets returned.
Q.211Medium
Analyze the code: try { // code } catch (IOException | SQLException e) { // handle } What is this syntax called?
Answer: A
This is called multi-catch or union catch syntax (Java 7+) allowing multiple exception types to be caught in one block using pipe operator.
Q.212Medium
What is the difference between throw and throws?
Answer: A
'throw' keyword actually throws an exception object. 'throws' keyword declares that a method throws a checked exception.
Q.213Medium
Consider this code: public static void main(String[] args) { try { System.out.println("A"); return; } finally { System.out.println("B"); } } What is the output?
Answer: A
Even with return in try block, finally block executes. So 'A' prints first, then 'B' before returning.
Q.214Medium
Which of the following cannot be used with try-with-resources?
Answer: C
Try-with-resources requires resources to implement AutoCloseable interface. String doesn't implement it, so it cannot be used.
Q.215Medium
Which statement is TRUE about exception propagation in Java?
Answer: A
When an exception is thrown and not caught, it propagates up the call stack until a matching catch block is found or the program terminates.
Q.216Medium
What will be the behavior if an exception is thrown in the finally block?
Answer: B
If an exception occurs in finally, it will propagate and override any previous exception from try/catch blocks. However, in try-with-resources, exceptions are suppressed.
Q.217Medium
Which statement about try-with-resources (introduced in Java 7) is correct?
Answer: B
Try-with-resources automatically invokes close() on any resource implementing AutoCloseable interface. Multiple resources can be declared with semicolon separation.
Q.218Medium
Consider this code snippet. What will happen? try { int x = 05; } catch (NullPointerException e) { System.out.println("Caught NPE"); }
Answer: B
05 throws ArithmeticException, not NullPointerException. The catch block only handles NPE, so ArithmeticException propagates to the caller.
Q.219Medium
What is the output of this code? public class ExceptionDemo { public static void main(String[] args) { try { int arr[] = new int[2]; arr[5] = 10; } catch (Exception e) { System.out.println("Exception caught"); } finally { System.out.println("Finally block"); } } }
Answer: B
ArrayIndexOutOfBoundsException is caught by Exception catch block, printing 'Exception caught'. Finally block always executes regardless, printing 'Finally block'.
Q.220Medium
What happens if you use 'return' statement inside a finally block?
Answer: B
A return statement in finally will override and suppress any return value or exception from try/catch blocks. This is considered a bad practice.