• 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关闭资源顺序是逆序的。

  • 相关阅读:
    Oracle Redo 并行机制
    ORA16032 Can not Start Instance via srvctl but via sqlplus is fine [ID 1062071.1]
    Linux 各文件夹的作用
    Private strand flush not complete 说明
    Executing root.sh errors with "Failed To Upgrade Oracle Cluster Registry Configuration" [ID 466673.1]
    openfiler 搭建虚拟存储 并 配置服务端
    Oracle RAC CRS0184 Cannot communicate with the CRS daemon
    Redhat 5.4 RAC multipath 配置raw,运行root.sh 时报错Failed to upgrade Oracle Cluster Registry configuration 解决方法
    Openfiler + Redhat 5.4 Oracle 11gR2 RAC 安装文档
    How to Troubleshoot Grid Infrastructure Startup Issues [ID 1050908.1]
  • 原文地址:https://www.cnblogs.com/langfei8818/p/6151357.html
Copyright © 2020-2023  润新知