zoukankan      html  css  js  c++  java
  • Java学习笔记之---单例模型

    Java学习笔记之---单例模型

    单例模型分为:饿汉式,懒汉式

    (一)要点

    1.某个类只能有一个实例

    2.必须自行创建实例

    3.必须自行向整个系统提供这个实例

    (二)实现

    1.只提供私有的构造方法

    2.含有一个该类的静态私有对象

    3.提供一个静态的公有方法用于创建,获取静态私有对象

    (三)饿汉式

    在对象创建过程中实例化

    public class EHan {
        //私有构造函数
        private EHan(){
        }
        //创建该类型的私有静态实例
        private static EHan ehan=new EHan();
        //创建该类型的公有静态方法,返回静态实例对象
        public static EHan getehan(){
            return ehan;
        }
    }
    class EHanTest{
        public static void main(String[] args){
            EHan one=EHan.getehan();
            EHan two=EHan.getehan();
            System.out.println(one==two);
        }
    }

    运行结果:true

    (四)懒汉式

    静态公有方法中实例化

    public class EHan {
    
        //私有构造函数
    
        private EHan(){
    
        }
    
        //创建该类型的私有静态实例
    
        private static EHan ehan=null;
    
        //创建该类型的公有静态方法,返回静态实例对象
    
        public static EHan getehan(){
    
            if(ehan==null){
    
                ehan=new EHan();
    
            }
    
            return ehan;
    
        }
    
    }
    
    class EHanTest{
    
        public static void main(String[] args){
    
            EHan one=EHan.getehan();
    
            EHan two=EHan.getehan();
    
            System.out.println(one==two);
    
        }
    
    }

    运行结果:true

    (五)懒汉式PK饿汉式

    1.饿汉式比懒汉式块

    2.饿汉式线程安全,懒汉式存在线程风险

    (六)单例模型的优点

    1.在内存中只有一个对象,节省内存空间

    2.避免频繁的创造和销毁对象,提高性能

    3.避免对共享资源的多重占用

    (七)单例模型的缺点

    1.扩展比较困难

    2.如果实例化后的对象长期不利于,系统将默认为垃圾进行回收,造成对象状态丢失

  • 相关阅读:
    Java中的pom.xml
    Java中request请求配置
    java,名称工具类。手机号加星。
    Java数据库查询与循环处理
    php接口分页
    java中sql映射机制
    java中的model映射
    Java启动项目
    httpSession.removeAttribute 移除header中的属性
    mybatisplus 查询数据
  • 原文地址:https://www.cnblogs.com/dyddzhp/p/11175940.html
Copyright © 2011-2022 走看看