java的单例设计模式

此页面是否是列表页或首页?未找到合适正文内容。

java的单例设计模式

标签:styletin静态blogclass私有化引用效率懒汉

单例设计模式是java的一种设计模式,它是指在设计一个类时,要保证在整个程序运行期间针对该类内存中只存在一个实例对象。

单例设计模式包括饿汉式和懒汉式两种模式。

饿汉式:类一加载进内存就创建好了对象;

饿汉式的代码如下:

package com.sjk.sheng;

/**
* 单例模式之饿汉式
* @author sjk
*
*/
public class Single {
//将构造函数私有化,不让别的类建立该类对象
private Single(){}
//自己建立一个对象
private static final Single s = new Single();
//提供一个公共访问方式
public static Single getInstance() {
return s;
}
}

懒汉式:类加载进内存的时候,对象还没有存在,只有调用了getInstance()方法时,对象才开始创建。

懒汉式的代码如下:

package com.sjk.sheng;

/**
* 单例模式之懒汉式
* @author sjk
*
*/
public class Single {
private Single(){}
private static Single s;
public static Single getInstance() {
if(s==null)
//如果对象为空就创建一个
s=new Single();
return s;
}
}

懒汉式是延迟加载,如果多个线程同时操作懒汉式时就有可能出现线程安全问题,解决线程安全问题可以加同步来解决。但是加了同步之后,每一次都要比较锁,效率就变慢了,所以可以加双重判断来提高程序效率。

如将上述懒汉式的Instance函数改成同步:

package com.sjk.sheng;

/**
* 单例模式之懒汉式线程安全问题的解决方案
*
* @author sjk
*
*/
public class Single {

// 声明本类的一个私有的成员变量
private static Single single;

// 第一步 : 私有化构造方法

作者: liuzhihao

为您推荐

返回顶部