- 浏览: 694637 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (260)
- web 开发 (44)
- struts (14)
- java (39)
- 我的感受 (2)
- ajax (2)
- spring (22)
- Hibernate (4)
- struts2 (1)
- java 面试题 (1)
- 英语 学习类 (2)
- jdk1.6特性 (1)
- extjs (13)
- oracle (3)
- JQuery (3)
- ┠ 『Spring 3.0』 ┨ (1)
- 『LOG4J』 (2)
- 『常用数据』 (1)
- JavaMail (0)
- 〓『 EJB3.0 』〓 (0)
- HTML5 (5)
- Canvas (0)
- spring2.5 (0)
- HPH 5 (1)
- C# .net (0)
- UML (1)
- REST (2)
- JS_validate (1)
- 项目管理文章 (1)
- 闲聊闲记 (12)
- SQL-SQL (3)
- javascript (18)
- js (4)
- linux (8)
- 电子政务 (1)
- 项目对象模型 (1)
- 系统集成项目管理 (1)
- shell (2)
- mysql (1)
- solr (5)
- cxf;services (2)
- 11 (0)
- 缓存 (1)
- cached (3)
- 单片机通信 (1)
- cached;oscache (1)
- android (15)
- android;蓝牙 (1)
- Lucene (5)
- TTS (1)
- 网络爬虫 (1)
- HtmlCleaner (1)
- iPhone (2)
- 有感而发 (1)
- Python (0)
- jetty (1)
- Redis (1)
- hadoop (1)
- socket (1)
- 色彩顾问 (1)
- javaapns (1)
- bat (1)
- object-c (4)
- ios (4)
- C-学习 (1)
- 搜索 (1)
- c# (1)
最新评论
-
annie211:
Angularjs构建一个CRUD应用可能用到的全部内容包括:数据绑定、基本模板标识符、表单验证、路由、深度链接、组件重用、依赖注入 -
潇寒听竹:
你好,请问您上传的那个APK为什么每次只能识别一次,不能连续识 ...
pocketsphinxAdroid离线语音识别---入门 -
ichenwenjin:
Angularjs构建一个CRUD应用可能用到的全部内容包括:数据绑定、基本模板标识符、表单验证、路由、深度链接、组件重用、依赖注入 -
NN_iaoiao:
问一下 你的这个People 类 是自定义的还是android ...
android 获取电话本中的联系人列表 -
wangzhe_real:
对于刚接触的我是一个很详细的教程,太感谢了
JAX-RS cxf web服务 rest简单增删改查 集成spring webService
java模式之单例模式:
单例模式确保一个类只有一个实例,自行提供这个实例并向整个系统提供这个实例。
特点:
1,一个类只能有一个实例
2,自己创建这个实例
3,整个系统都要使用这个实例
例: 在下面的对象图中,有一个"单例对象",而"客户甲"、"客户乙" 和"客户丙"是单例对象的三个客户对象。可以看到,所有的客户对象共享一个单例对象。而且从单例对象到自身的连接线可以看出,单例对象持有对自己的引用。
Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。在很多操作中,比如建立目录 数据库连接都需要这样的单线程操作。一些资源管理器常常设计成单例模式。
外部资源:譬如每台计算机可以有若干个打印机,但只能有一个Printer Spooler,以避免两个打印作业同时输出到打印机中。每台计算机可以有若干个通信端口,系统应当集中管理这些通信端口,以避免一个通信端口被两个请求同时调用。内部资源,譬如,大多数的软件都有一个(甚至多个)属性文件存放系统配置。这样的系统应当由一个对象来管理这些属性文件。
一个例子:Windows 回收站。
在整个视窗系统中,回收站只能有一个实例,整个系统都使用这个惟一的实例,而且回收站自行提供自己的实例。因此,回收站是单例模式的应用。
两种形式:
1,饿汉式单例类
public class Singleton {
private Singleton(){}
//在自己内部定义自己一个实例,是不是很奇怪?
//注意这是private 只供内部调用
private static Singleton instance = new Singleton();
//这里提供了一个供外部访问本class的静态方法,可以直接访问
public static Singleton getInstance() {
return instance;
}
}
2,懒汉式单例类
public class Singleton {
private static Singleton instance = null;
public static synchronized Singleton getInstance() {
//这个方法比上面有所改进,不用每次都进行生成对象,只是第一次
//使用时生成实例,提高了效率!
if (instance==null)
instance=new Singleton();
return instance; }
}
第二中形式是lazy initialization,也就是说第一次调用时初始Singleton,以后就不用再生成了。
注意到lazy initialization形式中的synchronized,这个synchronized很重要,如果没有synchronized,那么使用getInstance()是有可能得到多个Singleton实例。
一般来说第一种比较安全。
在这个类中要有一个静态主法。来得到这个实例的比如下面代码:
private DBManager(){}
// public static DBManager getInstence(){
// if(manager==null)
// manager = new DBManager();
// return manager;
// }
public static Connection getConnection() {
Connection conn = null;
try {
conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
return conn;
}
发表评论
-
Java 数据验证
2017-05-12 10:27 1059在web开发当前就会遇到一些数据有效性验证的相关代码编 ... -
pinyin4j汉字转化为拼音
2014-01-15 09:30 618pom 添加 <!-- pinyin4j ... -
java emoji处理工程例子
2012-11-08 17:22 2285java emoji处理工程例子 -
java Socket Demo
2012-08-24 09:51 891java socket test -
java gc的工作原理、如何优化GC的性能、如何和GC进行有效的交互
2012-05-23 11:39 5745一个优秀的Java 程 ... -
Memcached 入门-介绍-使用-优化
2011-09-16 13:54 6123Java_memcached-release ... -
HtmlCleaner Html文档解析器
2011-09-05 14:44 1025HtmlCleaner 是一个开源的Java ... -
java加解文件zip
2011-07-22 12:20 1088在网上找了一下,没有找到java解压rar文件,只找到了,zi ... -
设计模式
2011-07-05 12:27 773设计模式------------------------ ... -
数据分页1 2 3 4 5 6 7 8 9 10
2011-06-30 15:31 19511 2 3 4 5 6 7 8 9 10 分页数据 ... -
Java模式开发之责任链模式
2011-06-27 15:28 867从击鼓传花谈起 击鼓传花是一 ... -
java 泛型介绍与使用
2011-05-20 14:26 915泛型是Java SE 1.5的新特性, 泛型的本质是参数化类 ... -
java Annotation(注解)
2011-05-19 17:16 8951、申明一个注解类、用到关键字interface 前面加个@ ... -
AOP
2011-05-10 10:22 823分散关注 将通用需求功能从不相关类之中分离出来;同时,能够 ... -
Dom4J UTF-8 编码问题解决方案......
2010-09-14 12:02 1576这几天用到了xml技术但是发现了个问题就是无法以UTF-8保存 ... -
我们天天的写程序。如果老板有一天,不让你写了,叫你去搞用户需求时,你会发现自有哪些不足?
2010-07-15 23:03 921你第一次写需求的时候是不是无从下手呢? 人生有很多第一次,第 ... -
命令999
2010-07-10 17:21 930Windows系统:开始--运行--命令大全Nslookup- ... -
使用spring定时任务时间格式cronExpression设置
2010-06-20 18:23 1977org.springframework.scheduling. ... -
以对象思考问题
2009-07-21 13:52 9991简单的说。面向对象的思维就是以对象为中心来思考问题 ,然则什 ... -
1到35之间的7个数相加能等于100的算法能有几个 那7个数不能重复 ;
2009-05-22 00:50 26381到35之间的7个数相加能等于100的算法能有几个 那7个数 ...
相关推荐
一个简单的java工程,包含注释,一目了然,其中包含了单例模式的所有实现方式,懒汉式,饿汉式,双重校验,枚举,静态内部类等方式实现单例。
Java 单例模式 懒汉模式 //懒汉式 多线程中不可以保证是一个对象
Java单例模式,其中:单例模式分三种:懒汉式单例、饿汉式单例、登记式单例三种
详细讲解了Java单例模式的几种实现方式,并有详细的示例配合讲解.
java单例模式开发的7中写法,网上搜索的,可以看看
作为对象的创建模式, 单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 PPT详细了单例模式的实现和使用场景
java单例模式的例子java单例模式的例子java单例模式的例子
源码 博文链接:https://tianlihu.iteye.com/blog/747737
Java单例模式Java单例模式Java单例模式Java单例模式
java单例模式及实现
Java设计模式-单例模式(懒汉和恶汉)
这段代码实现了一个简单的日志记录器Logger,其中使用了Java的单例模式。在类的构造方法中,首先定义...这个简单的示例代码展示了如何使用Java单例模式来实现一个日志记录器的简单功能,方便了对日志数据的管理和记录。
java单例模式代码实例
java单例模式连接数据库源码.可以直接引用只需加入相应的mysql 或 oracle的驱动,修改源码的连接地址用户名及密码。
详解JAVA单例模式及多种实现
java单例模式
代码中演示了Java设计模式中的单例模式,其中包括饿汉单例模式,懒汉单例模式以及序列化饭序列化单例模式。在实际的开发中,可以直接借鉴使用。
非常详细的Java单例模式讲解的文档,请求通过,已经上传过一次了
【ASP.NET编程知识】java 单例模式(饿汉模式与懒汉模式).docx