Java单例模式
来源:互联网 发布:业务数据运维管理规范 编辑:程序博客网 时间:2024/06/04 19:53
定义:
只产生一个实例对象,提供取得其对象的实例方法。
特点:
1.构造方法私有化(private);
2.在类内部生成实例对象;
3.通过类的静态方法获取该实例对象。
方式:
1.饿汉式
public class HungrySingleton {/* * 1.生成静态实例对象 */public static HungrySingleton hungrySingleton = new HungrySingleton();/* * 2.构造方法私有化 */private HungrySingleton() {}/* * 3.静态方法获取实例对象 */public static final HungrySingleton getInstance() {return hungrySingleton;}}
2.懒汉式
public class LazySingleton {/* * 1.生成静态实例对象 */public static LazySingleton lazySingleton = null;/* * 2.构造方法私有化 */private LazySingleton() {}/* * 3.静态方法获取实例对象 */public static LazySingleton getInctance() {if (lazySingleton == null) {/* sychronized用于代码块时需要一个锁对象,针对实例方法使用this对象; *//* 当针对类方法时可以使用该类对应的字节码文件对象,this这个时候不存在 */synchronized (LazySingleton.class) {lazySingleton = new LazySingleton();}}return lazySingleton;}}
分析饿汉式和懒汉式:
饿汉式是以预先加载方式加载对象,不管是单线程还是多线程都是线程安全的;
懒汉式则以延迟加载方式加载对象,单线程没有任何问题,如果是多线程则可能发生线程不安全,需要加上“互斥锁”;
饿汉式:对象预先加载,线程是安全的,在类创建好的同时对象生成,调用获得对象实例的方法反应速度快,代码简练。
懒汉式:对象延迟加载,效率高,只有在使用的时候才实例化对象,但若设计不当线程会不安全,代码相对于饿汉式复杂,第一次加载类对象的时候反应不快。
0 0
- java单例模式
- Java单例模式
- java单例模式
- java单例模式
- Java单例模式
- Java单例模式
- java单例模式
- Java单例模式
- java 单例模式
- java单例模式
- java单例模式
- java单例模式
- java 单例模式
- JAVA单例模式
- java单例模式 .
- Java 单例模式
- Java单例模式
- Java 单例模式
- 解决安装OpenGL时程序运行提示glut32.dll丢失的问题
- cocos2d-x 2.1.4 java.lang.UnsatisfiedLinkError
- 关于C语言里面的time
- 设计模式学习(十三):装饰模式
- Linux 多线程等待超时机制的实现:pthread_mutex_lock/pthread_cond_signal/pthread_mutex_unlock
- Java单例模式
- 第32课时,实践1,画出小星星
- 标签调用大全Dedecms5.6使用教程
- 设置Tomcat服务器自动加载web程序
- php使用session来保存用户登录信息
- 虚拟化环境高可靠存储的构架和配置
- 线程池
- UVa Parentheses Balance
- 基于海思开发板进行OPENCV交叉编译时的问题