java单例模式4种使用方式分享
更新时间:2014年02月18日 09:28:41 作者:
到底如何写一个在生产环境中使用的单实例模式?下面是4种方式,大家参考使用吧
1、Java Concurrency In Practice的List
复制代码 代码如下:
public class Singleton {
private static class SingletonHolder {
public static Singleton resource = new Singleton();
}
public static Singleton getResource() {
return SingletonHolder.resource ;
}
private Singleton(){
}
}
2、effective Java
复制代码 代码如下:
public class Singleton {
public static final Singleton INSTANCE = new Singleton();
private Singleton(){}
public void method(){
//...
}
public static void main(String[] a){
//调用方法。
Singleton.INSTANCE.method();
}
}
3、利用枚举巧妙创建单实例
复制代码 代码如下:
/**
* 利用枚举巧妙创建单实例
*/
public enum Singleton {
INSTANCE;
public void method(){
//...
}
public static void main(String[] a){
//调用方法。
Singleton.INSTANCE.method();
}
}
4、双重锁
复制代码 代码如下:
public class Singleton {
private static volatile Singleton instance = null;
/**
* 防止其他人new对象
*/
private Singleton(){
System.out.println("init");
}
public static Singleton getInstance(){
if(instance == null){
synchronized(Singleton.class){
if(instance == null){
instance = new Singleton();
}
}
}
return instance;
}
}
相关文章
解决程序包org.springframework.test.context不存在
这篇文章主要介绍了解决程序包org.springframework.test.context不存在的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-09-09
深入理解Java并发编程之LinkedBlockingQueue队列
本文主要介绍了Java并发编程之LinkedBlockingQueue队列,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2022-04-04
spring(java,js,html) 截图上传图片实例详解
这篇文章主要介绍了spring(java,js,html) 截图上传图片实例详解的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下2016-07-07
SpringBoot整合SpringSecurity实现认证拦截的教程
我们写的任何一个项目,都应该有安全防护,不应该让这个项目进行“裸奔”,否则很容易被别人进行攻击。而在SpringBoot环境中,其实可以很容易实现安全保护,本文给大家介绍SpringBoot如何整合SpringSecurity实现认证拦截,需要的朋友可以参考下2023-05-05
SpringBoot整合Mybatis与druid实现流程详解
这篇文章主要介绍了springboot整合mybatis plus与druid详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的下伙伴可以参考一下2022-10-10


最新评论