JAVA笔记 之 JDK新特性

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

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

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};数据库

一、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;
}数组


二、二进制、八进制、十六进制表达
1.7以前:二进制没法直接表达
1.7以后:二进制能够直接表达、输出安全

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


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

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


五、一个catch能够捕获多个异常
try{工具

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


六、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子句若是要管理多个资源,可使用“;”号分割


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

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

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

八、可变参数警告@SafeVarargs

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

相关文章
相关标签/搜索