JAVA 静态方法的使用

package com.okhttpdemo;

import java.io.InputStream;
import java.io.PipedReader;

/**
 * Created by Administrator on 2018/7/17/017.
 */

public class Singleton {

 /*   //1.饿汉式(静态常量)
    private final static Singleton INSTANCE=new Singleton();

    private Singleton(){}

    public static Singleton getInstance(){

        return INSTANCE;
    }*/


/*
   //2.饿汉式(静态代码块)
    private static Singleton instance;

    static {
        instance=new Singleton();
    }

    private Singleton(){}

    public static Singleton getInstance() {
        return instance;
    }*/



/*  //3.懒汉式(线程不安全)
   private static Singleton singleton;

    private Singleton(){}

    public static Singleton getInstance(){

        if(singleton==null){

            singleton=new Singleton();
        }

        return  singleton;
    }*/


/*    //4.懒汉式 线程安全,同步方法

    private static Singleton singleton;
    private Singleton(){}

    public static  synchronized  Singleton getInstance(){

        if(singleton==null){
            singleton=new Singleton();
        }
        return  singleton;

    }*/


    //6.双重检查,推荐用
/*    private  static volatile Singleton singleton;

    private Singleton(){}

    public static Singleton getSingleton(){

        if(singleton==null){

            synchronized (Singleton.class){

                if(singleton==null){
                    singleton=new Singleton();
                }

            }

        }
        return singleton;

    }*/



    //7.静态内部类,推荐用

     private Singleton(){}

    private static class SingletonInstance{

        private static final Singleton instance=new Singleton();

    }


    public static Singleton getInstance(){
        return SingletonInstance.instance;
    }




}

猜你喜欢

转载自blog.csdn.net/weixin_37744986/article/details/81082618