Java单例模式《二》懒汉式
package com.study.mode;
/**
* 单例模式: 懒汉式,需要的时候创建。
* @ClassName: SingleBean2
* @author BlueLake
* @date 2012年9月5日 下午9:08:21
*/
public class SingleBean2 { //1.私有化构造方法。
private SingleBean2(){ }
//2.创建一个当前类的静态属性
private static SingleBean2 single = null; //3.1 在需要的时候,创建对象。
public static SingleBean2 getSingleA(){
if(single==null){
single = new SingleBean2();
}
return single;
} //3.2 由于3.1的方法线程不安全,多线程时会有多个SingleBean2实例。所以加锁
public synchronized static SingleBean2 getSingleB(){
if(single==null){
single = new SingleBean2();
}
return single;
} //3.3 ,由于每次调用3.2这个方法都要加锁,如果有的话直接返回就可以了,所以浪费内存
public static SingleBean2 getSingleC(){
//如果存在,直接返回,这里不用锁
if(single== null){
//如果,不存在,加锁,创建
synchronized(SingleBean2.class){
//强壮性考虑,创建前,判断
if(single==null){
single = new SingleBean2();
}
}
}
return single;
}
}
Java单例模式《二》懒汉式的更多相关文章
- java单例模式之懒汉式分析
转自:http://blog.csdn.net/withiter/article/details/8140338 今天中午闲着没事,就随便写点关于Java单例模式的.其实单例模式实现有很多方法,这里我 ...
- 关于Java单例模式中懒汉式和饿汉式的两种类创建方法
一. 什么是单例模式 因程序需要,有时我们只需要某个类同时保留一个对象,不希望有更多对象,此时,我们则应考虑单例模式的设计. 二. 单例模式的特点 1. 单例模式只能有一个实例. 2. 单例类必须创建 ...
- JAVA单例模式:懒汉式,饿汉式
今天复习了一下java的单例模式,写了懒汉式和饿汉式的实现例子.代码如下: 1.懒汉式单例 package com.lf.shejimoshi; /** * @classDesc: 类描述:(懒汉式单 ...
- Java 单例模式探讨
以下是我再次研究单例(Java 单例模式缺点)时在网上收集的资料,相信你们看完就对单例完全掌握了 Java单例模式应该是看起来以及用起来简单的一种设计模式,但是就实现方式以及原理来说,也并不浅显哦. ...
- java单例模式
单例模式(Singleton),保证一个类仅有一个实例,并提供一个访问它的全局访问点. 使用场景:在一个系统中,要求一个类有且仅有一个对象,如果出现多个对象就会出现"不良反映" ...
- 【深入】java 单例模式(转)
[深入]java 单例模式 关于单例模式的文章,其实网上早就已经泛滥了.但一个小小的单例,里面却是有着许多的变化.网上的文章大多也是提到了其中的一个或几个点,很少有比较全面且脉络清晰的文章,于是,我便 ...
- Java 单例模式的七种写法
Java 单例模式的七种写法 第一种(懒汉,线程不安全) public class Singleton { private static Singleton instance; private Sin ...
- 单例模式:Java单例模式的几种写法及它们的优缺点
总结下Java单例模式的几种写法: 1. 饿汉式 public class Singleton { private static Singleton instance = new Singleton( ...
- 9种Java单例模式详解(推荐)
单例模式的特点 一个类只允许产生一个实例化对象. 单例类构造方法私有化,不允许外部创建对象. 单例类向外提供静态方法,调用方法返回内部创建的实例化对象. 懒汉式(线程不安全) 其主要表现在单例类在外 ...
随机推荐
- Visual Studio常用设置
●Visual Studio 2008以后,修改代码中大括号的颜色:Tools-->Environment-->Fonts and Colors-->右边[Display items ...
- h5内容超出可以滑动展示的处理,iscroll的使用
第一步: 引入js 第二步:页面结构 第三步:使用 dome效果:http://cubiq.org/dropbox/iscroll4/examples/simple/ 文档地址:http://iscr ...
- 第 8 章 容器网络 - 060 - 在 Docker 中使用 flannel
在 Docker 中使用 flannel 编辑 host1 的 Docker 配置文件 /etc/systemd/system/docker.service.d/10-machine.conf 设置 ...
- <%@page contentType="text/html;charset=gbk"%> 与 <meta http-equiv="Content-Type" content="text/html; charset=GBK">区别
前一个是在服务端起作用,是告诉应用服务器采用何种编码输出JSP文件流, 后一个是在客户端起作用,是告诉浏览器是采用何种编码方式显示HTML页面
- 如何在Virtualbox中对Ubuntu系统根分区扩容
转载: 参见博客: https://blog.csdn.net/LEON1741/article/details/56494797 前在Virtualbox中安装了一个Ubun ...
- 20165327《Java程序设计》实验一 Java开发环境的熟悉 实验报告
20165327<Java程序设计>实验二 <Java面向对象程序设计>实验报告 实验二 <Java面向对象程序设计> 一.实验报告封面 课程:Java程序设计 班 ...
- 安装EF实体模型框架
Data Access and Storage > 学习 > Entity Framework > 开始操作 > 空间 - EF 设计器 本视频和分步演练介绍如何使用实体框架设 ...
- Div不用float布局
CSS代码 .wrapper1_4 { width: 100%; /* 也可以固定宽度 */ height: 26px; } .wrapper1_4 > .left { display: inl ...
- 77. Combinations (java 求C(n,k)的组合,排除重复元素)
题目: Given two integers n and k, return all possible combinations of k numbers out of 1 ... n. 解析:同求全 ...
- [Fiddler] ReadResponse() failed: The server did not return a complete response for this request. Server returned 0 bytes.
待解决 [Fiddler] ReadResponse() failed: The server did not return a complete response for this request. ...