hymn

忽有故人心头过,回首山河已是秋。

  menu
132 文章
0 浏览
6 当前访客
ღゝ◡╹)ノ❤️

单例

package effectiveJava;

/**
 * @author: daixyhymn
 * @description:
 * @date: 2020/11/12 10:03
 */

/**
 * 饿汉式
 */
public class Singleton {
  public static final Singleton instance = new Singleton();
  private Singleton(){
    /**
     * 防止反射破环单例
     */
    if (instance != null){
      throw new RuntimeException();
    }
  }

  /**
   * 防止反序列化破环单例
   * @return
   */
  private Object readResolve(){
    return instance;
  }
}

class Singleton3{
  private static final Singleton3 instance = new Singleton3();
  private Singleton3(){}
  public static Singleton3 getInstance(){
    return instance;
  }
}

/**
 * 静态内部类
 */
class Singleton4{
  private Singleton4(){}

  private static class SingletonHolder{
    private static final Singleton4 singleton4= new Singleton4();
  }

  public static Singleton4 getInstance(){
    return SingletonHolder.singleton4;
  }
}

/**
 * 双重校验锁
 */
class Singleton5{
  private Singleton5(){}

  private volatile static Singleton5 singleton5;

  public static Singleton5 getInstance(){
    if (singleton5 == null) {
      synchronized (Singleton5.class){
        if (singleton5 == null) {
          singleton5 = new Singleton5();
        }
      }
    }
    return singleton5;
  }
}

/**
 * 枚举
 */
enum Singleton2{
  INSTANCE;

  private String name;

  public String getName(){
    return this.name;
  }
  public void setName(String name){
    this.name = name;
  }
}


标题:单例
作者:hymn
地址:https://dxyhymn.com/articles/2020/11/12/1605153350591.html