Can you explain generally when a wait() call issued to an object? I thought answer A will be correct. What is the effect of issuing a wait() method on an object A) If a notify() method has already been sent to that object then it has no effect B) The object issuing the call to wait() will halt until another object sends a notify() or notifyAll() method C) An exception will be raised D) The object issuing the call to wait() will be automatically synchronized with any other objects using the receiving object.
Well, B is the closest in terms of being correct, but it's poorly worded. Objects don't wait. Objects are passive things. Threads execute object methods, or more appropriately, each java.lang.Thread object represents a thread of execution in your application. B should say something like "The thread executing wait() on an object will halt until another thread calls notify() or notifyAll() on that object ( or an InterruptedException is thrown).