Java Interview Questions-Core Faq - 3
Please click on the questions to see the answers
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.
The Exception class has two main subclasses : IOException class and RuntimeException Class
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.
ArithmeticException is thrown when an exceptional arithmetic condition has occurred. For example, an integer "divide by zero" throws an instance of this class.
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.
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.
Checked exceptions are checked at compile-time.
If exceptions are not handled properly, the program terminates abruptly and may cause severe consequences.
- throw: Java throw keyword is used to explicitly throw an exception.
- throws: A method signature token to specify checked exceptions thrown by that method.
- throwable: The Throwable class is the superclass of all errors and exceptions in the Java language.
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.
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.
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:
The only times finally won't be called are:
- If you call System.exit()
- If the JVM crashes first
- If there is an infinite loop in the try block
- If the power turns off
The result is a String object.
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.
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.
The read() method returns -1 when it has reached the end of a file.
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.
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
Since Java 5 you can use Arrays.toString(arr).