美文网首页
java面试单例模式相关

java面试单例模式相关

作者: pr0metheus | 来源:发表于2018-04-09 11:11 被阅读0次

面试题目一:请写出多种单例模式,并说出他们的区别

答案:具体代码如下

//单例模式-饿汉式
public class Singleton {

    public static Singleton singleton = new Singleton();
    
    private Singleton() {
    }
    
    public static Singleton getInstance() {
        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        return singleton;
    }
    
}
//单例模式-懒汉式
public class Singleton2 {

    public static Singleton2 singleton2;
    
    private Singleton2() {
    }
    
    public static Singleton2 getInstance() {
        if (singleton2 == null) {
            try {
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            singleton2 = new Singleton2();
        }
        return singleton2;
    }
}
//饿汉式单例模式测试代码
public class SingletonTest {

    public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            new MyThread().start();
        }
    }
}

class MyThread extends Thread {
    @Override
    public void run() {
        Singleton instance = Singleton.getInstance();
        System.out.println(instance);
    }
}

//懒汉式单例模式测试代码
public class SingletonTest2 {

    public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            new MyThread2().start();
        }
    }
}

class MyThread2 extends Thread {
    @Override
    public void run() {
        Singleton2 instance = Singleton2.getInstance();
        System.out.println(instance);
    }
}

总结:上述两种单例模式在单线程的情况下都符合单例的要求,但是懒汉式单例模式在多线程的情况下会出现多例的情况,不符合单例模式的要求,而饿汉式单例模式在多线程的情况下仍只会产生一个实例,符合单例模式的要求。故如果在多线程环境下想要使用单例模式那么应用饿汉式单例模式

相关文章

  • java面试单例模式相关

    面试题目一:请写出多种单例模式,并说出他们的区别 答案:具体代码如下 总结:上述两种单例模式在单线程的情况下都符合...

  • 详解Java单例模式5种实现方法

    单例模式是最简单的设计模式之一,也是Java面试的高频题,有的甚至要求手写单例模式,下面我们就来详细讲解Java单...

  • 设计模式之单例模式

    单例模式是应用最广的设计模式之一,面试的时候常常会被要求写个单例模式的Demo,那么我今天就来看看单例模式的相关内...

  • Android 丨 单例模式

    面试过程中,单例模式总是会被问及,所以抽时间总结了一份单例相关的笔记 单例概念 单例模式是一种对象的创建模式,它用...

  • Java面试之单例模式浅谈

    单例模式是Java面试中常会问到的一个问题,众所周知,单例模式分为两大部分:饿汉模式和懒汉模式。但是,如果当面试官...

  • Java中单例模式你用的哪一种?

    一起讨论java中的单例模式。单例模式是java设计模式中算是最简单的设计模式了。 * java实现单例模式的写法...

  • Java常用排序算法--40个Java集合面试问题和答案--单例

    Java常用排序算法/程序员必须掌握的8大排序算法 40个Java集合面试问题和答案 单例模式讨论篇:单例模式与垃...

  • JAVA设计模式 - 单例模式

    JAVA设计模式 - 单例模式 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一...

  • Java四种单例设计模式

    Java中的四种单例模式 单例模式是最容易理解的设计模式之一,介绍Java中单例模式的四种写法。 1.基本单例模式...

  • 单例模式

    JAVA设计模式之单例模式 十种常用的设计模式 概念: java中单例模式是一种常见的设计模式,单例模式的写法...

网友评论

      本文标题:java面试单例模式相关

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