java单例模式4种使用方式分享
时间:2021-01-24 11:07:34|栏目:JAVA代码|点击: 次
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;
}
}
上一篇:java synchronized同步静态方法和同步非静态方法的异同
栏 目:JAVA代码
下一篇:Java同步容器和并发容器详解
本文标题:java单例模式4种使用方式分享
本文地址:http://www.codeinn.net/misctech/50257.html


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




