在Java中创建Object类的对象

One*_*ror 3 java

在Java中,每个类都隐式扩展了Object类.那么,这是否意味着我们可以创建Object类的对象?


public static void main(String[] args) {

Object ob=new Object();
    // code here ....
 }
Run Code Online (Sandbox Code Playgroud)

当我尝试它时,它编译并成功运行.在这种情况下,有人可以解释我们何时通常创建Object类的对象?

nic*_*ild 7

Object如果要进行同步锁定,可以实例化一个实例.

public void SomeClass {
    private Object lock = new Object();
    private SomeState state;

    public void mutateSomeSharedState() {
        synchronized(lock) {
            //mutate some state
        }
    }

    public SomeState readState() {
        synchronized(lock) {
            //access state
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

this已经用于锁定同一对象的某些其他状态时,或者如果您希望将锁定为私有(即,没有其他人可以使用它)时,可能需要执行此操作.即使没有必要,有些人也喜欢这样做.这仅仅是有人可能会这样做的一个例子.

  • 您可能想解释为什么使用`new Object`比使用`this`或其他任意对象更好. (4认同)