Java concurrency model uses locks to implement mutually exclusive access to objects in a multi-threaded environment and locks are associated with every object in Java (of type 'Object'), not only with Threads.
1) Wait and notify are communication mechanism between two threads in Java. And Object
class is correct place to make them available for every object as it is the superclass of all Objects.
2) Locks are made available on per Object basis, which is another reason wait and notify is declared in Object class rather then Thread class.