乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      JAVA面試經(jīng)典合集2:怎樣寫出一個線程安全的單例模式

       印度阿三17 2019-08-04

      怎樣寫出一個線程安全的單例模式

      package com.chendan.mianshi;
      
      /**
       * 
       * 
       * @Description
       * @author ChenDan 624665255@qq.com
       * @date 2019年8月4日下午8:47:13
       *
       */
      
      public class MianShiTest2 {
          public static void main(String[] args) {
              // com.chendan.mianshi.SingleTon@1c53fd30
              // com.chendan.mianshi.SingleTon@1c53fd30
              // 可以看到結(jié)果一樣
              getInstanceEhs();
      
              // com.chendan.mianshi.SingleTon2@282ba1e
              // com.chendan.mianshi.SingleTon2@282ba1e
              getInstanceLhs();
      
              //com.chendan.mianshi.SingleTon3@f5f2bb7
              //com.chendan.mianshi.SingleTon3@f5f2bb7
              getInstanceLhs2();
      
          }
      
          // 餓漢式方法
          public static void getInstanceEhs() {
              // 調(diào)用GetInstance直接返回一個instance對象,且是唯一的
              SingleTon instance1 = SingleTon.getInstance();
              SingleTon instance2 = SingleTon.getInstance();
              // com.chendan.mianshi.SingleTon@1c53fd30
              System.out.println(instance1);
              // com.chendan.mianshi.SingleTon@1c53fd30
              System.out.println(instance2);
          }
      
          // 懶漢式方法
      
          public static void getInstanceLhs() {
              // 調(diào)用getInstance直接返回一個instance對象,且是唯一的
              SingleTon2 instance1 = SingleTon2.getInstance();
              SingleTon2 instance2 = SingleTon2.getInstance();
              // ccom.chendan.mianshi.SingleTon2@cad498c
              System.out.println(instance1);
              // com.chendan.mianshi.SingleTon2@cad498c
              System.out.println(instance2);
          }
      
          public static void getInstanceLhs2() {
              // 調(diào)用getInstance直接返回一個instance對象,且是唯一的
              SingleTon3 instance1 = SingleTon3.getInstance();
              SingleTon3 instance2 = SingleTon3.getInstance();
              // com.chendan.mianshi.SingleTon2@cad498c
              System.out.println(instance1);
              // com.chendan.mianshi.SingleTon2@cad498c
              System.out.println(instance2);
          }
      
      }
      
      //餓漢式直接初始化方法
      class SingleTon {
      
          private SingleTon() {
      
          }
      
          // 餓漢式直接靜態(tài)初始化,保證唯一,但是初始類時就加載內(nèi)存,性能稍低
          private static SingleTon instance = new SingleTon();
      
          // 創(chuàng)建直接返回線程方法
          public static SingleTon getInstance() {
              return instance;
          }
      
      }
      
      //懶漢式靜態(tài)內(nèi)部類初始化方法
      class SingleTon2 {
      
          private SingleTon2() {
          }
      
          private static class Singleton2Holder {
              public final static SingleTon2 instance = new SingleTon2();
          }
      
          public static SingleTon2 getInstance() {
              return Singleton2Holder.instance;
          }
      
      }
      
      class SingleTon3 {
      
          private SingleTon3() {
          }
      
          public static SingleTon3 instance = null;
      
          public static SingleTon3 getInstance() {
      
              if (instance == null) {
                  synchronized (SingleTon3.class) {
                      if (instance == null) {
                          instance = new SingleTon3();
                      }
                  }
              }
      
              return instance;
      
          }
      
      }

      總結(jié):最優(yōu)方法為內(nèi)部靜態(tài)類的方法,即方法2

      來源:https://www./content-1-377251.html

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多