java中的单例模式与doublecheck】的更多相关文章

转自: http://devbean.blog.51cto.com/448512/203501 在GoF的23种设计模式中,单例模式是比较简单的一种.然而,有时候越是简单的东西越容易出现问题.下面就单例设计模式详细的探讨一下.   所谓单例模式,简单来说,就是在整个应用中保证只有一个类的实例存在.就像是Java Web中的application,也就是提供了一个全局变量,用处相当广泛,比如保存全局数据,实现全局性的操作等.   1. 最简单的实现   首先,能够想到的最简单的实现是,把类的构造函…
单例模式与静态类(一个类,所有方法为静态方法)是另一个非常有趣的问题,在<Java中有关单例模式的面试问题>博文中露掉了,由于单例模式和静态类都具有良好的访问性,它们之间有许多相似之处,例如,两者可以直接使用而无须创建对象,都可提交唯一实例,在一个非常高的高度上看起来它们都为是用于同样的任务.由于它们具有较多的相似性,面试官常常会问一些类似为神马使用单例模式替换静态方法?你能使用静态类替换单例模式吗?Java中单例模式与静态的区别有那些?等这样的问题,为回答这些问题,记住他们单例模式和静态方法…
Java中的常用类 1.Math : 位于java.lang包中 (1)Math.PI:返回一个最接近圆周率的 (2)Math.abs(-10):返回一个数的绝对值 (3)Math.cbrt(27):返回一个数的立方根 (4)Math.sqrt(16):返回一个数的平方根 (5)Math.max(10, 20)/Math.min(10, 20):最大值,最小值 (6)Math.pow(20, 3):求某个数的几次幂 (7)Math.floor(12.5):传入一个double的值,返回一个小于指…
Introduction 对于系统中的某个类来说,只有一个实例是很重要的,比如只有一个timer和ID Producer.又比如在服务器程序中,配置信息保留在一个文件中,这些配置信息由一个单例对象统一获取,进程中的其他对象通过这个单例对象获取这些配置信息,这种方式能大大简化复杂环境下的配置管理. 所以这个时候一个类里面就只能有一个实例,而且这个实例要易于访问.我当然可以只定义一个全局变量可以保证对象随时都能访问,但是这种方式我依然可以实例化多个instance,而且被不同的对象所持有,不是很妙.…
单例模式是 Java 中最简单的设计模式之一,它是指一个类在运行期间始终只有一个实例,我们就把它称之为单例模式.它不但被应用在实际的工作中,而且还是面试中最常考的题目之一.通过单例模式我们可以知道此人的编程风格,以及对于基础知识的掌握是否牢固. 我们本课时的面试题是,单例的实现方式有几种?它们有什么优缺点? 典型回答 单例的实现分为饿汉模式和懒汉模式.顾名思义,饿汉模式就好比他是一个饿汉,而且有一定的危机意识,他会提前把食物囤积好,以备饿了之后直接能吃到食物.对应到程序中指的是,在类加载时就会进…
什么是单例模式: 单例模式既只能在自己本类中创建有且唯一的一个实例(姑且不考虑映射的情况)通过方法将该实例对外公开 第一种:单例模式-懒汉式 既调用getInstance()方法返回实例之前判断有没有该实例如果没有就创建一个实例 如果有该实例则直接返回出去,代码如下: class Singleton{ //单例-懒汉模式 public static Singleton singleton = null; //构造方法私有化 private Singleton(){ } //加锁保证线程的安全 p…
单例模式: public class Person{ public static Person per; //定义一个静态变量,用来存储当前类的对象 private Person() //构造一个私有方法 { } public static Person getInstance() //定义一个静态方法,保存类的实例 { if(per==null) { per=this; } return this; } public class Student { Person per=Persion.get…
//单例模式:饿汉式和懒汉式 //单例模式 /* 设计模式:解决某一类问题行之有效的解决办法(思想). 单例(Singleton):设计模式: 学习设计模式必须先弄清楚它是解决什么问题的. 单例模式是解决什么问题的? 可以保证一个类的对象唯一性. 场景:比如多个程序都要使用一个配置文件中的数据,而且要实现 数据共享和交换.必须要将多个数据封装到一个对象中.而且 多个程序操作的是同一个对象.那也就是说必须保证这个配置 文件的唯一性. 怎么能保证对象的唯一性呢? 1,一个类只要提供了构造函数就可以产…
Java中的单例模式 设计模式是软件开发过程中经验的积累 一.单例模式 1.单例模式是一种常用的软件设计模式,通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源.如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案. 2.单例模式的三个要点(面试常问): 某个类只能有一个实例,不能new对象 必须自行创建这个实例 必须自行向整个系统提供这个实例(创建一个公开方法,返回这个对象) 代码演示之懒汉式: /* * 单例模式(懒汉式)…
在 Effecitve Java 一书的第 48 条中提到了双重检查模式,并指出这种模式在 Java 中通常并不适用.该模式的结构如下所示: ? 1 2 3 4 5 6 7 8 9 10 public Resource getResource() {  if (resource == null) {    synchronized(this){     if (resource==null) {     resource = new Resource();     }     }   }  re…