Java单例模式的应用_单例模式在项目实践中的几种应用

 2024-02-13 00:03:03  阅读 0

1.单例模式的简单理解

单例模式:即一​​个类在程序运行过程中只被实例化一次,也就是说该类在程序的生命周期中只有一个实例对象。

使用单例模式的优点:由于该类只实例化一次,因此无论有多少个类使用该类,该类都只有一个对象。 所以,

减少类实例对象的创建 --> 减少GC压力 --> 提高程序性能。

2、单例模式的几种常见写法

/**

* 饿了么中国式(线程安全)。当一个类被加载时,会创建一个唯一的单例实例,无论后面是否使用它。

* 以空间换时间的思想,

*/

班级 {

=新的();

(){}

(){

;

/**

* 饿了么变体模式,使用静态代码块。包括上面的饿了么中文写法,也是线程安全的。

* 因为这两个方法实际上是间接使用了关键字,那么它们是如何使用的呢?

* 这是了解类加载的机制和过程所必需的

*/

班级 {

= 空;

{

=新的();

(){}

(){

这。;

/**

* 惰性风格(不是线程安全的,可以在创建函数之前添加关键字变得线程安全)

* 单例实例仅在使用时创建

*/

班级 {

;

java 单例模式实例_java中单例模式的实现_单例模式写法java

(){

(){ // 在方法变得线程安全之前添加关键字,但会增加创建的时间消耗。

如果(==空){

=新的();

;

/**

* 惰性方式(线程安全双重检查锁版本)

*/

班级 {

;

(){}

() {

if (==null){ //首先检查

(。班级){

if (==null){ //第二次检查

=新的();

;

/**

* 枚举实现线程安全的单例模式

* 底层是依靠Enum类实现的,枚举类的成员变量实际上都是静态类型,并且是

* 在静态代码块中实例化,有点像饿汉模式,而且天然也是线程安全的

*/

枚举{

;

空白 {

/**

* 使用单例实现线程安全

* 也是一种以空间换时间的方法(因为会为每个线程提供独立的副本)

* 就是多个线程相互独立地访问数据

*/

班级 {

F

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码