开发者社区> 技术小胖子> 正文

Java设计模式之单例设计模式

简介:
+关注继续查看

Java单例设计模式,有多种实现方式,下面介绍一下比较著名的一些实现方式

  1. 饿汉式

    这种设计模式简单,且没有多线程安全问题,一般实际开发时选用这种方式。

class HungeryDemo
{
	private HungeryDemo(){}
	private static final HungeryDemo instance = new HungeryDemo();
	public static HungeryDemo getInstance()
	{
		return instance;
	}
}

2.懒汉式

    这种模式,会延迟加载,效率较高。

    这种设计模式较为复杂,存在多线程安全问题。可以用同步函数或同步代码块,为了避免每次都要

    判断锁,采用同步代码块加双重判断的方式来解决线程安全问题。注意锁应该是该类的字节码文件 

    

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

    


      本文转自屠夫章哥  51CTO博客,原文链接:http://blog.51cto.com/4259297/1657214,如需转载请自行联系原作者





版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
分布式文件系统FastDFS看这一篇就够了(文件上传下载、单机部署及集群部署)(一)
分布式文件系统FastDFS看这一篇就够了(文件上传下载、单机部署及集群部署)
3 0
方法的递归调用 | 学习笔记
快速学习方法的递归调用
6 0
方法的定义 | 学习笔记
快速学习方法的定义
3 0
JavaWeb - SSO单点登录原理之基于CAS(一)
JavaWeb - SSO单点登录原理之基于CAS(一)
5 0
标识符与关键字 | 学习笔记
快速学习方法的定义 | 学习笔记
4 0
JavaWeb - 访问 WEB-INF 资源几种方式
JavaWeb - 访问 WEB-INF 资源几种方式
4 0
Java 8 新特性:Lambda 表达式
Java 8 新特性:Lambda 表达式
4 0
Day22 - Flutter - 混合开发(上)
Day22 - Flutter - 混合开发
4 0
21117
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载