• 面试积累(简单的单例模式)


    如果我们在做项目时,一个对象在很多地方都要频繁的使用,如果每用一次就new一个对象,这样做无疑会大大的浪费资源,降低程序的性能,这时,我们可以将这个创建对象的这个过程提取出来,做成一个单例模式。常见的单例模式有懒汉单例模式和饿汉单例模式,以下是一个简单的demo来解释一下:

    //懒汉模式
    public
    class SingletonL { //私有的静态对象 private static SingletonL singletonL; //构造方法进行私有化,防止在外部new对象 private SingletonL(){ System.out.println("我是懒汉"); } //得到唯一的对象,单例模式 public static synchronized SingletonL getSingletonL(){ if(singletonL==null){ singletonL=new SingletonL(); } return singletonL; } public void play(String name){ System.out.println("我是一个"+name); } }
    //饿汉模式
    public
    class SingletonE { //声明一个唯一的饿汉 private static final SingletonE singletonE=new SingletonE(); //私有化构造方法 private SingletonE(){ System.out.println("我是饿汉"); } //返回饿汉对象 public static SingletonE getSingletonE(){ return singletonE; } //懒汉和饿汉的模式不同点在于饿汉是直接用了一个final来修饰对象,而饿汉是在get方法中new对象的,还要判断对象是否为空。 }

    以下是一个测试类:

    public class Test {
        public static void main(String[] args){
            SingletonL L=SingletonL.getSingletonL();
            SingletonL L1=SingletonL.getSingletonL();
            L.play("lanhan");
            L1.play("lanhan1");
            L.play("lan");
            //SingletonE E=SingletonE.getSingletonE();
            //SingletonE E1=SingletonE.getSingletonE();
        }
    }
  • 相关阅读:
    用gdb调试python多线程代码-记一次死锁的发现
    使用docker部署standalone cinder
    Linux上open-iscsi 的安装,配置和使用
    Windows上Ruby开发环境的配置
    在Pypi上发布自己的Python包
    docker X509 证书错误的终极解决办法
    oslo_config中的DuplicateOptError坑
    删除emacs临时文件
    xfce4快捷键设置
    设置emacs启动窗口的两种方法
  • 原文地址:https://www.cnblogs.com/Leonar-do/p/5219923.html
Copyright © 2020-2023  润新知