标签:类加载 ati 分享 问题 获取对象 syn info tin 频繁
有些对象我们只需要一个:线程池、缓存、硬件设备等
如果多个实例会有造成冲突、结果的不一致性等问题
是否可以用静态变量方式来实现?
或者程序员之间协商个全局变量?
单例模式:确保一个类最多只有一个实例,并提供一个全局访问点
单例模式类图:
把构造函数私有化,getInstance中判断uniqueInstance是否已经实例化,若已经实例化直接返回,否则实例化后返回
代码演示:
package com.java.jikexueyuan.singleton; public class Singleton { private static Singleton uniqeInstance=null; private Singleton(){ }; public static Singleton getInstance() { if(uniqeInstance==null) { uniqeInstance=new Singleton(); } return uniqeInstance; } }
单例模式的优化
多线程问题
可能会出现创建多个实例的情况
优化:
同步(synchronized)getInstance方法:频繁情况比较耗资源
“急切”创建实例(饿汉式):在类加载时就完成了初始化,所以类加载较慢,但获取对象的速度快
双重检查加锁
标签:类加载 ati 分享 问题 获取对象 syn info tin 频繁
原文地址:https://www.cnblogs.com/lm970585581/p/9595499.html