• 集合类的语法支持

Before:

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

Java7:

List<String> list = ["item"];
         String item = list[0];

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

         Map<String, Integer> map = {"key" : 1};
         int value = map["key"];
  • 自动资源管理

Java中某些资源是需要手动关闭的,如InputStream,Sockets等。这个新的语言特性允许多的资源,这些资源作用于try代码块,并自动关闭。

需要写在try()块里.

Before:

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

Java7:

 try (BufferedReader br = new BufferedReader(new FileReader(path)) {
              return br.readLine();
          }
  • 类型判断

Before:

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

Java7:

 Map<String, List<String>> anagrams = new HashMap<>();
  • 数值字面量下划线支持
int one_million = 1_000_000;
  • switch中可以使用string
        String s = "test";
        switch (s) {
            case "test" :
                System.out.println("test");
            case "test1" :
                System.out.println("test1");
                break ;
            default :
                System.out.println("break");
                break ;
        }
  • 新增一些取环境信息的工具方法
File System.getJavaIoTempDir() // IO临时文件夹  
File System.getJavaHomeDir() // JRE的安装目录  
File System.getUserHomeDir() // 当前用户目录  
File System.getUserDir() // 启动java进程时所在的目录5

results matching ""

    No results matching ""