This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.
Yes, wait() causes the thread that calls it to give up its lock.
Otherwise a notify() could never be called, as notify can only be called in a synchronized block or method. And the thread that calls notify() must have the lock on that object. If it were the case, that wait() kept its lock, no other thread could ever get it.