wait(): when synchronized multiple threads access same Object one by one. sleep(): when synchronized multiple threads wait for sleep over of sleeping thread. Hold lock: wait(): release the lock for other objects to have chance to execute. sleep(): keep lock for at least t times if timeout specified or somebody interrupt. Wake-up condition: More @Wikipedia
Hover over any link to get a description of the article. Please note that search keywords are sometimes hidden within the full article and don't appear in the description or title.