网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

Kotlin之单例模式-创新互联

我们知道单例分为饿汉式、懒汉式,单例在我们开发中经常用到,本篇内容主讲

成都创新互联-专业网站定制、快速模板网站建设、高性价比太和网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式太和网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖太和地区。费用合理售后完善,10年实体公司更值得信赖。懒汉式单例模式
    • 1、Java 懒汉式单例模式
    • 2、Kotlin懒汉式单例模式
    • 3、Java 同步懒汉式单例模式
    • 4、Kotlin同步懒汉式单例模式
    • 5、单例调用测试

1、Java 懒汉式单例模式
public class JavaUtils {private static JavaUtils instance = null;

    private JavaUtils() {}

    public static JavaUtils getInstance() {if (instance == null) {instance = new JavaUtils();
        }
        return instance;
    }

    public void javaTest(){System.out.println("Java 懒汉式 单例模式");
    }
}
2、Kotlin懒汉式单例模式
class KotlinUtils private constructor() {companion object {val instance: KotlinUtils by lazy {KotlinUtils()
        }
    }

    fun kotlinTest() {println("kotlin 懒汉式 单例模式")
    }
}

以上实现的单例

  • 优点:延迟到使用时才进行初始化,提高了类加载的性能
  • 缺点:非线程安全,多个线程同时访问情况下,会创建多个实例

但是在我们开发中经常需要考虑线程安全的问题,对Java单例一般使用双重检验锁,kotlin中也提供了线程安全的实现方式

3、Java 同步懒汉式单例模式
public class JavaSyncUtils {private volatile static JavaSyncUtils instance = null;

    private JavaSyncUtils() {}

    public static JavaSyncUtils getInstance() {if (instance == null) {synchronized (JavaSyncUtils.class){if (instance==null){instance = new JavaSyncUtils();
                }
            }
        }
        return instance;
    }

    public void javaTest(){System.out.println("Java 懒汉式 单例模式-双重检验锁");
    }

}
4、Kotlin同步懒汉式单例模式
class KotlinSyncUtils private constructor() {companion object {val instance: KotlinSyncUtils by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) {KotlinSyncUtils()
        }
    }

    fun kotlinTest() {println("kotlin 懒汉式 单例模式-双重检验锁")
    }
}

mode = LazyThreadSafetyMode.SYNCHRONIZED kotlin已经对同步安全进行封装

同步单例:

  • 优点:1、延迟到使用时才进行初始化,提高了类加载的性能、2、在创建对象的语句块中使用了同步锁synchronized,保证线程安全的同时,降低了锁的作用范围
  • 缺点:需要1-2次的空判断
5、单例调用测试
JavaUtils.getInstance().javaTest()
JavaSyncUtils.getInstance().javaTest()
println()
KotlinUtils.instance.kotlinTest()
KotlinSyncUtils.instance.kotlinTest()
Java 懒汉式 单例模式
Java 懒汉式 单例模式-双重检验锁

kotlin 懒汉式 单例模式
kotlin 懒汉式 单例模式-双重检验锁

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


本文题目:Kotlin之单例模式-创新互联
标题网址:http://bjjierui.cn/article/peicp.html

其他资讯