• 设计模式之--单例模式(singleton)


    package dmode.singleton;
    
    import java.util.Random;
    
    /**
     * 类描述:  单例模式
     * 单例定义:ensure a class has only one instence,and provide a global point of access to it
     * 确保一个类只有一个实例,并且提供一个全局访问点来访问这个实例 
     * 其他内容:static 关键字修饰的内容,存储在静态代码区域,
     * java 的存储内容包括:堆、栈(常量、对象引用)、静态存储区
     * @version 1.0  CreateDate: 2015-2-12
     *
     * @history:
     * @updateDate            @updatePerson        @declare
     * 
     */
    public class SinglClass {
        private static String singlParam;
        
        //懒汉式声明,在使用对象的时候再获取
        //线程不安全:在getInstenc() 方法中,如果并发,可能获取获取多个实例
        //解决方法:可以用 synchronized 修饰方法,也可以在方法体内用 synchronized{}代码块
        private static SinglClass singlClazz;
        
        //饿汉式声明,在类的初始化时就获取实例,final 的作用是让这个实例不在变化
        //线程安全
        private static final SinglClass singlClazz2 = new SinglClass("饿汉式");
        
        private static int time = 1;
        
        private SinglClass(String param){
            System.out.println("开始构造对象" + new Random().nextInt(100) + param);
        }
        
        //懒汉式声明
        //synchronized 保证线程安全
        public static synchronized SinglClass getInstence(){
            if(singlClazz == null){
                singlParam = "懒汉式";
                singlClazz = new SinglClass("懒汉式");
            }
            return singlClazz;
        }
        
        //饿汉式声明
        public static SinglClass getInstence2(){
            return singlClazz2;
        }
        
        public void sayHello(){
            if(this == singlClazz){
                System.out.println(singlParam + "say Hello " +  time++  );
            }else{
                System.out.println("饿汉式" + "say Hello " +  time++ );
            }
            
        }
        
    }
  • 相关阅读:
    解决跨域问题 cors~ JSONP~
    session,cookie,sessionStorage,localStorage的区别~~~前端面试
    数据库索引的理解
    script的按需加载
    es6 笔记
    JS 工具函数
    JS Error
    数组方法重写:forEach, map, filter, every, some, reduce
    JS: GO 和 AO
    立即执行函数
  • 原文地址:https://www.cnblogs.com/leonkobe/p/4287770.html
Copyright © 2020-2023  润新知