zoukankan      html  css  js  c++  java
  • JAVA笔记 之 JDK新特性

    JDK1.5新特性
    1、泛型(Generics)
    为集合(collections)提供编译时类型安全,无需每刻从Collections取得一个对象就进行强制转换(cast)
    2、增强的for循环(foreach)
    减少迭代器(iterator)的潜在错误(error-proneness)
    3、自动装箱、拆箱(Autoboxing/unboxing)
    无需在基本类型(primitive types)(例如double)和包装类型(wrapper types)(例如Double)之间人工地进行转换
    4、枚举(Typesafeenums)
    提供类型安全枚举模式的各项好处
    5、静态导入(Static import)
    无需在使用其他类的静态成员变量前缀其类名.这将使得代码更为简洁
    6、可变参数
    7、元数据(注解Annotation,e.g.: @Override)

    JDK1.6新特性
    1、Web服务元数据(@WebService,@WebMethod,@WebResult)
    2、脚本语言支持(JSR223, javax.script.ScriptEngine)
    3、JTable的排序和过滤(在JTable中设置TableRowSorter,根据其setRowFilter方法来过滤)
    4、更简单、更强大的JAX-WS(Java Architecture for XML Web Services,JSR224)
    5、轻量级Http Server
    6、嵌入式数据库Derby

    jdk1.7新特性
    1 对集合类的语言支持;
    2 自动资源管理;
    3 改进的通用实例创建类型推断;
    4 数字字面量下划线支持;
    5 switch中使用string;
    6 二进制字面量;
    7 简化可变参数方法调用;
    8 新增一些取环境信息的工具方法;
    9 Boolean类型反转,空指针安全,参与位运算;
    10 两个char间的equals;
    11 安全的加减乘除;
    12 map集合支持并发请求 ,且可以写成 Map map = {name:"xxx",age:18};

    1、switch参数可以是String
    1.7之前:byte/char/short/enum/int
    1.7之后:byte/char/short/enum/int/String
    String sex="男";
    switch(sex){
    case "男":System.out.println("先生");break;
    case "女":System.out.println("女士");break;
    }


    2、二进制、八进制、十六进制表达
    1.7之前:二进制无法直接表达
    1.7之后:二进制可以直接表达、输出

    System.out.println("二进制:"+0b11);
    System.out.println("八进制:"+011);
    System.out.println("十六进制:"+0x11);


    3、数字表示(字面量中使用下划线,可以在整数和浮点数数字间用任意多的下划线来分割)
    System.out.println(500_00);//_相当于数学中科学计数的逗号:500,00
    500_00.23_22表示500,00.23,22
    1_2_3_4_5表示12345

    4、泛型的运用(泛型实例化自动推断)
    1.7之前:java.util.List<String> list = new java.util.ArrayList<String>();
    1.7之后:java.util.List<String> list = new java.util.ArrayList<>();


    5、一个catch可以捕获多个异常
    try{

    }catch(IOException | NullPointException | ArrayIndexOutOfBoundsException e){
    e.printStackTrace();
    }


    6、try-with-resources
    try(BufferedReader reader = new BufferedReader(new FileReader("path"))){
    //reader不需要手动关闭,会在try完成时自动释放
    //try子句的内容必须实现java.lang.AutoCloseable接口,否则编译异常
    }
    通常,实现AutoCloseable接口的类有:java.sql.connection.*;java.io.BufferedReader;java.io.FileReader;
    也可以自定义类,实现AutoCloseable接口,实现其中的close()方法;
    try子句如果要管理多个资源,可以使用“;”号分割


    7、集合使用方式的增强支持
    List<String> list = ["item"];//
    String item = list[0];//像数组一样使用List

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

    Map<String,Integer> map = {"key":1};
    int value = map["key"];//像JSON一样

    8、可变参数警告@SafeVarargs

    @SafeVarargs
    public staitc <T> T useVarargs(T... args){}
    如果参数是可变参数,每次调用时会产生警告信息,如果此时你能保证参数是安全的,可使用@SafeVarargs去除警告

  • 相关阅读:
    hdoj 6023 Automatic Judge
    hdoj 1170 Balloon Comes!
    初识vim操作和配置
    POJ 1611 The Suspects (并查集)
    HDU 1232 畅通工程 (并查集)
    计蒜客--两数之和
    计蒜客--爬楼梯 (动态规划)
    计蒜客--单独的数字 (位运算)
    计蒜客--最后一个单词的长度
    计蒜客-- 奇怪的国家 (位运算)
  • 原文地址:https://www.cnblogs.com/icerainsoft/p/3988571.html
Copyright © 2011-2022 走看看