• 单例测试模式中【饿汉式】与【懒汉式】的区别


    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、在多线程访问时,饿汉式不会创建多个对象,懒汉式有可能会创建多个对象
    
     */
    

      

  • 相关阅读:
    Do You See Me? Ethical Considerations of the Homeless
    ELDER HOMELESSNESS WHY IS THIS AN ISSUE?
    Endoflife support is lacking for homeless people
    html内联框架
    html字体
    html块 div span
    html列表
    html表格
    SQL Server管理员专用连接的使用   作为一名DBA,经常会处理一些比较棘手的服务无响应问题,鉴于事态的严重性,多数DBA可能直接用“重启”大法,以便尽快的恢复生产环境的正常运转,但是多数情况
    如何配置最大工作线程数 (SQL Server Management Studio)
  • 原文地址:https://www.cnblogs.com/sunyubin/p/9764321.html
Copyright © 2020-2023  润新知