public class SimpleDemo1 {

//恶汉式

//类初始化时,立即加载这个对象(没有延时加载的优势)。加载类时,天然的是线程安全的

private static final SimpleDemo1 instance = new SimpleDemo1();

private SimpleDemo1(){

}

//方法不用同步,调用效率高

public static SimpleDemo1  getInstance(){

return instance;

}

}

public class SimpleDemo2 {

//懒汉式

//类初始化时,不初始化这个对象(延时加载,真正用的时候再创建)

private static SimpleDemo2 instance ;

private SimpleDemo2(){

}

//方法同步,调用效率低!

public synchronized static SimpleDemo2 getInstance(){

if(null == instance){

instance = new SimpleDemo2();

}

return instance;

}

}

public class SimpleDemo3 {

//静态内部类的方式

//这种方式:线程安全,调用效率高,并且实现了延时加载!

private static class SingleClassInstance{

private static final SimpleDemo3 instance = new SimpleDemo3();

}

//方法没有同步,调用效率高

public static  SimpleDemo3 getInstance(){

return SingleClassInstance.instance;

}

private  SimpleDemo3(){

}

}

public enum SimpleDemo4 {

//枚举方式

INSTANCE;

public void instanceOpration(){

System.out.println("hah");

}

}

public class Test {

/*

* 测试单例模式

*/

public static void main(String[] args){

SimpleDemo1 s1 = SimpleDemo1.getInstance();

SimpleDemo1 s2 = SimpleDemo1.getInstance();

System.out.println(s1);

System.out.println(s2);

SimpleDemo2 s3 = SimpleDemo2.getInstance();

SimpleDemo2 s4 = SimpleDemo2.getInstance();

System.out.println(s3);

System.out.println(s4);

SimpleDemo3 s5 = SimpleDemo3.getInstance();

SimpleDemo3 s6 = SimpleDemo3.getInstance();

System.out.println(s5);

System.out.println(s6);

SimpleDemo4 s7 = SimpleDemo4.INSTANCE;

SimpleDemo4 s8 = SimpleDemo4.INSTANCE;

System.out.println(s7);

System.out.println(s8);

SimpleDemo4.INSTANCE.instanceOpration();

}

}

java中的d单例模式的更多相关文章

  1. java中全面的单例模式多种实现方式总结

    单例模式的思想 想整理一些 java 并发相关的知识,不知道从哪开始,想起了单例模式中要考虑的线程安全,就从单例模式开始吧. 以前写过单例模式,这里再重新汇总补充整理一下,单例模式的多种实现. 单例模 ...

  2. java中常见的单例模式详解

    很多求职者在面试过程中都被问到了单例模式,最常见的问题,比如,每种单例模式的区别是什么?哪些模式是线程安全的?你们项目里用的哪种单例模式?原来没有注意这个问题,回来赶紧打开项目查看了一下代码,才发现我 ...

  3. 7.JAVA基础复习——JAVA中的设计模式单例模式

    设计模式:是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 总体来说设计模式分为23种三大类: 创建型模式,共 ...

  4. java中两种单例模式

    //懒汉式(线程不安全) class LazySingleton{ private static LazySingleton singleton; private LazySingleton(){} ...

  5. Java中的GOF23(23中设计模式)--------- 单例模式(Singleton)

    Java中的GOF23(23中设计模式)--------- 单例模式(Singleton) 在Java这这门语言里面,它的优点在于它本身的可移植性上面,而要做到可移植的话,本身就需要一个中介作为翻译工 ...

  6. JAVA中单例模式的几种实现方式

    1 线程不安全的实现方法 首先介绍java中最基本的单例模式实现方式,我们可以在一些初级的java书中看到.这种实现方法不是线程安全的,所以在项目实践中如果涉及到线程安全就不会使用这种方式.但是如果不 ...

  7. 1、c#中可以有静态构造方法,而java中没有,例如在单例模式中c#可以直接在静态构造中实例化对象,而java不可以

    1.c#中可以有静态构造方法,而java中没有,例如在单例模式中c#可以直接在静态构造中实例化对象,而java不可以

  8. java中的单例模式与doublecheck

    转自: http://devbean.blog.51cto.com/448512/203501 在GoF的23种设计模式中,单例模式是比较简单的一种.然而,有时候越是简单的东西越容易出现问题.下面就单 ...

  9. Java基础知识强化13:Java中单例模式案例使用(懒汉式)

    1.古往今来历史上皇帝通常只有一人.为了保证其唯一性,古人采用增加"防伪标识"的办法,如玉玺.更为简单的办法就是限制皇帝的创建.本案例中就是使用单例模式从而保证皇帝的唯一性.实例运 ...

随机推荐

  1. facebook .net sdk 应用

    浅谈 facebook .net sdk 应用   今天看了一篇非常好的文章,就放在这里与大家分享一下,顺便也给自己留一份.这段时间一直在学习MVC,另外如果大家有什么好的建议或者学习的地方,也请告知 ...

  2. 更好的抽屉效果(ios)

    昨天项目基本没啥事了,晚上早早的就回家了,躺在床上无聊地玩着手机(Android的),在清理系统垃圾时被一个“360手机助手”给吸引了, 其实我是被它的那个抽屉效果给吸引了,此时你也许会觉得我out了 ...

  3. Java笔记:抽象类、接口

    这篇笔记主要是抽象类和接口,还有简单介绍下三种设计模式:模板模式.工厂模式.命令模式 1.抽象方法和抽象类(1)抽象方法和抽象类都必须使用abstract修饰符来定义,包含抽象方法的类只能被定义成抽象 ...

  4. poj 3897 Maze Stretching 二分+A*搜索

    题意,给你一个l,和一个地图,让你从起点走到终点,使得路程刚好等于l. 你可以选择一个系数,把纵向的地图拉伸或收缩,比如你选择系数0.5,也就是说现在上下走一步消耗0.5的距离,如果选择系数3,也就是 ...

  5. 更新android SDK的问题

        由于我大天朝将google屏蔽的原因,在更新android SDK的时候,可能速度慢还是个小问题,重要的是你更新的时候出各种错误,比如错误  Failed to fetch URL https ...

  6. java反射的运用场景

    1.反射的好处是:可以在运行时确认对象以及方法. 2.下面举个简单的例子来说下反射的运用场景: 假如一款游戏有一个配置文件,配置文件里有个renderType设置了游戏启动时调用哪个RenderHan ...

  7. [jstips]向数组中插入一个元素

    向现有数组中插入一个元素是经常会见到的一个需求.你可以: 使用push将元素插入到数组的尾部: 使用unshift将元素插入到数组的头部: 使用splice将元素插入到数组的中间: 上面那些方法都是常 ...

  8. C语言之算数运算符

    一 什么是算数运算符 算术运算符: +:  就是把两个数据相加,得到和 -:  就是把两个数据相减,得到差 *:  就是把两个数据相乘,得到积 /:  就是把两个数据相除,得到商 %:  就是把两个数 ...

  9. iOS开发-内存管理

    内存管理 对于这篇呢,其实现在都是ARC模式,正常状态下基本不用我们去手动释放内存,所以如果不是要面试呀.装逼或者扎实功底的,就先别看了或者了解下即可,因为像面试时,有些面试官想看你的基础时,就有些人 ...

  10. [DP之多重背包优化方法]

    首先我们看一道有趣的题目 然后这道题很快想到是一个多重背包和无限背包混合体 那么我们就以这道题 来讨论一下多重背包的优化 首先我们看看朴素打法 memset(F,,]=; ;i<=N;i++) ...