Java 7的主要变化

来源:互联网 发布:海岛22研究所升级数据 编辑:程序博客网 时间:2024/05/22 08:31

 1.对collections的支持

Java代码 复制代码
  1. List<String> list new ArrayList<String>();  
  2. list.add("item");  
  3. String item list.get(0);  
  4.   
  5. Set<String> set new HashSet<String>();  
  6. set.add("item");  
  7.   
  8. Map<String, Integer> map new HashMap<String, Integer>();  
  9. map.put("key"1);  
  10. int value map.get("key");  
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代码 复制代码
  1. List<String> list ["item"];  
  2. String item list[0];  
  3.   
  4. Set<String> set {"item"};  
  5.   
  6. Map<String, Integer> map {"key" 1};  
  7. int value map["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代码 复制代码
  1. BufferedReader br new BufferedReader(new FileReader(path));  
  2. try  
  3.    return br.readLine();  
  4. finally  
  5.    br.close();  
  6.  
BufferedReader br = new BufferedReader(new FileReader(path));try {   return br.readLine();} finally {   br.close();}

 becomes:

 

Java代码 复制代码
  1. try (BufferedReader br new BufferedReader(new FileReader(path))  
  2.    return br.readLine();  
  3. }   
  4.   
  5. You can declare more than one resource to close:  
  6.   
  7. try  
  8.    InputStream in new FileInputStream(src);  
  9.    OutputStream out new FileOutputStream(dest))  
  10. {   
  11.  // code  
  12.  
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代码 复制代码
  1. Map<String, List<String>> anagrams new HashMap<String, List<String>>();  
Map<String, List<String>> anagrams = new HashMap<String, List<String>>();

 becomes:

 

Java代码 复制代码
  1. Map<String, List<String>> anagrams new HashMap<>();  
Map<String, List<String>> anagrams = new HashMap<>();

4.数值可加下划线

 

Java代码 复制代码
  1. int one_million 1_000_000;  
int one_million = 1_000_000;

  

5.在switch中可使用string

 

Java代码 复制代码
  1. String ...  
  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.  
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代码 复制代码
  1. int binary 0b1001_1001;  
int binary = 0b1001_1001;

  

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

 

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