Monday, 30 May 2016

Commonly asked differences during Java interview.

Map vs Set vs List

ArrayList vs Vector
HashMap vs HashTable
HashMap vs HashSet

Iterator vs Enumeration
Fail-fast and Fail-safe Iterators
Iterator vs ListIterator
Why ListIterator has added() method but Iterator does not have it?
Comparable and Comparator Interface

Working example of compareTo(), comparable, equals(), hashCode().


Synchronized Collection vs Concurrent collection

ArrayList vs Vector vs CopyOnWriteArrayList
HashMap vs HashTable vs ConcurrentHashMap
Can we replace Hashtable with ConcurrentHashMap?
Queue - BlockingQueue
HashTable vs ConcurrentHashMap (putIfAbsent)
What is lock striping in java? 


poll() vs remove()


Singleton Design Pattern
Iterator Design Pattern.



Commonly asked interview questions:
1.) How Hashmap works in java? 
2.) How Hasmap get() and remove() works in java?
3.) How Hashset works in java?
4.) How does Linkedlist implemented in java? Is it singly linkedlist or doubly linked list?

5.) What is Marker interface or Tag interface? Examples of it(Serializable, Clonnable, RMI and Remote interfaces, RandomAccess...)


6.) Which is better to use? Annotations or Marker interface?
7.) What is Clonnable interface? Why it is use? When it is used? How it is used?
8.) What is Serializable interface? Why it is use? When it is used? How it is used?

9.) What is TreeMap, Naviagable Map and WeakHashMap, IdentityHashMap?

10.) WeakReference vs SoftReference vs PhantomReference vs Strong reference

11.) How can an Arraylist be synchronized without using Vector?

Ans) Arraylist can be synchronized using:
Collections.synchronizedList(List list)
Collections.synchronizedMap(Map map)
Collections.synchronizedCollection(Collection c)

12.)  How do you remove an entry from a Collection? OR 

What is difference between remove() method of Collection and remove() method of Iterator?
Which one you will use, while removing elements during iteration.


Thread:

What is the difference between start and run method in Java Thread? 
( thread.start() vs thread.run() )
How to avoid deadlock?
Write producer-consumer problem?
Solve it by using wait() and notify(). Solve it by using BlockinQueue. Which is better?

What are the other thread scheduler? like quartz, threadpool Executors?





List Set Map
Ordered collection
(It preserves the order on which an element is inserted. )

(Also known as Dynamic Array.)
Unordered collection
(It does not preserve the order.)


(We can have SortedSet which offers to sort functionality e.g: TreeSet.)


(Also we can change/override it by using Comparator and Comparable. )
Key-Value based collection
List allows duplicate values.
It can store multiple times null as value.
Set does not allow duplicate values.
So it can store only one time null as value.
(Duplication of object is detected by using equals() )


(If two objects are equal using equals() then the later object will replace the former object.)


(In case of SortedSet like TreeSet, compareTo() is used to compare object and decide whether an object   is duplicate or not. )


Duplicate keys are not allowed.


It can contain only one null key but can contain duplicate values.






e.g. ArrayList, LinkList, Vector e.g HashSet e.g HashMap, LinkedHashMap,   TreeMap


Sunday, 29 May 2016

Ant and triangle problem

Three ants are sitting at the three corners of an equilateral triangle. 
Each ant starts randomly picks a direction and starts to move along the edge of the triangle. 
What is the probability that none of the ants collide?
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Answer: 0.25 or 25%
Probability of no collision = Probability of all ants go in a clockwise direction + Probability of all goes in an anti-clockwise direction) 
Probability of no collision = (0.5 * 0.5 * 0.5) + (0.5 * 0.5 * 0.5) 
Probability of no collision = 0.25

100 door puzzle

You have 100 doors in a row that are all initially closed. you make 100 passes by the doors starting with the first door every time.
The first time through you visit every door and toggle the door (if the door is closed, you open it, if its open, you close it). The second time you only visit every 2nd door (door #2, #4, #6). The third time, every 3rd door (door #3, #6, #9), etc, until you only visit the 100th door.

Question: what state are the doors in after the last pass? which are open which are closed?
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Answer:
Only perfect square doors will be open at the end.
( If all doors are initially opened then only perfect square doors will be close at the end. )

Two door, which path leads to heaven?

You are standing before two doors. One of the path leads to heaven and the other one leads to hell.

There are two guardians, one by each door.
You know one of them always tells the truth and the other always lies, but you don’t know who is the honest one and who is the liar.

You can only ask one question to one of them in order to find the way to heaven.

What is the question?
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Answer:
"If I ask the other guard about which side leads to heaven, what would he answer?"

Let say path of heaven is 'Left' then...
Answer from the guard who always speaks truth... 'Right'.
Answer from the guard who always lie... 'Right'.

So you can get that hell is on Right side and heaven is in Left.  :D

( 
Note:
If you ask "which side leads to heaven" then
Answer from the guard who always speaks truth... 'Left'.
Answer from the guard who always lie... 'Right'.
:) 

)

Find black/white pair of socks

There are 10 black socks and 10 white socks in a drawer.
Now you have to go out wearing your shoes.
So how many maximum number of times you need to remove the sock from drawer so that you can go out?

You can remove only 1 sock at a time. Obviously, you can’t go outside wearing different socks!
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Answer:
3