1. Sleep is used in general when a thread execution needs to be suspended for a specified time.
wait method is used in connection with Notify.
2. when sleep is used in Synchronized block. if sleep is terminated then the object may continue in locked state.
When wait is terminated the object no longer becomes the locked object.