java – 私有构造函数和实例 – 多项选择
发布时间:2020-12-15 04:18:24 所属栏目:Java 来源:网络整理
导读:我试图找出以下MC问题的答案.我曾尝试在谷歌上寻找答案,但人们似乎对这个问题有不同的答案.有人可以解释他们的答案. public class Gingleton { private static Gingleton INSTANCE = null; public static Gingleton getInstance() { if ( INSTANCE == null )
我试图找出以下MC问题的答案.我曾尝试在谷歌上寻找答案,但人们似乎对这个问题有不同的答案.有人可以解释他们的答案.
public class Gingleton { private static Gingleton INSTANCE = null; public static Gingleton getInstance() { if ( INSTANCE == null ) { INSTANCE = new Gingleton(); } return INSTANCE; } private Gingleton() { } } >可以创建多个Gingleton实例(我的选择) 解决方法
getInstance()中的新实例创建不会以任何方式同步,因此可能会在多线程环境中创建多个实例.要确保只应该执行一个实例:
public class Gingleton { // volatile private static volatile Gingleton INSTANCE = null; public static Gingleton getInstance() { if ( INSTANCE == null ) { synchronized (Gingleton.class) { // Synchronized if ( INSTANCE == null ) { INSTANCE = new Gingleton(); } } } return INSTANCE; } private Gingleton() { } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 如何在用户提交新行后备份一行? Java的
- maven多模块工程打包部署的方法步骤
- 浅谈Java中几种常见的比较器的实现方法
- java.util.ConcurrentModificationException异常;java.util
- 可以(以及如何)使用EJB模块中的javax.naming.Context#looku
- Java AtomicInteger类的使用方法详解
- LLMNR(链路本地多播名称解析)Java响应器
- java – JAXP XSLT document()函数问题
- java – Google登录GoogleIdToken后端验证突然失败
- java – Swing:为JDialog设置固定的窗口大小