• Java 入门24 设计模式 单例


     饿汉单例模式

    SingleInstance

    package com.ITheima._static_codeblock;
    
    public class SingleInstance {
    
        /**
         * 1 把无参构造器私有藏起来
         */
        private SingleInstance(){
    
        }
    
        /**
         * 2 定义一个公开的静态的成员变量存储一个类的对象
         * 饿汉:在这里加载静态变量的时候就会创建对象了
         */
        public static SingleInstance instance=new SingleInstance();
    }
    View Code

    Test类

    package com.ITheima._static_codeblock;
    
    public class Test {
        public static void main(String[] args) {
            SingleInstance s1=SingleInstance.instance;
            SingleInstance s2=SingleInstance.instance;
            SingleInstance s3=SingleInstance.instance;
    
            System.out.println(s1);
            System.out.println(s2);
            System.out.println(s3);
    
            System.out.println(s1 == s2 && s2 == s3);//true
    
    
        }
    }
    View Code

    懒汉单例模式

     SingleInstance1类

    package com.ITheima._static_codeblock;
    
    public class SingleInstance1 {
    
        //1 私有化构造器
        private SingleInstance1() {
    
        }
    
        //2 创建一个静态的成员变量存储类的对象,注意此时不能初始化对象
        private static SingleInstance1 instance = null;
    
        //3定义一个方法 ,让其他地方可以来调用获取一个对象
        public static SingleInstance1 getInstance() {
            //第一次获取对象
            if (instance == null) {
                instance = new SingleInstance1();
            }
            return instance;
        }
    }
    View Code

    Test1类

    package com.ITheima._static_codeblock;
    
    public class Test1 {
        public static void main(String[] args) {
            SingleInstance1 s1 = SingleInstance1.getInstance();
            SingleInstance1 s2 = SingleInstance1.getInstance();
            SingleInstance1 s3 = SingleInstance1.getInstance();
    
    
            System.out.println(s1 == s2 && s2 == s3);//true
    
        }
    }
    View Code
  • 相关阅读:
    51nod 1117 聪明的木匠:哈夫曼树
    51nod 1010 只包含因子2 3 5的数
    51nod 2636 卡车加油
    51nod 2989 组合数
    51nod 2652 阶乘0的数量 V2
    51nod 1103 N的倍数
    51nod 2489 小b和灯泡
    51nod 1003 阶乘后面0的数量
    51nod 2122 分解质因数
    javascript中的setter和getter
  • 原文地址:https://www.cnblogs.com/lvlisn/p/16410575.html
Copyright © 2020-2023  润新知