+91-9650292515 torusacademy@gmail.com

Interview Question

(Java interview Questions and Answers )

  • Q1. What is garbage collection? What is the process that is responsible for doing that in java?

Reclaiming the unused memory by the invalid objects. Garbage collector is responsible for this process

  • Q2. What kind of thread is the Garbage collector thread?

It is a daemon thread.

  • Q3. What is a daemon thread?

These are the threads which can run without user intervention. The JVM can exit when there are daemon thread by killing them abruptly.

  • Q4. How will you invoke any external process in Java?


  • Q5. What is the finalize method do?

Before the invalid objects get garbage collected, the JVM give the user a chance to clean up some resources before it got garbage collected.

  • Q6. What is mutable object and immutable object?

If a object value is changeable then we can call it as Mutable object. (Ex., StringBuffer, …) If you are not allowed to change the value of an object, it is immutable object. (Ex., String, Integer, Float, …)

  • Q7. What is the basic difference between string and stringbuffer object?

String is an immutable object. StringBuffer is a mutable object.

  • Q8. What is the purpose of Void class?

The Void class is an uninstantiable placeholder class to hold a reference to the Class object representing the primitive Java type void.

  • Q9. What is reflection?

Reflection allows programmatic access to information about the fields, methods and constructors of loaded classes, and the use reflected fields, methods, and constructors to operate on their underlying counterparts on objects, within security restrictions.

  • Q10. What is the base class for Error and Exception?


  • Q11. What is the byte range?

128 to 127

  • Q12. What is the implementation of destroy method in java.. is it native or java code?

This method is not implemented.

  • Q13. What is a package?

To group set of classes into a single unit is known as packaging. Packages provides wide namespace ability.

  • Q14. What are the approaches that you will follow for making a program very efficient?

By avoiding too much of static methods avoiding the excessive and unnecessary use of synchronized methods Selection of related classes based on the application (meaning synchronized classes for multiuser and non-synchronized classes for single user) Usage of appropriate design patterns Using cache methodologies for remote invocations Avoiding creation of variables within a loop and lot more.

  • Q15. What is a DatabaseMetaData?

Comprehensive information about the database as a whole.

  • Q16. What is Locale?

A Locale object represents a specific geographical, political, or cultural region

  • Q17. What is functional system testing ?

Testing the end to end functionality of the system as a whole.

  • Q18. How will you load a specific locale?

Using ResourceBundle.getBundle(…);

  • Q19. What is JIT and its use?

Really, just a very fast compiler… In this incarnation, pretty much a one-pass compiler — no offline computations. So you cant look at the whole method, rank the expressions according to which ones are re-used the most, and then generate code. In theory terms, its an on-line problem.

  • Q20. Is JVM a compiler or an interpreter?


  • Q21. When you think about optimization, what is the best way to findout the time/memory consuming process?

Using profiler

  • Q22. What is the purpose of assert keyword used in JDK1.4.x?

In order to validate certain expressions. It effectively replaces the if block and automatically throws the AssertionError on failure. This keyword should be used for the critical arguments. Meaning, without that the method does nothing.

  • Q23. How will you get the platform dependent values like line separator, path separator, etc., ?

Using Sytem.getProperty(…) (line.separator, path.separator, …)

  • Q24. What is skeleton and stub? what is the purpose of those?

Stub is a client side representation of the server, which takes care of communicating with the remote server. Skeleton is the server side representation. But that is no more in use… it is deprecated long before in JDK.

  • Q25. What is the final keyword denotes?

final keyword denotes that it is the final implementation for that method or variable or class. You cant override that method/variable/class any more.

  • Q26. What is the significance of ListIterator?

You can iterate back and forth.

  • Q27. What is the major difference between LinkedList and ArrayList?

LinkedList are meant for sequential accessing. ArrayList are meant for random accessing.

  • Q28. What is nested class?

If all the methods of a inner class is static then it is a nested class.

  • Q29. What is inner class?

If the methods of the inner class can only be accessed via the instance of the inner class, then it is called inner class.

  • Q30. What is composition?

Holding the reference of the other class within some other class is known as composition.

  • Q31. What is aggregation?

It is a special type of composition. If you expose all the methods of a composite class and route the method call to the composite method through its reference, then it is called aggregation.

  • Q32. What are the methods in Object?

clone, equals, wait, finalize, getClass, hashCode, notify, notifyAll, toString

  • Q33. Can you instantiate the Math class?

You cant instantiate the math class. All the methods in this class are static. And the constructor is not public.

  • Q34. What is singleton?

It is one of the design pattern. This falls in the creational pattern of the design pattern. There will be only one instance for that entire JVM. You can achieve this by having the private constructor in the class. For eg., public class Singleton { private static final Singleton s = new Singleton(); private Singleton() { } public static Singleton getInstance() { return s; } // all non static methods … }

  • Q35. What is DriverManager?

The basic service to manage set of JDBC drivers.

  • Q36. What is Class.forName() does and how it is useful?

It loads the class into the ClassLoader. It returns the Class. Using that you can get the instance ( "class-instance".newInstance() ).