第一种方式:
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());
}
}