• Java 单例设计模式之 饿汉式和懒汉式


    public class InstanceSampleTest {
        public static void main(String[] args) {
    
            /** 单例设计模式的 饿汉式和懒汉式
             * 单例模式,我们首先必须将类在一个虚拟机中只能产生一个对象,因此应该做到以下几步:
             * a:私有化构造方法,这样在该类的外边就不能用new操作来创建对象,但是在类的内部可以创建该类的对象。
             * b:调用该类的某个静态方法以返回内部创建的对象,因为该类的外部不发得到创建的对象,引用用静态的方法来返回。
             *
             *
             * 饿汉模式:在类加载时就完成了初始化,但是加载比较慢,获取对象比较快。
             * 饿汉模式是线程安全的,在类创建好一个静态对象提供给系统使用,
             * 懒汉模式:在类加载的时候不被初始化。延时加载
             * 懒汉模式在创建对象时不加上synchronized,会导致对象的访问不是线程安全的(多线程)
             */
            Single s1 = Single.getInstance();
            Single s2 = Single.getInstance();
            System.out.println(s1 == s2);  //true 两者内存地址一样  指向同一个对象
    
            Single2 s3 = Single2.getInstance();
            Single2 s4 = Single2.getInstance();
            System.out.println(s3 == s4); //true 两者内存地址一样  指向同一个对象
        }
    }
    
    /**
     * 单例设计模式  饿汉式(常用)
     */
    class Single {
        private static final Single s = new Single();
    
        private Single() {
        }
    
        public static Single getInstance() {
            return s;
        }
    }
    
    
    /**
     * 单例设计模式  懒汉式(面试)
     */
    class Single2 {
        private static Single2 s = null;
    
        private Single2() {
        }
    
        public static Single2 getInstance() {
            /**
             * 懒汉式使用双重验证锁解决多线程的线程安全问题,饿汉式不存在线程安全
             */
            if (s == null) {
                synchronized (Single2.class) {
                    if (s == null) {
                        s = new Single2();
                    }
                }
            }
            return s;
        }
    }
    

      

  • 相关阅读:
    UIImagePickerController从拍照、图库、相册获取图片
    swift2.0 UIImagePickerController 拍照 相册 录像
    UIImagePickerController拍照与摄像
    iOS 从相机或相册获取图片并裁剪
    Android播放音频的两种方式
    UICollectionView的基本使用
    UIImageView圆角,自适应图片宽高比例,图片拉伸,缩放比例和图片缩微图
    UIView属性clipsTobounds的应用
    iOS开发UI篇—CALayer简介
    chrome插件演示,经js转让chrome api清除浏览器缓存
  • 原文地址:https://www.cnblogs.com/smartsmile/p/11607247.html
Copyright © 2020-2023  润新知