java 内部类 单例_Java单例模式的几种实现

一:静态内部类实现单例模式

原理:通过一个静态内部类定义一个静态变量来持有当前类实例,在类加载时就创建好,在使用时获取。

缺点:无法做到延迟创建对象,在类加载时进行创建会导致初始化时间变长。

public classSingletonInner {private static classHolder {private static SingletonInner singleton = newSingletonInner();

}privateSingletonInner(){}public staticSingletonInner getSingleton(){returnHolder.singleton;

}

二:饿汉模式

原理:创建好一个静态变量,每次要用时直接返回。

缺点:无法做到延迟创建对象,在类加载时进行创建会导致初始化时间变长。

public classSingletonHungry {private static SingletonHungry instance = newSingletonHungry();privateSingletonHungry() {

}public staticSingletonHungry getInstance() {returninstance;

}

三:懒汉模式

原理:延迟创建,在第一次用时才创建,之后每次用到就返回创建好的。

缺点:由于synchronized的存在,多线程时效率很低。

public classSingletonLazy {private static volatileSingletonLazy in

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值