直接上代码
ublic class Singleton {
public Singleton() {
super();
System.out.println("single");
}
private static class Inner{
private static Singleton s=new Singleton();
}
private static Singleton getSingle(){
return Inner.s;
}
public static void main(String[] args) {
Thread[] ths=new Thread[200];
for (int i = 0; i < ths.length; i++) {
ths[i]=new Thread(()->{
Singleton.getSingle();
});
}
}
}
public class Singleton {
private static Singleton sin=new Singleton(); ///直接初始化一个实例对象
private Singleton(){ ///private类型的构造函数,保证其他类对象不能直接new一个该对象的实例
}
public static Singleton getSin(){ ///该类唯一的一个public方法
return sin;
}
}
public class Singleton {
private static Singleton instance;
private Singleton (){
}
public static synchronized Singleton getInstance(){ //对获取实例的方法进行同步
if (instance == null)
instance = new Singleton();
return instance;
}
}
public class Singleton {
private static Singleton instance;
private Singleton (){
}
public static Singleton getInstance(){ //对获取实例的方法进行同步
if (instance == null){
synchronized(Singleton.class){
if (instance == null)
instance = new Singleton();
}
}
return instance;
}
}
本文章将持续更新,欢迎互相学习