Java8已经发布好几星期了,天天看新闻都是这的那的,虽然不会这么快用到实际项目上,但还是先看看有哪些东西应用上去之后会更给力的?
发布页面上极大力度强调了 J2me8 和 JavaFx8 方面的改进,但感觉市场已失,就不多关注了,简单看一下其它特性
Java8特性第一感
- Lambda表达式看上去很炫,使用起来应该可以结省很多class文件,如果项目里面有很多new子接口的如new Thread,new Linster等的,用Lambda的写法应该可以好看很多,且不只是好看,Lambda语法有闭包特性,貌似还可以根据上下文联想,不用声明类型。
- java.time(JSR310)包,由于最老使用的Date很多方法老提示过期不建议使用,Calendar用起来感觉也挺繁琐,这个包里面的一些API应该是个不错的替代品,毕竟是升级版嘛,如果你已经用了java8,建议使用这些API做为你相关时间操作的基类。
- functionInterface、Method and Constructor References,嗯,好吧,我是比较低端的程序员不过看例子有个forEach的方法可以循环,就像jQurey里面的forEach一样,估计可以改进很多需要循环执行的方法。虽然还没用过但应该可以确定如果用的恰当,代码应该更好看,更能体现面向对象的思想。
- Annotations and Access to Parameter Names,又是一个高端的玩意,其实感觉平时写代码时用到Annotation的场景都很少了,还多重注解,不过这个功能给那些写灵活度比较高的低层框架什么的有用到,也是增加可读性的。
- 其它杂七八,还没太了解,不多评价~~
总的来说,是一个很大的版本,改动量大,升级到java8后可以使用一些新的语法及Lambda表达式能减少你的代码行数,以及增加代码的可读性。性能也会有一点提升。
小试Java8
下载安装就不说了,安装后发现常用的eclipse里面打一些特性给我报语法错误不能编译(需要先Build Path将jre system library指到8的目录),在命令行里面java命令就可以,所以需要去下载最新的eclipse(在此更新下:4月11号发布的版本已经全面支持java8下载地址:http://eclipse.org/downloads/)
安装后,启动eclipse确认运行在jre8的环境后,就可以写代码了。
说明一下:以下代码都是转的官网DEMO,本人只是运行测试过一下,贴到这:no_mouth: ;
看JAVA8的新特性PDF版本传送门 http://www.oraclejavamagazine-digital.com/javamagazine_open/20140304#pg1
代码一:Lambda表达式(说明:在最新版的eclipse里选中一个匿名类,按ctrl+l可以将匿名类转换为lambda表达式哟*_*)
当然如果经常浏览jQuery之内的源码的话可以发现很多相似点
Collection<Person>poples;
//前代码
public void fn(){
Collections.removeAll(poples,
new Predicate<Person>(){
public boolean test(Person p){
return p.getAge()<18;
}
}
);
}
//使用Lambda后
public void fn(){
Collections.removeAll(poples,p->p.getAge()<18);
}
代码二:默认接口方法,这样看起来接口搞的像父类一样了,不过多一个功能就多N种可能性,看具体场景了。
public interface TestInterFace {
default int count(){
return 1;
}
}
不多写了,我也是新手,有兴趣的自己去研究吧,当然很多新特性不是为应用级别的开发者准备的,大量的还是内核变化。