10 Tricky Interview Questions for Java Devs
Here's a list of ten popular interview questions that Java developers are likely to be asked in an interview, as well as links to relevant explanations for more details.
Here is a list of 10 tricky/popular interview questions and answers for Java developers. I got these questions out from StackOverflow. You are a junior or intermediate level Java developer and are planning to appear for interviews in the near future, you would probably find these questions to be useful enough.
Q1: Is Java “pass-by-reference” or “pass-by-value”?
Ans: Java is always “pass by value”. Read the details on this page, Is Java “pass-by-reference” or “pass-by-value”?
Q2: How can you create a memory leak in Java?
Ans: This is possible by making use of a class loader and ThreadLocal. Read the details on this page, Creating a memory leak in Java
Q3: What is the difference between package private, public, protected, and private?
Ans:
- A private member variable is accessible within the same class.
- A package private variable (member variable with no access specifier) is accessible within all classes in the same package.
- A protected variable is accessible within all classes in the same package and within subclasses in other packages.
- A public member is accessible to all classes.
Read more details on this page.
Q4: What are two differences between a HashMap and a Hashtable?
Ans: A Hashtable is synchronized and does not allow null keys or values. Read more details on this page: differences between HashMap and Hashtable.
Q5: What are different techniques for avoiding != null statements (Not Null Check)?
Ans: Usage of assert statements is one way. Custom annotations can also be defined for NotNull checks. See more details on this page: How to avoid != null Statements.
Q6: Does “finally” always execute in Java?
Ans: Not in a scenario such as an invocation of a “System.exit()” function, an infinite loop, or system crash, etc. More details can be found here: Does finally always execute in Java?
Q7: Is it possible to call one constructor from another in Java?
Ans: Yes, but one can only chain to one constructor — and it has to be the first statement in your constructor body. More details can be found on this page: How do I call one constructor from another in Java?
Q8: Which one should be used, “implements Runnable” vs. “extends Thread”?
Ans:“Implements Runnable” is the preferred way. Read further details here: Implements Runnable vs. Extends Thread
Q9: Is it possible to break out of nested loops in Java?
Ans: Yes, and here is an example of how to do it: Breaking out of nested loops in Java.
Q10: What is reflection and why is it useful?
Ans: Reflection is used to describe code that is able to inspect other code in the same system. Read the reasons for doing so here: Why Reflection is useful.