package cn.yqh.interview;
public class Singleton {
private static volatile Singleton singleton = null;
private Singleton() {
}
public static Singleton getInstance(){
//第一次校验singleton是否为空
if(singleton==null){
synchronized (Singleton.class){
//第二次校验singleton是否为空
if(singleton==null){
singleton = new Singleton();
}
}
}
return singleton;
}
public static void main(String[] args) {
for (int i = 0; i < 100; i ) {
new Thread(new Runnable() {
public void run() {
System.out.println(Thread.currentThread().getName() " : " Singleton.getInstance().hashCode());
}
}).start();
}
}
}
END 十期推荐 【201期】面试官:String长度有限制吗?是多少?还好我看过 【211期】面试官:说说为什么HTTPS是安全的 【212期】面试官:说说什么是单点登录?什么是SSO?什么是CAS? 【213期】如何保障消息中间件100%消息投递成功?如何保证消息幂等性? 【214期】面试官:聊聊常见的加密算法、原理、优缺点、用途 【215期】MySQL中事务和锁的重点和难点,一次性讲清楚! 【216期】JVM超神之路 【217期】面试官:你能说一下Redis的常见应用场景吗? 【218期】面试官:你能简单介绍一下 RabbitMQ 及它的使用场景吗 【219期】面试官:谈谈MySQL的limit用法、逻辑分页和物理分页 【220期】面试官:你能说说分布式锁,进程锁,线程锁吗? ? ~