您的位置:首页 > 编程语言 > Java开发

java中的单例模式

2016-09-27 20:42 204 查看
    
    有时候,我们需要这样的一个功能,在整个应用中,我们只允许有一个实例存在,如ppt中我们只允许打开一个窗口,登录windows,只允许有一个登录界面进去。如果我们把窗口当成类,那么其就只有一个实例。

    另外利用单例+同步,我们可以实现在同一时刻,我们只允许有一个线程去访问资源,这样就保证了安全。

    特点:

    1.构造函数要为私有,保证只能有类本身去创建对象

     2.在类中要定义该类的私有的静态的全局变量

     3.通过一个公有的静态方法去返回该单例的实例。

     单例分为懒汉模型和饥汉模式

     懒汉模式(默认的)

     1.思想:在用到该单例的时候便创建对象,可以优化内存的使用

     饥汉模式

    1.思想:在加载类的时候去创建对象,

    

      评价:

       1.懒汉模式去创建单例,在用到单例的时候才创建相应的对象,会影响程序的速度。饥汉模型加载类的时候便会创建对象,其又是静态的,所以占用方法区的静态数区的空间。

       2.懒汉式是不安全的,如果并发的两个线程同时访问单例的getInstance()方法,又没有对该静态方法加同步,就会有两个实例会被创建,不安全。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: