Java7的一些新特性

1. 二进制数值表达方法,可以加前缀 0b 或者 0B,来表达byte, short,int和long。 这个是和之前的十六进制表达方式 0x 或 0X 是相对应的。

byte b = (byte)0b00100001;

int i = 0b101;

2. 数值中间可以用下划线断开,例如

long creditCardNumber = 1234_5678_9012_3456L;

float pi = 3.14_15F;

但是下划线不能再开头,结尾,或者 F, L的前面

3. 泛型定义时可以自动推断出来,但是 <>这个符号是不能少的。

比如

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

可以写成:

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

4. try-with-resources。 resource必须是 java.lang.AutoCloseable。会自动调用它的close()方法。

 try (BufferedReader br = new BufferedReader(new FileReader(path))) {

    br.readLine();

 }

也可以同时声明多个resource:

try (BufferedReader br = new BufferedReader(new FileReader("path"));

    BufferedReader br2 = new BufferedReader(new FileReader("path"))) {

       br.readLine();

 }

也可以用在JDBC的 Statement上

try (Statement stmt = cn.createStatement()) {

    ResultSet rs = stmt.executeQuery("SELECT * FROM table1");

}

  

5.同时捕获多个Exception

try{

 ...

} catch (IOException ex) {

 ...

}catch (SQLException ex) {

 ...

}

可以这样写了

try{

 ...

} catch (IOException|SQLException ex) {

 ...

}

6. 新的文件读写包 java.nio.file。比之前的java.io.File强大不少。 常用的有 Files, Paths

Paths:用来生成一个实现Path接口的实现类。由于jvm运行的平台不同,会得到不同的Path实现类。

Files:具体对文件进行操作的类,包括复制文件,创建目录,创建文件,创建连接,删除文件,获取文件的BufferReader,BufferWriter,InputStream,OutputStream,以字节和字符串形式读取文件,写入文件内容等等

7.  fork/join 框架,基于 ForkJoinPool 类,它是 Executor 接口的实现,设计它用来进行高效的运行大量任务;ForkJoinTask代表一个需要执行的任务,真正执行这些任务的线程是放在一个线程池(ForkJoinPool)里面。它可以把一个大的任务划分为若干个小的任务并发执行,充分利用可用的资源,进而提高应用的执行效率。采用work-stealing 的方式,比ExcuteService更高效。

8. 新的垃圾回收器G1,可以替代之前的 CMS ( Concurrent Mark-Sweep Collector)

猜你喜欢

转载自21ca.iteye.com/blog/2389108