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

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

    • 分享

      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ā)表

        請遵守用戶 評論公約

        類似文章 更多