java8里面lambda的最佳实践-java开发java经验技巧

java8里面lambda的最佳实践-java开发java经验技巧

ID:30777447

大小:89.36 KB

页数:7页

时间:2019-01-03

java8里面lambda的最佳实践-java开发java经验技巧_第1页
java8里面lambda的最佳实践-java开发java经验技巧_第2页
java8里面lambda的最佳实践-java开发java经验技巧_第3页
java8里面lambda的最佳实践-java开发java经验技巧_第4页
java8里面lambda的最佳实践-java开发java经验技巧_第5页
资源描述:

《java8里面lambda的最佳实践-java开发java经验技巧》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Java8里

2、flilambda的鼓佳实践-编程开发技术Java8里面lambda的最佳实践原文出处:oschina-成熟的毛毛虫Java8已经推出一段时间了,越來越多开发人员选择升级JDK,这条热门动弹里面看出,JDK7最多,其次是6和8,这是好事!在8里面Lambda是最火的主题,不仅仅是因为语法的改变,更重要的是带来了函数式编程的思想,我觉得优秀的程序员,有必要学习一下函数式编程的思想以开阔思路。所以这篇文章聊聊Lambda的应用场景,性能,也会提及下不好的一面。Java为何需要Lambd

3、a1996年1刀,Java1.0发布了,此后计算机编程领域发生了翻天覆地的变化。商业发展需要更复杂的应用,大多数程序都跑在更强大的装备多核CPU的机器上。带冇高效运行期编译器的J"腹虚拟机(JVM)的出现,使得程序员将精力更多放在编写干净、易于维护的代码上,而不是思考如何将每一个CPU时钟、每一字节内存物尽其用。多核CPU的出现成了“房间里的大象”,无法忽视却没人愿意止视。算法中引入锁不但容易出错,而且消耗时间。人们开发Tjava.util,concurrent包和很多第三方类库,试图将并发抽象

4、化,用以帮助程序员写出在多核CPU上运行良好的程序。不幸的是,到口前为止,我们走得述不够远。那些类库的开发者使用Java时,发现抽象的级别述不够。处理大数据就是个很好的例子,面对大数据,Java还欠缺高效的并行操作。Java8允许开发者编写复杂的集合处理算法,只需要简单修改一个方法,就能让代码在多核CPU上高效运行。为了编写并行处理这些大数据的类库,需要在语言层面上修改现有的Java:增加lambda表达式。当然,这样做是冇代价的,程序员必须学习如何编写和阅读包含lambda表达式的代码,但是,

5、这不是一桩赔本的买卖。与手写一大段复杂的、线程安全的代码相比,学习一点新语法和一些新习惯容易很多。开发企业级应用时,好的类库和框架极大地降低了开发时间和成本,也扫清了开发易用且高效的类库的障碍。如果你述未接触过Lambda的语法,可以看这里。Lambda的应用场景你有必要学习卜•函数式编程的概念,比如函数式编程初探,但下面我将重点放在函数式编程的实用性上,包括那些可以被大多数程序员理解和使用的技术,我们关心的如何写出好代码,而不是符合函数编程风格的代码。1•使用0->{}替代匿名类现在Runna

6、ble线程,Swing,JavaFX的事件监听器代码等,在java8中你可以使用Lambda表达式替代丑陋的匿名类。//BeforeJava8:newThread(newRunnable(){©Overridepublicvoidnan(){System,out.println(z,BeforeJava8“);}})•start();//Java8way:newThread(()->System,out.println(z,lnJava8!,z));//BeforeJava8:JButtonsh

7、ow二newJButton(〃Show〃);show.addActionListcncr(ncwActionListcncr(){©OverridepublicvoidactionPerformed(ActionEvente){System,out.printin(/zwithoutlambdaexpressionisboring");}});//Java8way:show.addActionListener((e)-〉{System,out.println(〃Action!!Lambdaexp

8、ressionsRocks");});2•使用内循环替代外循环外循环:描述怎么干,代码里嵌套2个以上的for循环的都比较难读懂;只能顺序处理List中的元素;内循环:描述要干什么,而不是怎么干;不一定需要顺序处理List中的元素//PriorJava8:Listfeatures=Arrays.asList(zzLambdas,/,"DefaultMethod","StreamAPI","DateandTimeAPI");for(Stringfeature:features){System.out

9、.println(feature);}//InJava8:Listfeatures二Arrays.asList("Lambdas","DefaultMethod","StreamAPI",“DateandTimeAPT");features.forEach(n-〉System,out•println(n));//EvenbetteruseMethodreferencefeatureofJava8//methodreferenceisdenotedby::(doublecolon)operator

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。