Java设计模式--使用内部类实现线程安全且懒加载的单例模式

mac2025-07-23  5

第一种方式: 

package com.zhangxueliang.demo.springbootdemo.thread; /** * @ProjectName springbootdemo_src * @ClassName Singleton * @Desicription TODO * @Author Zhang Xueliang * @Date 2019/11/1 15:10 * @Version 1.0 **/ public class Singleton { private static Singleton instance = null; private Singleton(){} private static class Inner{ public static Singleton getInstance(){ if (instance==null) instance=new Singleton(); return instance; } } public static void main(String[] args) { System.err.println(Inner.getInstance()); System.err.println(Inner.getInstance()); } }

第二种方式:

package com.zhangxueliang.demo.springbootdemo.thread; /** * @ProjectName springbootdemo_src * @ClassName Singleton * @Desicription TODO * @Author Zhang Xueliang * @Date 2019/11/1 15:10 * @Version 1.0 **/ public class Singleton2 { private Singleton2(){} private static class Inner{ private static Singleton2 s= new Singleton2(); } public static Singleton2 getInstance(){ return Inner.s; } public static void main(String[] args) { System.err.println(Singleton2.getInstance()); System.err.println(Singleton2.getInstance()); } }

 

最新回复(0)