JDK1.5新特性:
For-Each循环得加入简化了集合的遍历。假设我们要遍历一个集合对其中的元素进行一些处理。
1.6使用Compiler API :
JDK6 的Compiler API(JSR 199)去动态编译Java源文件,Compiler API结合反射功能就可以实现动态的产生Java代码并编译执行这些代码,有点动态语言的特征。
Compiler API通过一套易用的标准的API提供了更加丰富的方式去做动态编译,而且是跨平台的。
1.7新特性:
1.switch中可以使用字串
2."<>"这个玩意儿的运用
ListtempList = new ArrayList<>(); 即泛型实例化类型自动推断。
3.自定义自动关闭类
interface AutoCloseable
只要实现该接口,在该类对象销毁时自动调用close方法,你可以在close方法关闭你想关闭的资源
4.对Java集合(Collections)的增强支持
-
List<String> list=["item"]; //向List集合中添加元素
-
String item=list[0]; //从List集合中获取元素
-
Set<String> set={"item"}; //向Set集合对象中添加元素
-
Map<String,Integer> map={"key":1}; //向Map集合中添加对象
-
int value=map["key"]; //从Map集合中获取对象
5.数值可加下划线
int one_million = 1_000_000;
6.支持二进制文字
int binary = 0b1001_1001;
7.在try catch异常扑捉中,一个catch可以写多个异常类型,用"|"隔开
try {
......
} catch(ClassNotFoundException|SQLException ex) {
ex.printStackTrace();
}
8.jdk7之前,你必须用try{}finally{}在try内使用资源,在finally中关闭资源,不管try中的代码是否正常退出或者异常退出。jdk7之后,你可以不必要写finally语句来关闭资源,只要你在try()的括号内部定义要使用的资源
-
public class FileCopyJDK7 {
-
public static void main(String[] args) {
-
try (BufferedReader in = new BufferedReader(new FileReader("in.txt"));
-
BufferedWriter out = new BufferedWriter(new FileWriter("out.txt"))) {
-
int charRead;
-
while ((charRead = in.read()) != -1) {
-
System.out.printf("%c ", (char)charRead);
-
out.write(charRead);
-
}
-
} catch (IOException ex) {
-
ex.printStackTrace();
-
}
-
}
-
}
1.8新特性:
1.接口的默认方法
-
interface Formula {
-
double calculate(int a);
-
default double sqrt(int a) {
-
return Math.sqrt(a);
-
}
-
}