小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Java 7七大新功能預覽

 燮羽 2011-03-22

Java 7已經(jīng)完成的7大新功能:
      1 對集合類的語言支持;
      2 自動資源管理;
      3 改進的通用實例創(chuàng)建類型推斷;
      4 數(shù)字字面量下劃線支持;
      5 switch中使用string;
      6 二進制字面量;
      7 簡化可變參數(shù)方法調用。

      下面我們來仔細看一下這7大新功能:
      1 對集合類的語言支持
      Java將包含對創(chuàng)建集合類的第一類語言支持。這意味著集合類的創(chuàng)建可以像Ruby和Perl那樣了。
      原本需要這樣:
         List<String> list = new ArrayList<String>();
         list.add("item");
         String item = list.get(0);
   
         Set<String> set = new HashSet<String>();
         set.add("item");
         Map<String, Integer> map = new HashMap<String, Integer>();
         map.put("key", 1);
         int value = map.get("key");

      現(xiàn)在你可以這樣:
         List<String> list = ["item"];
         String item = list[0];
         
         Set<String> set = {"item"};
         
         Map<String, Integer> map = {"key" : 1};
         int value = map["key"];

      這些集合是不可變的。

   
      2 自動資源管理
      Java中某些資源是需要手動關閉的,如InputStream,Writes,Sockets,Sql classes等。這個新的語言特性允許try語句本身申請更多的資源,
   這些資源作用于try代碼塊,并自動關閉。
      這個:
         BufferedReader br = new BufferedReader(new FileReader(path));
         try {
         return br.readLine();
               } finally {
                   br.close();
         }

      變成了這個:
          try (BufferedReader br = new BufferedReader(new FileReader(path)) {
             return br.readLine();
          } 
    
      你可以定義關閉多個資源:
         try (
             InputStream in = new FileInputStream(src);
             OutputStream out = new FileOutputStream(dest))
         {
         // code
         } 
      為了支持這個行為,所有可關閉的類將被修改為可以實現(xiàn)一個Closable(可關閉的)接口。
  

      3 增強的對通用實例創(chuàng)建(diamond)的類型推斷
      類型推斷是一個特殊的煩惱,下面的代碼:
         Map<String, List<String>> anagrams = new HashMap<String, List<String>>();

      通過類型推斷后變成:
         Map<String, List<String>> anagrams = new HashMap<>(); 
      這個<>被叫做diamond(鉆石)運算符,這個運算符從引用的聲明中推斷類型。

   
      4 數(shù)字字面量下劃線支持
      很長的數(shù)字可讀性不好,在Java 7中可以使用下劃線分隔長int以及l(fā)ong了,如:
         int one_million = 1_000_000; 
   運算時先去除下劃線,如:1_1 * 10 = 110,120 – 1_0 = 110
  

      5 switch中使用string
      以前你在switch中只能使用number或enum?,F(xiàn)在你可以使用string了:
         String s = ...
         switch(s) {
         case "quux":
              processQuux(s);
     // fall-through
         case "foo":
   case "bar":
              processFooOrBar(s);
     break;
         case "baz":
        processBaz(s);
              // fall-through
   default:
              processDefault(s);
            break;
  }

  
      6 二進制字面量
      由于繼承C語言,Java代碼在傳統(tǒng)上迫使程序員只能使用十進制,八進制或十六進制來表示數(shù)(numbers)。
      由于很少的域是以bit導向的,這種限制可能導致錯誤。你現(xiàn)在可以使用0b前綴創(chuàng)建二進制字面量:
         int binary = 0b1001_1001; 
   現(xiàn)在,你可以使用二進制字面量這種表示方式,并且使用非常簡短的代碼,可將二進制字符轉換為數(shù)據(jù)類型,如在byte或short。
   byte aByte = (byte)0b001;    
   short aShort = (short)0b010;   

   
      7 簡化的可變參數(shù)調用
      當程序員試圖使用一個不可具體化的可變參數(shù)并調用一個*varargs* (可變)方法時,編輯器會生成一個“非安全操作”的警告。
   JDK 7將警告從call轉移到了方法聲明(methord declaration)的過程中。這樣API設計者就可以使用vararg,因為警告的數(shù)量大大減少了。

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多