"Hi, Amigo!"

Interview questions
1 What is deadlock?
2 What strategies do you know for preventing deadlock?
3 Can deadlock occur when using the wait-notify methods?
4 What is used more often: notify or notifyAll?
5 Is the wait method recommended for use with if or while statements?
6 What happens after a call to notifyAll?
7 What does an object gain by being immutable?
8 What does it mean to be thread-safe?
9 What's a "happens-before" relationship?
10 What is the JMM?
11 What exception will be thrown if you call wait outside of a synchronized block?