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单例模式《二》懒汉式的更多相关文章

  1. java单例模式之懒汉式分析

    转自:http://blog.csdn.net/withiter/article/details/8140338 今天中午闲着没事,就随便写点关于Java单例模式的.其实单例模式实现有很多方法,这里我 ...

  2. 关于Java单例模式中懒汉式和饿汉式的两种类创建方法

    一. 什么是单例模式 因程序需要,有时我们只需要某个类同时保留一个对象,不希望有更多对象,此时,我们则应考虑单例模式的设计. 二. 单例模式的特点 1. 单例模式只能有一个实例. 2. 单例类必须创建 ...

  3. JAVA单例模式:懒汉式,饿汉式

    今天复习了一下java的单例模式,写了懒汉式和饿汉式的实现例子.代码如下: 1.懒汉式单例 package com.lf.shejimoshi; /** * @classDesc: 类描述:(懒汉式单 ...

  4. Java 单例模式探讨

    以下是我再次研究单例(Java 单例模式缺点)时在网上收集的资料,相信你们看完就对单例完全掌握了 Java单例模式应该是看起来以及用起来简单的一种设计模式,但是就实现方式以及原理来说,也并不浅显哦. ...

  5. java单例模式

    单例模式(Singleton),保证一个类仅有一个实例,并提供一个访问它的全局访问点.   使用场景:在一个系统中,要求一个类有且仅有一个对象,如果出现多个对象就会出现"不良反映" ...

  6. 【深入】java 单例模式(转)

    [深入]java 单例模式 关于单例模式的文章,其实网上早就已经泛滥了.但一个小小的单例,里面却是有着许多的变化.网上的文章大多也是提到了其中的一个或几个点,很少有比较全面且脉络清晰的文章,于是,我便 ...

  7. Java 单例模式的七种写法

    Java 单例模式的七种写法 第一种(懒汉,线程不安全) public class Singleton { private static Singleton instance; private Sin ...

  8. 单例模式:Java单例模式的几种写法及它们的优缺点

    总结下Java单例模式的几种写法: 1. 饿汉式 public class Singleton { private static Singleton instance = new Singleton( ...

  9. 9种Java单例模式详解(推荐)

    单例模式的特点 一个类只允许产生一个实例化对象. 单例类构造方法私有化,不允许外部创建对象. 单例类向外提供静态方法,调用方法返回内部创建的实例化对象.  懒汉式(线程不安全) 其主要表现在单例类在外 ...

随机推荐

  1. Scrapy基本命令

    全局命令,不用在项目中运行fetch:爬取网页,不依赖爬虫项目直接爬网页信息,并显示爬取过程scrapy命令格式:scrapy 命令名 --参数,可能通过--控制,例如:scrapy fetch -h ...

  2. CC4 表达方式----输赢

    “我要赢,不管付出什么,我一定要赢!”当我赢得时候,“我赢了!(欢呼)”.当我输的时候“不,我不要输.不开心.(垂头丧气)”.这样的场景你是否熟悉呢?我的一生都在经历输赢.以前我会为了赢一场游戏,花费 ...

  3. Codeforces 920F - SUM and REPLACE

    920F - SUM and REPLACE 思路1: 线段树(982 ms) 每个点最多更新6次 代码: #include<bits/stdc++.h> using namespace ...

  4. Java用FutureTask实现又返回值的线程

    要实现有返回值的多线程,具体代码如下: package thread; import java.util.concurrent.Callable; import java.util.concurren ...

  5. Go语言学习之1 基本概念、环境搭建、第一个Go程序

    一.环境搭建 见我的这篇博客 https://www.cnblogs.com/xuejiale/p/10258244.html 二.golang语言特性1. 垃圾回收    1) 内存自动回收,再也不 ...

  6. 雷林鹏分享:XML 树结构

    XML 树结构 XML 文档形成了一种树结构,它从"根部"开始,然后扩展到"枝叶". 一个 XML 文档实例 XML 文档使用简单的具有自我描述性的语法: To ...

  7. English trip EM2-PE-6A Family Relationship Teacher:Taylor

    课上内容(Lesson) What's your name? Where is your hometown?  你的家乡是哪里? Where do you come from?    你从哪里来?  ...

  8. Squid代理配置

    更改squid错误页面时间不对的问题解压源码包,进入此路径/usr/local/squid/share/errors/zh-cn(需要更改该目录下的所有文件find -type f |xargs se ...

  9. .net WinForm 的数据绑定

    .net WinForm 的数据绑定相当灵活 http://www.cnblogs.com/ydong/archive/2006/04/22/381847.html 原来只知道 Control 类上的 ...

  10. 部署的error和排查,注意服务器内存占用!

    mysqladmin: connect to server at 'localhost' failed error: 'Can't connect to local MySQL server thro ...