zoukankan      html  css  js  c++  java
  • 单例测试模式中【饿汉式】与【懒汉式】的区别

    package day25.thread;/**
    /**
     * @author Mr Chen
     * @create 2018-10-09 18:37
     * 单例测试模式:保证类在内存中只有一个对象
     */
    public class Dome01 {
        public static void main(String[] args){
            Singleton s1 = Singleton.s;                      //成员变量被私有,不能用类名.调用
            Singleton s2 = Singleton.s;
            System.out.println(s1==s2);
    
    //        Singleton s1 = Singleton.getS();
    //        Singleton s2 = Singleton.getS();
    //
    //        System.out.println(s1==s2);
    
        }
    }
    /*
    //饿汉式
    class Singleton{
        //1、私有构造方法,其他类不能访问该构造方法
        private Singleton(){}
        //2、创建本类对象
    //    public Singleton s = new Singleton();虽说私有了,别的不能访问,但是自己还是可以访问的,这里创建的s,是成员变量,必须要用成员变量调用它。
        private static Singleton s = new Singleton();//但是这里没有对象,只能用类名点对象调用
        //就是说如果是非静态的成员变量,只能用对象点。如果是静态成员变量,可以用类名.调用
        //3、对外提供公共的访问方法
        public static Singleton getS(){
            return s;
        }
    }*/
    
    //懒汉式
    
    /*
    class Singleton{
        //1、私有构造方法,其他类不能访问该构造方法
        private Singleton(){}
        //2、声明一个引用
    //    public Singleton s = new Singleton();虽说私有了,别的不能访问,但是自己还是可以访问的,这里创建的s,是成员变量,必须要用成员变量调用它。
        private static Singleton s;//但是这里没有对象,只能用类名点对象调用
        //就是说如果是非静态的成员变量,只能用对象点。如果是静态成员变量,可以用类名.调用
        //3、对外提供公共的访问方法
        public static Singleton getS(){
        //线程1等待,线程2访问
            if (s==null){
                s=new Singleton();
            }
            return s;
        }
    }*/
    
    class Singleton{
        //1、私有构造方法,其他类不能访问该构造方法
        private Singleton(){}
        //2、声明一个引用
        public static final Singleton s =new Singleton();//但是这里没有对象,只能用类名点对象调用
    
    }
    
    
    /*
    饿汉式与懒汉式的区别
    1、饿汉式:用空间换来了时间;懒汉式:用时间换空间(不推荐)
    2、在多线程访问时,饿汉式不会创建多个对象,懒汉式有可能会创建多个对象
    
     */
    

      

  • 相关阅读:
    对象实例化过程分析
    对象实例化过程分析
    QuickHit游戏
    QuickHit游戏
    java继承向上转型和向下转型和动态绑定
    java继承向上转型和向下转型和动态绑定
    洛谷:P1095 守望者的逃离(贪心+dp)
    Manacher算法-最长回文子串
    numpy array()
    CNN 卷积神经网络结构
  • 原文地址:https://www.cnblogs.com/sunyubin/p/9764321.html
Copyright © 2011-2022 走看看