剑指offer面试题2:实现单例模式
2019-08-09 13:34
471 查看
``单例模式的两种实现方式:饿汉式、懒汉式
饿汉式是在类加载的时候就已经实例化,即使是两个线程同时想获取它,取到的是类加载时实例化的那个变量的值,所以线程是安全的。
懒汉式是线程不安全的,因为有可能两个线程同时判断(instance==null),这个时候就会产生两个实例。
public class Main { public static class Singleton{ public static final Singleton instance = new Singleton(); private Singleton(){}; public static Singleton getInstance(){ return instance; } } public static class Singleton1{ //这里不能用final,不然无法对instance进行赋值 public static Singleton1 instance = null; private Singleton1(){}; public static Singleton1 getInstance(){ if(instance==null){ instance = new Singleton1(); } return instance; } } }
相关文章推荐
- 《剑指offer》面试题2:实现Singleton模式
- 剑指Offer-【面试题02:实现Singleton 模式——七种实现方式】
- Java实现剑指Offer面试题1-单例模式
- 剑指offer:面试题二:单例模式的实现(使用C++语言)
- <剑指offer 面试题2> 单例模式 (Java实现)
- 剑指offer面试题7:用两个栈实现队列
- 【面试题二】java实现的单例模式,c++实现单例模式,实现禁止拷贝
- 《剑指Offer》面试题二之实现Singleton
- 剑指offer编程题Java实现——面试题14调整数组顺序使奇数位于偶数之前
- 剑指offer:面试题9—用两个栈实现队列
- 剑指Offer 面试题21:调整数组顺序使奇数位于偶数前面 Java代码实现
- 剑指offer-面试题7:用两个栈实现队列
- 剑指offer面试题44 扑克牌的顺子(java实现)
- 剑指Offer:面试题8——旋转数组的最小值(java实现)
- 剑指Offer:面试题23——从上往下打印二叉树(java实现)
- 面试题2: 实现Singleton模式
- 剑指offer面试题17:打印1到最大的n位数(Java 实现)
- (剑指Offer)面试题7:用两个栈实现队列
- 剑指Offer面试题4:替换空格 Java实现
- 《剑指offer》面试题29:顺时针打印矩阵(C++实现)