java1.5以后新增的特性_JDK 1.5 - 1.8 各版本的新特性总结

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 list=["item"]; //向List集合中添加元素

String item=list[0]; //从List集合中获取元素

Set set={"item"}; //向Set集合对象中添加元素

Map 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);

}

}

2.Lambda 表达式

3.函数式接口

.....

https://mp.weixin.qq.com/s/-mG6XsXLCXTnL-efV3mX4Q

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值