Core Java Interview Question Page 4
Question: What is the difference between checked and Unchecked Exceptions in Java ?
Answer: All predefined exceptions in Java are either a checked exception or an unchecked exception. Checked exceptions must be caught using try .. catch() block or we should throw the exception using throws clause. If you dont, compilation of program will fail. Java Exception Hierarchy +--------+ | Object | +--------+ | | +-----------+ | Throwable | +-----------+ / \ / \ +-------+ +-----------+ | Error | | Exception | +-------+ +-----------+ / | \ / | \ \________/ \______/ \ +------------------+ unchecked checked | RuntimeException | +------------------+ / | | \ \_________________/ unchecked
Question: Explain garbage collection ?
Answer: Garbage collection is an important part of Java's security strategy. Garbage collection is also called automatic memory management as JVM automatically removes the unused variables/objects from the memory. The name "garbage collection" implies that objects that are no longer needed by the program are "garbage" and can be thrown away. A more accurate and up-to-date metaphor might be "memory recycling." When an object is no longer referenced by the program, the heap space it occupies must be recycled so that the space is available for subsequent new objects. The garbage collector must somehow determine which objects are no longer referenced by the program and make available the heap space occupied by such unreferenced objects. In the process of freeing unreferenced objects, the garbage collector must run any finalizers of objects being freed.
Question: How you can force the garbage collection ?
Answer: Garbage collection automatic process and can't be forced. We can call garbage collector in Java by calling System.gc() and Runtime.gc(), JVM tries to recycle the unused objects, but there is no guarantee when all the objects will garbage collected.
Question: What are the field/method access levels (specifiers) and class access levels ?
Answer: Each field and method has an access level:
- private: accessible only in this class
- (package): accessible only in this package
- protected: accessible only in this package and in all subclasses of this class
- public: accessible everywhere this class is available
Similarly, each class has one of two possible access levels:
- (package): class objects can only be declared and manipulated by code in this package
- public: class objects can be declared and manipulated by code in any package
Question: What are the static fields & static Methods ?
Answer: If a field or method defined as a static, there is only one copy for entire class, rather than one copy for each instance of class. static method cannot accecss non-static field or call non-static method
Example Java Code
static int counter = 0;
A public static field or method can be accessed from outside the class using either the usual notation:
Java-class-object.field-or-method-name
or using the class name instead of the name of the class object:
Java- class-name.field-or-method-name
Question: What are the Final fields & Final Methods ?
Answer: Fields and methods can also be declared final. A final method cannot be overridden in a subclass. A final field is like a constant: once it has been given a value, it cannot be assigned to again.
Java Code
private static final int MAXATTEMPTS = 10;
Question: Describe the wrapper classes in Java ?
Answer: Wrapper class is wrapper around a primitive data type. An instance of a wrapper class contains, or wraps, a primitive value of the corresponding type.
Following table lists the primitive types and the corresponding wrapper classes:
Primitive |
Wrapper |
boolean |
java.lang.Boolean |
byte |
java.lang.Byte |
char |
java.lang.Character |
double |
java.lang.Double |
float |
java.lang.Float |
int |
java.lang.Integer 0 |
long |
java.lang.Long |
short 1 |
java.lang.Short |
void |
java.lang.Void 2 |