<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-124  評論-49  文章-56  trackbacks-0

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

          下面我們來仔細看一下這7大新功能:
          1 對集合類的語言支持
          Java將包含對創建集合類的第一類語言支持。這意味著集合類的創建可以像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");

          現在你可以這樣:
             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
             }
          為了支持這個行為,所有可關閉的類將被修改為可以實現一個Closable(可關閉的)接口。
      

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

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

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

          5 switch中使用string
          以前你在switch中只能使用number或enum。現在你可以使用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代碼在傳統上迫使程序員只能使用十進制,八進制或十六進制來表示數(numbers)。
          由于很少的域是以bit導向的,這種限制可能導致錯誤。你現在可以使用0b前綴創建二進制字面量:
             int binary = 0b1001_1001;
       現在,你可以使用二進制字面量這種表示方式,并且使用非常簡短的代碼,可將二進制字符轉換為數據類型,如在byte或short。
       byte aByte = (byte)0b001;   
       short aShort = (short)0b010;   

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

    posted on 2011-03-18 15:21 junly 閱讀(16850) 評論(9)  編輯  收藏 所屬分類: java

    評論:
    # re: Java 7七大新功能預覽 2011-03-19 11:42 | lhzq
    有了這七大功能,以后好用很多!  回復  更多評論
      
    # re: Java 7七大新功能預覽 2011-03-21 09:31 | HiMagic!
    1&5是最需要的  回復  更多評論
      
    # re: Java 7七大新功能預覽[未登錄] 2011-03-21 10:39 | pizzazz
    喜歡2  回復  更多評論
      
    # re: Java 7七大新功能預覽 2011-03-21 14:07 | Drity Monkey
    5,7不錯  回復  更多評論
      
    # re: Java 7七大新功能預覽 2011-04-07 17:44 | 王垠
    3 增強的對通用實例創建(diamond)的類型推斷

    這一條新功能比較搞笑。在我看來,該省略的類型應該是在左邊,而不是右邊。我為Python實現了類型推斷系統,經驗證明,唯一需要類型標記的地方是函數的參數。
      回復  更多評論
      
    # re: Java 7七大新功能預覽 2012-09-16 13:42 | 小豬
    List<String> list = ["item"];
    String item = list[0];

    Set<String> set = {"item"};

    Map<String, Integer> map = {"key" : 1};
    int value = map["key"];

    請問一下專家...以前都是輸入單筆資料..那麼多筆資料要如何做?  回復  更多評論
      
    # re: Java 7七大新功能預覽 2014-04-02 20:52 | fa
    專家,Map<String, Integer> map = {"key" : 1}; 這個能編譯通過嗎?  回復  更多評論
      
    # re: Java 7七大新功能預覽 2014-04-02 21:05 | fa
    “對集合類的語言支持” 那只是建議,并沒有加入到 java7 的版本里。  回復  更多評論
      
    # re: Java 7七大新功能預覽[未登錄] 2014-10-13 10:08 | xxx
    shit@fa
      回復  更多評論
      
    主站蜘蛛池模板: 亚洲一级黄色大片| 免费jjzz在在线播放国产| 久久被窝电影亚洲爽爽爽| 边摸边吃奶边做爽免费视频99| 最近最好的中文字幕2019免费| 亚洲午夜成激人情在线影院| 国产大片免费网站不卡美女| 亚洲国产成+人+综合| 永久免费av无码不卡在线观看| 狠狠色香婷婷久久亚洲精品| 女人18毛片特级一级免费视频| 美女网站在线观看视频免费的| 亚洲人成电影在线播放| 一级毛片**免费看试看20分钟| 亚洲欧洲精品成人久久曰影片 | 中文字幕视频免费| 亚洲色成人网一二三区| 免费精品国产自产拍在线观看图片| 亚洲国产美女福利直播秀一区二区| 免费电影在线观看网站| 亚洲AV网一区二区三区 | 久久综合亚洲色一区二区三区| 亚洲精品视频免费看| 国产亚洲精品影视在线| 国产精品免费一级在线观看| 四虎国产精品永免费| 国产精品亚洲片在线观看不卡 | 亚洲精品国产免费| 好先生在线观看免费播放| 亚洲丰满熟女一区二区哦| 亚洲第一成人影院| 亚欧日韩毛片在线看免费网站| 亚洲性无码av在线| mm1313亚洲国产精品美女| 久久香蕉国产线看免费| 国产人成亚洲第一网站在线播放| 国产yw855.c免费视频| 久久免费精品一区二区| 亚洲av极品无码专区在线观看| 亚洲女同成人AⅤ人片在线观看| 亚洲人成免费电影|