recently I was preparing for java interview and I come across some tricky question, I thought to document those questions and there answers for future reference for myself and others.
so here are my list of 10 most tricky questions in java interview and there answers best of my knowledge, most difficult part of answering tricky question is understanding what interviewer is expecting, there could be multiple answer for a tricky question.
1) Why multiple inheritance is not supported in Java ?
short answer is because of diamond pattern, diamond pattern creates ambiguity and make problem for compiler. anyway java supports multiple inheritance via interfaces.
2) Why String is immutable in java ?
Answer of this question is not easy an this is also called Why String is final in java. I think there are three reasons:
1) string pool requires string to be immutable otherwise shared reference can be changed from anywhere.
2) security because string is shared on different area like file system, networking connection, database connection , having immutable string allows you to be secure and safe because no one can change reference of string once it gets created. if string had been mutable anyone can surpass the security be logging in someone else name and then later modifying file belongs to other.
3) Explain race condition in Java hashmap ?
This is the most tricky Java interview question and not many people know answer of this as what is race condition or that hashmap could run into race condition if it would be modified by two thread simultaneous and one thread tries to resize or rehash the map because of capacity crossing threshold value. since hashmap maintains a linked list of element in bucket and while copying from one hashmap to other or old to new order of linked list got reversed, which could result in infinite loop if two threads are doing resizing at same time.
4) How to detect deadlock and fix it ?
I don't know answer of this tricky question, they even asked to write code to prevent deadlock, write code to guaranteed deadlock and so on , let me know if you find any answer of this tricky question.
5) When a singleton is not singleton in Java ?
Another difficult question whose answer is tricky I guess three places Serialization, RMI and ClassLoader as different ClassLoader can load multiple classes
6) difference between noclassdeffounderror and classnotfoundexception ?
7) Why equals() method must be compatible with compareTo in java ?
otherwise some set e.g. TreeSet and TreeMap which uses compareTo will not able to detect duplicates and allow duplicate inside set.
8) Can we call static method with null object ?
yes we can call because static method is bound at compile time and only type of variable is used for static binding not the value of object.
9) how does volatile variable works in Java ?
10) How to detect memory leak in Java.
For most of this tricky questions in Java, answers can be found this questions for doing google .
Mir on September 01, 2019:
These are the 10 most easy question NOT tricky questions. Kuch bhi :(
Richard on September 09, 2016:
This is so terribly written. Jesus. No punctuation, massive spelling mistakes, terrible grammar, and vague answers.
"short answer is because of diamond pattern, diamond pattern creates ambiguity and make problem for compiler." - Talk about vague and unhelpful. Not to mention - "and make problem for compiler". If English is your second language, I totally understand and sympathize, but if it's not, dear god.
Jorge on June 28, 2015:
How to detect deadlock and fix it ? Using jstack to take a thread dump. It will show all the threads and, if some of them are blocked, it will show you the monitor on which it is blocked
Maha on November 29, 2014:
rrr on March 20, 2014:
Rajiv on September 10, 2012:
I faced most of tricky questions in Java either from overloading or overriding. here is the another list of tricky java question http://java67.blogspot.sg/2012/09/top-10-tricky-ja...
Rohit58 on September 02, 2012:
Good question, here is another list of tough and tricky Java question answer http://java67.blogspot.sg/2012/09/top-10-tough-cor...
Rachel on May 28, 2012:
Here are few more tricky, tough or what you can call rather difficult core Java questions. these are meant to be asked for 5 to 6 years experience java guys.
1)What is ReadWrite Lock? How it is better than synchronized keyword ?
2)Why ListIterator has add() method but not Iterator?
3)Can you replace hashtable with ConcurrentHashMap