java这个单例模式有错误么?有的话请指明并做解释

2024-12-05 06:03:21
推荐回答(2个)
回答(1):

由于加了一个线程安全的锁,锁住的是这个类,而不是对象,当多个线程运行时,第一个线程能够获得单例的对象,后面的线程由于类被锁住将不能够调用到该类的这个静态方法,将会出错。将锁去了就不会有问题了

回答(2):

  1. 代码规范,singleton应该命名成instance.

  2. singleton应该声明成volatile。否则第二次判断是否为null的结果永远都与第一次相同。