技术开发 频道

Java 7的主要变化

  【IT168 文档】Devoxx 大会结束在几天前结束了,一位与会者对此次大会的重要内容进行了总结,他提到Java 7的主要变化如下:

  1.对collections的支持

  Java代码 

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");  

  现在你还可以:

  Java代码 

List<String> list = ["item"];  
String item
= list[0];  
  
Set
<String> set = {"item"};  
  
Map
<String, Integer> map = {"key" : 1};  
int value = map["key"];  

  2.自动资源管理

  Java代码 

BufferedReader br = new BufferedReader(new FileReader(path));  
try {  
  
return br.readLine();  
}
finally {  
   br.close();  
}  

  becomes:

  Java代码 

try (BufferedReader br = new BufferedReader(new FileReader(path)) {  
  
return br.readLine();  
}  
  
You can declare more than one resource to close:  
  
try (  
   InputStream in
= new FileInputStream(src);  
   OutputStream out
= new FileOutputStream(dest))  
{  
// code  
}  

  3.对通用实例创建(diamond)的type引用进行了改进

  Java代码 

Map<String, List<String>> anagrams = new HashMap<String, List<String>>();  

  becomes:

  Java代码 

Map<String, List<String>> anagrams = new HashMap<>();  

  4.数值可加下划线

  Java代码

int one_million = 1_000_000;  

  5.在switch中可使用string

  Java代码 

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.二进制文字

  Java代码 

int binary = 0b1001_1001;

  7.简化了可变参数方法的调用

  当程序员试图使用一个不可具体化的可变参数并调用一个*varargs* (可变)方法时,编辑器会生成一个“非安全操作”的警告。详情查看

0
相关文章