zoukankan      html  css  js  c++  java
  • 面试积累(简单的单例模式)

    如果我们在做项目时,一个对象在很多地方都要频繁的使用,如果每用一次就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();
        }
    }
  • 相关阅读:
    委托经典--由浅入深讲解
    原生的AJAX
    asp.net传值
    flex做的圣杯布局
    弹性盒布局实例
    CSS3实现的几个小loading效果
    requireJS基本概念及使用流程(2)
    require.js的基本概念及使用流程(1)
    JSz中的静态方法和实例方法的分析
    前端性能优化的方法
  • 原文地址:https://www.cnblogs.com/Leonar-do/p/5219923.html
Copyright © 2011-2022 走看看