
Java语言下单例模式的实现
单例模式,即整个程序中某个对象只能被实例化一次,而在多线程环境下,普通懒汉式单例模式将无法满足要求,这里主要介绍几种方法
6点A君
记录我学习的知识的地方~
展开
-
单例模式之饿汉模式(立即加载)
单例模式或许都知道,即某个系统只有一个实例。什么是立即加载?立即加载就是使用类的时候已经将队形创建完毕,常见的方法就是直接new实例化。代码基本模式如下:public class MyObject { // 立即加载方式==饿汉模式 //静态成员变量,且一开始就直接创建对象。 private static MyObject myObject = new MyObject();原创 2017-04-15 09:57:32 · 1732 阅读 · 5 评论 -
单例模式之懒汉模式(延迟加载)
什么是延迟加载?延迟加载就是在调用get()方法时候创建,常见的方法就是在get()中实例化。看实现代码:package test;public class MyObject { private static MyObject myObject; private MyObject() { } public static MyObject getInstance() {原创 2017-04-15 10:58:07 · 2072 阅读 · 1 评论 -
单例模式之静态内部类实现
单例模式之静态内部类实现原创 2017-04-16 12:18:39 · 1145 阅读 · 0 评论 -
单例模式之序列化与反序列化实现
静态内部类可以达到线程安全问题,但是如果遇到序列化对象时,使用默认的方式运行得到的结果坑你还是多例的。package test;import java.io.ObjectStreamException;import java.io.Serializable;public class MyObject implements Serializable { private stat原创 2017-04-16 13:38:32 · 2260 阅读 · 0 评论 -
单例模式之静态代码块实现
前几篇讲了通过静态内部类来实现单例模式,主要思路就是私有构造方法+静态内部类。这里还有一种利用静态代码块来实现的单例模式。看如下代码:package test;public class MyObject { private static MyObject instance = null; private MyObject() { } static { insta原创 2017-04-16 13:51:22 · 4126 阅读 · 0 评论 -
单例模式之使用enum枚举数据类型实现
枚举enum和静态代码块的特性想死,在使用枚举类时,构造方法会被自动调用,也可以应用这个特性实现单例模式。package test;public class MyObject { private enum MyEnumSingleton{ INSTANCE; private Resource resource; private My原创 2017-04-16 14:39:53 · 4148 阅读 · 2 评论