美文网首页
一道单例模式引起的思考

一道单例模式引起的思考

作者: 狗子渣渣 | 来源:发表于2018-12-03 14:45 被阅读9次

在Java服务端开发实习面试过程中,经常会碰到面试官要求面试者实现单例模式,面试官的最低要求是能写出如下代码:

public class Singleton {
    private static volatile Singleton instance = null;
    private Singleton(){}
    public static Singleton getInstance() {
        if(instance == null) {
            synchronized(this.class) {
                if(instance == null) {
                    instance = new Singleton();
                }
            }
        }
        return instance;
    } 
} 

我认为回答使用双重检验锁的方式实现单例模式可以很好地诱导面试官对以下几个问题进行提问,或者自己平时复习时试着能不能很好地回答以下问题:

  1. 什么叫做线程安全?
    多线程执行的结果与预期结果不同
  2. 线程之间通信机制?
    基于共享内存和消息传递机制
  3. 单例模式的线程安全写法,面试者能够清楚地讲述如此实现的原因
  4. synchronized 与 volatile 关键字(重点)
    • synchronized 锁的颗粒度,讨论 synchronized 和 Lock 区别
    • volatile、happens-before 原则、JMM(重点回答主内存和工作内存之间的关系,此外注意和 JVM 内存结构区别)
  5. JVM 内存结构
    程序计数器、Java 虚拟机栈、本地方法栈、堆内存、本地方法区
    试着说说垃圾回收相关知识:垃圾回收器、垃圾回收算法、对象是否可以回收的判断依据

相关文章

  • 一道单例模式引起的思考

    在Java服务端开发实习面试过程中,经常会碰到面试官要求面试者实现单例模式,面试官的最低要求是能写出如下代码: 我...

  • 设计模式之你真的了解单例模式么?

    问题思考 你知道什么是单例模式么?你能写出一个性能有保障并且安全的单例模式么? 首先我们先明确单例模式的概念,单例...

  • 【设计模式】单例模式

    单例模式 常用单例模式: 懒汉单例模式: 静态内部类单例模式: Android Application 中使用单例模式:

  • Android设计模式总结

    单例模式:饿汉单例模式://饿汉单例模式 懒汉单例模式: Double CheckLock(DCL)实现单例 Bu...

  • Android 容易引起内存泄漏的小知识

    android单例模式引起的内存泄漏 当我们在使用单例模式保存缓存时,一般会把当前页面的上下文Context传入单...

  • Context相关内存泄露问题

    单例模式 在单例模式下如果需要获取Context相关对象,由于会长期持有该对象,会导致相关对象无法被回收,从而引起...

  • Telegram开源项目之单例模式

    NotificationCenter的单例模式 NotificationCenter的单例模式分析 这种单例模式是...

  • 设计模式之单例模式详解

    设计模式之单例模式详解 单例模式写法大全,也许有你不知道的写法 导航 引言 什么是单例? 单例模式作用 单例模式的...

  • 2018-04-08php实战设计模式

    一、单例模式 单例模式是最经典的设计模式之一,到底什么是单例?单例模式适用场景是什么?单例模式如何设计?php中单...

  • 设计模式 - 单例模式

    设计模式 - 单例模式 什么是单例模式 单例模式属于创建型模式,是设计模式中比较简单的模式。在单例模式中,单一的类...

网友评论

      本文标题:一道单例模式引起的思考

      本文链接:https://www.haomeiwen.com/subject/gseycqtx.html