I have used -
Object o = new Object();
for thread synchronizations and this is helpful because making the lock object private encapsulates the lock so that client code cannot acquire it, but don't know any other use of this.
What are the other reasons that Object class is not abstract? In which other situation I can use above code?