zoukankan      html  css  js  c++  java
  • 【工具类】JAVA单例实现方式(常用)

    JAVA单例实现方式(常用)

    public class Singleton {
        // Q1:为什么要使用volatile关键字?
        private volatile static Singleton uniqueInstance;
        
        private Singleton() {}
        
        public static Singleton getInstance() {
            if (uniqueInstance == null) {
                /* Q2:为什么要使用synchronized (Singleton.class),使用synchronized(this)或者
                synchronized(uniqueInstance)不行吗?而且synchronized(uniqueInstance)的效率更加高?*/
                synchronized (Singleton.class) {
                    if (uniqueInstance == null) {
                        uniqueInstance = new Singleton();
                     }
                }
            }
            return uniqueInstance;
        }
    }
    

    Q1:可见的,一个地方修改所有地方同步可见并修改,使用volatile关键字会强制将修改的值立即写入主存
    Q2:this 或 uniqueInstance 可能会出现空

  • 相关阅读:
    每日作业报告
    每日作业报告
    每日作业报告
    每日作业报告
    每日作业报告
    每日作业报告
    每日作业报告
    每日作业报告
    每日作业报告
    关系模式分解例题
  • 原文地址:https://www.cnblogs.com/lucas1024/p/10097360.html
Copyright © 2011-2022 走看看