欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java单例模式4种使用方式分享

程序员文章站 2024-02-24 15:40:16
1、java concurrency in practice的list复制代码 代码如下:public class singleton {   &nbs...

1、java concurrency in practice的list

复制代码 代码如下:

public class singleton { 
    private static class singletonholder { 
        public static singleton resource = new singleton(); 
    } 
    public static singleton getresource() { 
        return  singletonholder.resource ; 
    } 

    private singleton(){ 

    } 
}

2、effective java

复制代码 代码如下:

public class singleton { 
    public static final singleton instance = new singleton(); 

    private singleton(){} 

    public void method(){ 
        //... 
    } 
    public static void main(string[] a){ 
        //调用方法。 
        singleton.instance.method(); 
    } 
}

3、利用枚举巧妙创建单实例

复制代码 代码如下:

/**
 * 利用枚举巧妙创建单实例
 */ 
public enum singleton { 
    instance; 
    public void method(){ 
        //... 
    } 
    public static void main(string[] a){ 
        //调用方法。 
        singleton.instance.method(); 
    } 
}

4、双重锁

复制代码 代码如下:

public class singleton { 
    private static volatile singleton instance = null; 
    /**
     * 防止其他人new对象
     */ 
    private singleton(){ 
        system.out.println("init"); 
    } 
    public static  singleton getinstance(){ 
        if(instance == null){ 
            synchronized(singleton.class){ 
                if(instance == null){ 
                    instance = new singleton(); 
                } 
            } 
        } 
        return instance; 
    } 
}