Android学习笔记--JDK1.7的新特性

1)变量中数字使用下划线

如果你在Java源码中要处理大数字,你可以在数字中加入下划线来提高可读性。

1.下划线只能在数字之间,在数字的开始或结束一定不能使用下划线。

2.在浮点型小数点前和小数点后不可使用下划线。

3.F或者L下标的前面不可使用下划线。

无效的下划线写法

float pi1 = 3_.1415F; // 无效的; 不能在小数点之前有下划线

float pi2 = 3._1415F; //无效的; 不能在小数点之后有下划线

long socialSecurityNumber1 = 999_99_9999_L; //无效的,不能在L下标之前加下划线

int a3 = 52_; // 无效的,不能以下划线结尾

 

2)switch中支持使用String

private static void switchString(String str){  

    switch(str){  

        case "one":  

        System.err.println("1");  

        break;  

    case "two":  

        System.out.println("2");  

        break;  

    default :  

        System.out.println("err");  

    }  

}

3)泛型实例化类型自动推断

以后你创建一个泛型实例,不需要再详细说明类型,只需用<>,编译器会自动帮你匹配

//例如   

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

//可以简化为  
Map<Integer,String> map = new HashMap<>();

4)一个catch可以捕获多个异常

1.捕获多种异常

过去我们在捕获多个异常类型时,往往会使用以下类型的代码:

} catch (FirstException ex) {     

  logger.error(ex);      

throw ex;  

} catch (SecondException ex) {    

logger.error(ex);    

   throw ex;  

}  

现在借助于新增的功能,开发者可以使用以下代码:

} catch (FirstException | SecondException ex) {      

logger.error(ex);     

  throw ex;  

}

 

try{   

File file = null;

file.exists();

new FileInputStream("");  

}catch(IOException | NullPointerException e){   

if(e instanceof IOException){    

System.out.println("IOException ... " + e);   

}else if(e instanceof NullPointerException){    

System.out.println("NullPointerException ... " + e);   

}else{   

e.printStackTrace();   

}

}

5)try-with-resources 声明

try-with-resources 是一个定义了一个或多个资源的try 声明,这个资源是指程序处理完它之后需要关闭它的对象。try-with-resources 确保每一个资源在处理完成后都会被关闭。 可以使用try-with-resources的资源有: 任何实现了java.lang.AutoCloseable 接口和java.io.Closeable 接口的对象。

public static void main(String args[]){

try{    

System.out.println(readFile("D:\1.txt"));     

}catch(Exception e){    

System.out.println(e);   

}

}

public static String readFile(String path) throws Exception{

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

          return br.readLine();

         }

}

注意:

JDK1.7之前我们必须在finally块中手动关闭资源,否则会导致资源的泄露。

JDK1.7之后就可以使用try-with-resources,不需要我们在finally块中手动关闭资源。

只要资源类实现了AutoCloseable或Closeable接口,程序在执行完try块后会自动close所使用的资源。JVM关闭资源顺序是逆序的。

原文地址:https://www.cnblogs.com/langfei8818/p/6151357.html