这个单例有问题吗?欢迎大家提供讨论。

单例很简单,一般也都不这么写,但是真的这么写,又有啥问题呢?欢迎大家积极提供意见。

 public class PersonCreate {
    private static PersonCreate referent = new PersonCreate();
    private static SoftReference<PersonCreate> softRef = new SoftReference<PersonCreate>(referent);

    private PersonCreate() {
    }

    public static PersonCreate getInstance() {
        referent = null;
        PersonCreate pc = softRef.get();
        if (pc != null) {
            return pc;
        } else {
            referent = new PersonCreate();
            softRef = new SoftReference<PersonCreate>(referent);
            referent = null;
        }
        return softRef.get();
    }

    public void print() {
        System.out.println("hello");
    }
}

不这样就不具有封装的效果了 都是静态的调用 如果项目比较大容易出差错

我看到的问题是关于静态变量的。
做了集群,分布后,静态变量 会出现不同步的问题。