自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Java 7已經(jīng)完成的七大新功能預(yù)覽

原創(chuàng)
開發(fā) 后端
今年的Devoxx大會(huì)又是一次有關(guān)Java 7進(jìn)程的一次展示大會(huì)。一位Devoxx的參會(huì)者在博客中報(bào)告了Java 7現(xiàn)在已經(jīng)完成的7大新功能。Java 7預(yù)計(jì)將在2010年9月正式到來。

51CTO推薦專題:Java 7 下一代Java開發(fā)技術(shù)詳解

#t#【51CTO快譯】最近的Devoxx大會(huì)上,Java 7將包含閉包的消息令很多人感到振奮——這將做為一個(gè)獨(dú)立的JSR被實(shí)現(xiàn)。在眾多Java 7新的語(yǔ)言特性中,有一些現(xiàn)在已經(jīng)完成了。Devoxx大會(huì)的一位參會(huì)者在博客中報(bào)告了下面這些Java 7已經(jīng)完成的7大新功能:
1)對(duì)集合類的語(yǔ)言支持;
2)自動(dòng)資源管理;
3)改進(jìn)的通用實(shí)例創(chuàng)建類型推斷;
4)數(shù)字字面量下劃線支持;
5)switch中使用string;
6)二進(jìn)制字面量;
7)簡(jiǎn)化可變參數(shù)方法調(diào)用。

51CTO編輯推薦:Java 7特別專題

 

下面我們來仔細(xì)看一下這7大新功能:

 

對(duì)集合類的語(yǔ)言支持

Java將包含對(duì)創(chuàng)建集合類的第一類語(yǔ)言支持。這意味著集合類的創(chuàng)建可以像Ruby和Perl那樣了。

原本需要這樣:

  1. List list = new ArrayList();  
  2. list.add("item");  
  3. String item = list.get(0);  
  4.  
  5. Set set = new HashSet();  
  6. set.add("item");  
  7.  
  8. Map map = new HashMap();  
  9. map.put("key"1);  
  10. int value = map.get("key");  

現(xiàn)在你可以這樣:

  1. List list = ["item"];  
  2. String item = list[0];  
  3.  
  4. Set set = {"item"};  
  5.  
  6. Map map = {"key" : 1};  
  7. int value = map["key"];    

這些集合是不可變的。

自動(dòng)資源管理

Java中某些資源是需要手動(dòng)關(guān)閉的,如InputStream,Writes,Sockets,Sql classes等。這個(gè)新的語(yǔ)言特性允許try語(yǔ)句本身申請(qǐng)更多的資源,這些資源作用于try代碼塊,并自動(dòng)關(guān)閉。

這個(gè):

  1. BufferedReader br = new BufferedReader(new FileReader(path));  
  2. try {  
  3.    return br.readLine();  
  4. finally {  
  5.    br.close();  

變成了這個(gè):

  1. try (BufferedReader br = new BufferedReader(new FileReader(path)) {  
  2.    return br.readLine();  

你可以定義關(guān)閉多個(gè)資源:

  1. try (  
  2.    InputStream in = new FileInputStream(src);  
  3.    OutputStream out = new FileOutputStream(dest))  
  4. {  
  5.  // code  

為了支持這個(gè)行為,所有可關(guān)閉的類將被修改為可以實(shí)現(xiàn)一個(gè)Closable(可關(guān)閉的)接口。

增強(qiáng)的對(duì)通用實(shí)例創(chuàng)建(diamond)的類型推斷

類型推斷是一個(gè)特殊的煩惱,下面的代碼:

  1. Map> anagrams = new HashMap>(); 

通過類型推斷后變成:

  1. Map> anagrams = new HashMap<>(); 

這個(gè)<>被叫做diamond(鉆石)運(yùn)算符,這個(gè)運(yùn)算符從引用的聲明中推斷類型。

數(shù)字字面量下劃線支持

很長(zhǎng)的數(shù)字可讀性不好,在Java 7中可以使用下劃線分隔長(zhǎng)int以及l(fā)ong了,如:

  1. int one_million = 1_000_000; 

switch中使用string

以前你在switch中只能使用number或enum?,F(xiàn)在你可以使用string了:

  1. String s = ...  
  2. switch(s) {  
  3.  case "quux":  
  4.     processQuux(s);  
  5.     // fall-through  
  6.  
  7.   case "foo":  
  8.   case "bar":  
  9.     processFooOrBar(s);  
  10.     break;  
  11.  
  12.   case "baz":  
  13.      processBaz(s);  
  14.     // fall-through  
  15.  
  16.   default:  
  17.     processDefault(s);  
  18.     break;  
  19. }  

二進(jìn)制字面量

由于繼承C語(yǔ)言,Java代碼在傳統(tǒng)上迫使程序員只能使用十進(jìn)制,八進(jìn)制或十六進(jìn)制來表示數(shù)(numbers)。

由于很少的域是以bit導(dǎo)向的,這種限制可能導(dǎo)致錯(cuò)誤。你現(xiàn)在可以使用0b前綴創(chuàng)建二進(jìn)制字面量:

  1. int binary = 0b1001_1001; 

簡(jiǎn)化的可變參數(shù)調(diào)用

當(dāng)程序員試圖使用一個(gè)不可具體化的可變參數(shù)并調(diào)用一個(gè)*varargs* (可變)方法時(shí),編輯器會(huì)生成一個(gè)“非安全操作”的警告。JDK 7將警告從call轉(zhuǎn)移到了方法聲明(methord declaration)的過程中。這樣API設(shè)計(jì)者就可以使用vararg,因?yàn)榫娴臄?shù)量大大減少了。

責(zé)任編輯:yangsai 來源: 51CTO.com
相關(guān)推薦

2011-08-10 10:41:19

虛擬化VMware ESXi

2010-09-29 14:08:31

2013-09-26 15:55:45

iOS7功能

2011-06-03 13:21:42

iOS5WWDC蘋果

2020-11-02 00:17:52

vSphere 7.0Kubernetes容器管理

2014-10-30 14:42:57

Android 5.0Google

2010-05-07 09:11:52

2011-04-07 14:12:04

Firefox 5.0

2010-01-13 09:11:04

Visual Stud

2018-11-23 15:55:29

Windows10Windows 7Windows

2013-02-28 20:24:57

微軟SharePoin

2020-01-31 18:40:57

Python 3.8Python語(yǔ)言

2013-02-28 20:22:06

Lync微軟

2013-02-28 20:27:46

Exchange微軟

2020-05-07 14:34:14

GitHub新功能開發(fā)者

2009-07-07 08:51:00

微軟Windows 7新功能

2018-09-30 14:20:03

編程語(yǔ)言Java新特性

2020-02-06 09:00:00

ESES2020前端

2019-12-26 09:00:27

云計(jì)算悖論智能

2015-06-02 15:24:45

Android M谷歌
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)