Java Interview Questions-Core Faq - 3

What's the base class of all exception classes?

Java exception classes are organised into a hierarchy. There is a basic exception class called Exception as you might expect. But in fact, the base of the hierarchy starts not with Exception but with a class called Throwable, which is then subclassed into Exception and Error . This class (Throwable) serves as the base class for an entire family of classes, declared in java.lang, that your program can instantiate and throw.

Which are the two subclasses under Exception class?

The Exception class has two main subclasses : IOException class and RuntimeException Class

What is difference between Checked Exception and Unchecked Exception?

Checked exceptions are checked at compile time by the JVM(Java Virtual Machine) and its related to resources(files/db/stream/socket etc). The classes that extend Throwable class except RuntimeException and Error are known as checked exceptions e.g. IOException , SQLException etc. The classes that extend RuntimeException are known as unchecked exceptions. Unchecked exceptions are purely programmatic errors, such as logic errors or improper use of an API, null data or even failures in business logic can lead to runtime exceptions .

When ArithmeticException is thrown?

ArithmeticException is thrown when an exceptional arithmetic condition has occurred. For example, an integer "divide by zero" throws an instance of this class.

What is the difference between error and an exception?

Exceptions are those which can be handled at the run time whereas errors cannot be handled. Recovering from Error is not possible. The only solution to errors is to terminate the execution. Where as you can recover from Exception by using either try-catch blocks or throwing exception back to caller.

Can finally block be used without catch?

Yes, it is possible to have try block without catch block by using finally block. That means, try block can be followed by either catch block or finally block . The catch block is optional. You must have a try block with a finally block.

Which types of exceptions are caught at compile time?

Checked exceptions are checked at compile-time .

What happens if an exception is not handled in a program?

If exceptions are not handled properly, the program terminates abruptly and may cause severe consequences.

What is the difference between throw, throws and Throwable?

  1. throw: Java throw keyword is used to explicitly throw an exception.

  2. throws: A method signature token to specify checked exceptions thrown by that method.

  3. throwable: The Throwable class is the superclass of all errors and exceptions in the Java language.

Does system.exit() in try block executes finally block?

System.exit() exits the program immediately and it will not execute finally block . system.exit() will be the last executed statement, only statements preceding these system.exit() statements are executed.

What causes a java.lang.ArrayIndexOutOfBoundsException and how do I prevent it?

ArrayIndexOutOfBoundsException means that you are trying to access an index of an array which is not valid as it is not in between the bounds. To avoid the ArrayIndexOutOfBoundsException use an index within specified index range. And always check whether your index is > = array.length.

Incase, there is a return at the end of try block, will execute finally block?

Yes, the finally block will be executed even after writing return statement at the end fo try block. It returns after executing finally block.

The following block would return false:

try { return true; } finally { return false; }

The only times finally won't be called are:

  1. If you call System.exit()
  2. If the JVM crashes first
  3. If there is an infinite loop in the try block
  4. If the power turns off

What happens when you add a double value to a String?

The result is a String object.

When parseInt() method can be used?

Integer is wrapper class of primitives type int and parseInt() is a static method of wrapper class Integer which returns equivalent int or integral value of string given as parameter.
Integer intValue = Integer.parseInt("100");

Non static method is usually called by just declaring method_name(argument) however in this case since the method is static, it should be called by appending the class name as suffix.

What value does read() return when it has reached the end of a file?

The read() method returns -1 when it has reached the end of a file.

Can you serialize static fields of a class?

Static Variables are not serialized, so during deserialization static variable value will loaded from the class and only the current value will be loaded. But, any static variable that is provided a value during class initialization is serialized. However in usual cases, where you would provide the value to a static variable at the main class at run-time would not be serialized .

What is a serialVersionUID and why should I use it?

The serialVersionUID is a special static variable used by the serialization and deserialization process, to verify that a local class is compatible with the class used to serialize an object

How do I convert a numeric IP address into a hostname?

import java.net.InetAddress; public class TestClass{ public static void main(String[] args) { try { InetAddress addr = InetAddress.getByName("50.63.197.203"); String host = addr.getHostName(); System.out.println(host); }catch (Exception e) { System.err.println(e); } } }

What's the simplest way to print a Java array?

Since Java 5 you can use Arrays.toString(arr) .
String[] MyArray = new String[] {"One", "Two", "Three"}; System.out.println(Arrays.toString(MyArray));