小菜修炼之道——Java7新特性

1、TWR 自动关闭资源

自动关闭资源必须要注意书写规范,所有需要关闭的资源必须使用一个变量声明出来并且写在try的小括号块中,不是大括号。如下代码:

try(  InputStream is = new FileInputStream(new File(path))    ){

// 可能发生异常的代码

}catch(Exception e){

// 异常信息捕获

}finally{

// 自动关闭资源,无需手动处理 is

}

2、switch 新增字符串支持

在java7之前switch只是支持 byte short char int 枚举以及 Byte Short Char Integer,现在新增支持字符串,其实Javascript一直都支持字符串。

3、语法糖

(指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。通常来说使用语法糖能够增加程序的可读性,从而减少程序代码出错的机会)

对数字常量的改进,新增二进制写法、数字可以使用下划线,编译时自动去掉下划线;比如如下代码:

int value = 123_456_789;// 增加代码的可读性

int value = 0b1100111;// 二进制表示数字

4、Multi-catch 在一个catch块中声明多个要捕获的异常

try{

// 可能发生异常的代码

}catch(IOException | FileNotFoundException e){

// 异常信息捕获

}catch(Exception e){

// 异常信息捕获

}finally{

// 自动关闭资源,无需手动处理 is

}

5、final异常

为了避免异常抛出时类型受到限制,所以JDK7推出了final异常,如下代码:

try{

// 可能发生异常的代码

}catch(IOException | FileNotFoundException e){

// 异常信息捕获

}catch(final Exception e){

// 异常信息捕获

throw e;  // 这里虽然抛出的是顶层接口,但是如果使用final标记之后,就是对应真正的异常类型了

}finally{

// 自动关闭资源,无需手动处理 is

}

6、钻石语法,也就是在泛型简化了泛型的初始化语法

Map<String,String> map = new HashMap<>();


7、简化变参方法调用

可变参数的使用,以及泛型自动告警,这些都稍有改动。

@SafeVarargs

public static <T> T useVarargs(T... args) {

return args.length > 0 ? args[0] : null;

}

VarargsWarning.useVarargs(new ArrayList<String>());



注意:不仅仅是需要了解新增的语法,而是要去深入的认识实现这些新特性的原因和方式!

时间: 2024-10-11 22:14:02

小菜修炼之道——Java7新特性的相关文章

java7新特性之Try-with-resources (TWR)

java7新特性之Try-with-resources (TWR) This change is easy to explain, but it has proved to have hidden subtleties, which made it much less easy to implement than originally hoped. The basic idea is to allow a resource (for example, a file or something a

java7新特性之Diamond syntax

java7新特性之Diamond syntax Java 7 also introduces a change that means less typing for you when dealing with generics. One of the problems with generics is that the definitions and setup of instances can be really verbose. Let's suppose that you have som

java7新特性之Simplified varargs method invocation

java7新特性之Simplified varargs method invocation This is one of the simplest changes of all-it moves a warning about type information for a very specific case where varargs combines with generics in a method signature. Put another way, unless you're in

java7新特性

1 package com.test; 2 3 import java.io.BufferedReader; 4 import java.io.FileReader; 5 import java.io.IOException; 6 import java.sql.Connection; 7 import java.sql.DriverManager; 8 import java.sql.PreparedStatement; 9 import java.sql.ResultSet; 10 impo

java7新特性(简述八大新特性)

1.switch中添加对String类型的支持 public String generate(String name, String gender) { String title = ""; switch (gender) { case "男": title = name + " 先生"; break; case "女": title = name + " 女士"; break; default: titl

Java之Java7新特性之try资源句式

一.原来写法: 1 static String readFirstLineFromFile(String path) throws IOException { 2 BufferedReader br = null; 3 try { 4 br = new BufferedReader(new FileReader(path)); 5 } catch (Exception ex) { 6 //do exception action 7 } finally { 8 if (br != null) {

java7 新特性 总结版

http://www.zhuke.com/user/zkuser57546968?p6=123.baidu.com=&lvhttp://www.zhuke.com/user/zkuser59918842?p6=123.baidu.com=&lvhttp://www.zhuke.com/user/zkuser56775905?p6=123.baidu.com=&lvhttp://www.zhuke.com/user/zkuser71200347?p6=123.baidu.com=&a

java7和java8新特性

以下来至网址: http://blog.csdn.net/samjustin1/article/details/52268004 Java7 新特性 1.switch中可以使用字符串了 String s = "test"; switch (s) { case "test" : System.out.println("test"); case "test1" : System.out.println("test1&qu

《Java程序员修炼之道》

原子类:java.util.concurrent.atomic 线程锁:java.util.concurrent.locks 对付死锁:boolean acquired = lock.tryLock(wait,TimeUtils.MILLISECONDS); CountDownLatch锁存器:让线程在同步前做准备工作. CopyOnWriteArrayList BlockingQueue<LsxUnit<MyClass>> 控制执行: 任务:Callable, Future, F