首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

单例模式?解决办法

2012-11-05 
单例模式?Java codepublic class A {private Static A a new A()private A() {}public static A getIns

单例模式?

Java code
public class A {    private Static A a = new A();    private A() {    }    public static A getInstance() {        return a;    }}

这个是单例模式吗?还是应该这样
Java code
public class A {    private Static A a = null;    private A() {    }    public static A getInstance() {        if(null == a) {            a = new A();        }        return a;    }}

都一样吧?

[解决办法]
单例模式 是 不允许外界创建对象,将对象私有化,
提供一个方法 返回对象

针对于 多线程的情况下,还有另外一种写法
[解决办法]
都是单例模式,
但是,
后一种,不适用于多线程情况,多线程下,会产生多个对象的情况。

[解决办法]
上面的两个都是单例模式
第一个是开始就赋值 为懒汉模式
第二个为要的时候才赋值 叫饿汉模式

这两个当然都涉及到线程安全的问题~!
[解决办法]
都是单例模式.

单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。

1.饿汉式单例类
2.懒汉式单例类

使用的情况有点区别。
一个直接创建,一个是要用的时候再创建。饿汉式线程安全的,在类创建的同时就已经创建好一个静态的对象供系统使用,以后不在改变。懒汉式如果在创建实例对象时不加上synchronized则会导致对对象的访问不是线程安全的。

热点排行