public class javaprac1 {

    private javaprac1() {

    }

   static private javaprac1 instance = new javaprac1();

   public static javaprac1 getInstance(){

       return instance;
   }

}

最佳答案

是。这是最简单的非延迟单例,并且是线程安全的,没有任何其他麻烦。唯一的“缺点”是它没有被延迟地初始化,但是通常似乎懒惰被过分强调了。当单例执行一些可能很重的初始化,并且您希望将其推迟到首次使用时,最好使用Lazy-init。

如果需要懒惰​​的单例,请使用Enum singleton模式,这也非常简单。

09-26 23:42