单例模式(Singleton)
来源:互联网 发布:新概念网络教学平台 编辑:程序博客网 时间:2024/05/08 04:54
简单的说下吧!!
单例模式定义:在Java应用程序中,随着应用程序的运行创建出很多对象,但有时候我们不希望在创建某类对象时,无论创建多少此该类对象只有一份在内存中,这就是单类。要实现单类模式首先要保证构造函数私有化。
单例模式特点:1,单类只有一个实例
2,单例必须自己创建自己唯一的实例
3,单例类必须给所有其他对象提供这一实例
单例在Java语言中有两个构建方式:
1,懒汉式:指全局的单例实例在第一次使用时构造。延迟初始化
2,饿汉式:指全局单例在类装载时构造。急切初始化
例子:
/**
* 单例模式(饿汉式单例类) 从速度和反应时间角度来讲,饿汉式单例类稍好
*/
public class Singleton {
private static Singleton singleton = new Singleton();
private String value;
//构造方法要私有
private Singleton(){ }
//提供一个对外的方法
public static Singleton getSingleton(){
return singleton;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
//单列模式(懒汉式)
class Singleton2{
private static Singleton2 singleton = null;
private String value;
//构造方法要私有
private Singleton2(){}
# //提供一个对外的方法
public synchronized static Singleton2 getInstance(){ //为了线成安全加了synchronized
if(singleton == null){
singleton = new Singleton2();
}
return singleton;
}
}
两者区别:懒汉式浪费判断时间,节约内存空间,如果不加synchronized 线程是不安全的,饿汉式与懒汉式恰恰相反。
举例:地球上只有一个太阳系。
解决问题:运行时繁琐创建多个对象访问,使线程不安全
单例子模式优点:只有一个实例不需要重复new一个对象,不浪费资源
缺点:对象类派生子类有很大的困难,只有在父类没有实列化时才可以实现。
项目中如何使用:数据库连接池对象
jdk中使用:java.lang.Runtime
由于时间关系就写到此吧!!!!!!!!
- 单例模式(singleton)
- 单例(Singleton)模式
- 单例模式(Singleton)
- 单例模式(Singleton)
- Singleton(单例)模式
- 单例模式(Singleton)
- 单例模式(Singleton)
- 单例模式(Singleton)
- 单例模式(singleton)
- 单例模式(Singleton)
- 单例模式(Singleton)
- 单例模式(Singleton)
- 单例模式(Singleton)
- 单例(Singleton)模式
- 单例(Singleton)模式
- 单例(Singleton)模式
- 单例模式(Singleton)
- Singleton(单例模式)
- mysql 数据类型
- strlen glibc 源码分析
- Bouncy Castle 多版本 与 Classloader 的问题
- play framework学习笔记之Model类的使用及JPA entity manager
- QTcpSocket类和QTcpServer类 收藏
- 单例模式(Singleton)
- MySQL 复制一个字段到另一个字段
- eclipse 插件
- TD-SCDMA
- MTK定时器消息机制分析
- 颜色混合opengl--glBlendFunc函数
- 深入理解C# 3.x的新特性(1): Anonymous Type
- 一些关于汇编的感悟
- uboot分析之bootm_start