sleep() is a blocking operation that keeps a hold on the monitor / lock of the shared object for the specified number of milliseconds.
wait(), on the other hand, simply pauses the thread until either (a) the specified number of milliseconds have elapsed or (b) it receives a desired notification from another thread (whichever is first), without keeping a hold on the monitor/lock of the shared object.
sleep() is most commonly used for polling, or to check for certain results, at a regular interval.
wait() is generally used in multithreaded applications, in conjunction with
notifyAll(), to achieve synchronization and avoid race conditions.
|What are Reflections?|
|What does the following code usually output? And why usually?|
|Where would you use LinkedList and where an ArrayList?|
|Identify the Autoboxing and the Unboxing in the following example:|
|What is Auto-boxing and Unboxing, and does it impact performance?|
|Primitive vs Object types?|
|What is the parent class that every other class extends from?|
|Why is Java said to be 'write once, run everywhere'?|
|What are static methods and fields?|
|What is JPA and how is it different from JDBC?|
|What is the difference between an Application server and servlet container?|
|Given the following example code, which overrides are valid and which one aren't (with explanation)?|
|What types of Exceptions exist in Java (and what is the difference)? Name few common Exceptions of each type.|
|What are default methods?|
|Why are exceptions expensive in Java?|
|What is the problem with the following example and does it compile?|
|What are generics in Java?|
|What's the difference between a HashSet and a LinkedHashSet?|
|What's the synchronized version of a HashMap?|
|What's the difference between StringBuilder and StringBuffer?|