10 most tricky question in java - Answers
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 .