定价:39.00元[美]MauriceNaftalin著张 龙 译表达式:Java多核编程MasteringLambdas:JavaProgramminginaMulticoreWorld 《精通lambda表达式:Java多核编程》介绍JavaSE8中与lambda相关的特性是如何帮助Java迎接下一代并行硬件架构的挑战的。本书讲解了如何编写lambda、如何在流与集合处理中使用lambda,并且提供了完整的代码示例。你将学习如何通过lambda表达式充分利用当今多核硬件所带来的性能改进。精通lambda表达式:Java多核编程lambda表达式权威指南主要内容:● 为何需要lambda,它将如何改变Java编程● lambda表达式语法● 流与管道的基本操作● 使用收集器与汇聚来终止管道● 创建流● 分割迭代器、fork/join框架与异常● 使用微基准测试检查流的性能● 使用默认方法演化API本书代码示例可以从OraclePressBooks.com网站下载使用lambda表达式和流的最佳实践精通lambda表达式:Java多核编程[美]MauriceNaftalin著张龙译北京MauriceNaftalinMasteringLambdas:JavaProgramminginaMulticoreWorldEISBN:978-0-07-182962-5Copyright©2015byMauriceNaftalin.AllRightsreserved.Nopartofthispublicationmaybereproducedortransmittedinanyformorbyanymeans,electronicormechanical,includingwithoutlimitationphotocopying,recording,taping,oranydatabase,informationorretrievalsystem,withoutthepriorwrittenpermissionofthepublisher.ThisauthorizedChinesetranslationeditionisjointlypublishedbyMcGraw-HillEducationandTsinghuaUniversityPressLimited.ThiseditionisauthorizedforsaleinthePeople'sRepublicofChinaonly,excludingHongKong,MacaoSARandTaiwan.Copyright©2015byMcGraw-HillEducationandTsinghuaUniversityPressLimited.版权所有。未经出版人事先书面许可,对本出版物的任何部分不得以任何方式或途径复制或传播,包括但不限于复印、录制、录音,或通过任何数据库、信息或可检索的系统。本授权中文简体字翻译版由麦格劳-希尔(亚洲)教育出版公司和清华大学出版社有限公司合作出版。此版本经授权仅限在中华人民共和国境内(不包括中国香港、澳门特别行政区和中国台湾地区)销售发行。版权©2015由麦格劳-希尔(亚洲)教育出版公司与清华大学出版社有限公司所有。北京市版权局著作权合同登记号图字:01-2015-1599本书封面贴有McGraw-HillEducation公司防伪标签,无标签者不得销售。版权所有,侵权必究。侵权举报电话:010-6278298913701121933图书在版编目(CIP)数据精通lambda表达式:Java多核编程/(美)那夫特林(Naftalin,M.)著;张龙译.—北京:清华大学出版社,2015书名原文:MasteringLambdas:JavaProgramminginaMulticoreWorldISBN978-7-302-40553-5Ⅰ.①精…Ⅱ.①那…②张…Ⅲ.JAVA语言—程序设计Ⅳ.①TP312中国版本图书馆CIP数据核字(2015)第137442号责任编辑:王军于平装帧设计:孔祥峰责任校对:曹阳责任印制:出版发行:清华大学出版社网址:,地址:北京清华大学学研大厦A座邮编:100084社总机:010-62770175邮购:010-62786544投稿与读者服务:010-62776969,c-service@tup.tsinghua.edu.cn质量反馈:010-62772015,zhiliang@tup.tsinghua.edu.cn装订者:经销:全国新华书店开本:148mm×210mm印张:7.5字数:181千字版次:2015年8月第1版印次:2015年8月第1次印刷印数:1~2000定价:39.00元———————————————————————————————————————————产品编号:译者序2014年3月,万众期待的Java8终于发布了。Java8可谓Java语言历史上变化最大的一个版本,这体现在语言、库与虚拟机的增强上。Java语言现在已经渗透到软件行业的各个领域,从大数据领域的Hadoop到企业级开发的Spring框架,再到移动领域的Android,无处不显现Java的身影。作为一门有着近20年历史的语言,Java影响了整整一代程序员。随着时代的变迁,动态语言、函数式编程越来越受到广大开发人员的关注,从这个角度来看,Java似乎有些臃肿和笨重。但强大的JVM赋予了Java新的生命力,有越来越多的语言能够运行在Java虚拟机上并与Java交互,如Groovy、Scala、Clojure等,这些语言反过来又促进了Java的精通lambda表达式:Java多核编程II持续发展。Java8引入了诸多令人心潮澎湃的新特性,如lambda表达式、StreamAPI、并发库的增强、默认方法、函数式接口、方法与构造方法引用、新的日期与时间API、注解增强等,这些新特性促进了Java的持续发展。在Java8的诸多特性当中,lambda表达式是最为人所关注的。借助于lambda表达式,可以编写出性能更好、可读性更强、可维护性更好的代码,本书就是一本专门介绍Javalambda表达式的著作。本书共分为7章,按照由浅入深、循序渐进的方式对Javalambda表达式进行了深入的剖析与介绍。首先从Java8新特性开始,对lambda表达式作一简要说明;接下来介绍lambda表达式的基础,让读者对lambda表达式有个感性的认识;然后对流与管道进行深入的讲解,同时剖析起始流、终止流,并对流的性能做了详尽的阐述;最后,介绍默认方法的含义及其对于API演化的重要意义。本书不仅介绍Javalambda表达式的基础知识,还深入讲解了构成lambda表达式的重要组件,并对其适用场景进行了广泛的说明。虽然现在很多公司开发所用的JDK尚未升级到最新的JDK8,但学习并实践Java8的新特性是每一个有追求的Java开发者都应该做的事情,因为这是未来Java的发展方向。熟练掌握并灵活运用lambda表达式可以帮助你编写出更加优雅的代码,只需要寥寥数行代码即可解决之前十几行、甚至几十行代码才能完成的工作。但不得不提的是,要想熟练掌握lambda表达式并不是一件简单轻松的工作,因为其背后有很多重要理论需要学习者充分理解,而本书则可以帮助你更快、更好地掌握lambda表达式,因为书中所介绍的内容不仅会让你知其然,更会让你知其所以然。学习完本书后,我相信每一位读者都能够流畅地使用lambda表达式开始全译者序III新Java代码的编写。翻译技术图书是艰苦的劳动,不仅有体力的付出,更有大量脑力的付出。在此,请容许我感谢清华大学出版社的编辑,非常感谢他们在图书翻译过程中对我的包容与鼓励;其次,我要感谢我的父母,没有你们的精心抚育与教诲就不会有今天的我;再次,我将深深的感激之情送给我的妻子张明辉,谢谢你在图书翻译过程中给予我持续不断的支持与理解,本书的顺利出版有你一半的功劳;最后,将本书送给我亲爱的孩子张梓轩小朋友,愿你未来能够开开心心,茁壮成长。本书的所有章节由张龙翻译,参加本次翻译工作的还有张彤辉、焦伟、张淑贤、李志芹、张兴国、马元贺、王辉、王凯、单会明、周锐、王冠、高鹏、张淑华,在此一并表示感谢。尽管在翻译过程中译者已经尽了最大的努力以确保译文的准确和流畅,但囿于水平有限,读者在阅读过程中如果发现错误或不准确之处请及时与我联系,以便再版时修正。我的邮箱是zhanglong217@163.com,博客是,新浪微博是@风中叶的思考,欢迎关注。最后,祝各位读者阅读愉快,早日掌握lambda表达式这一利器,编写出更加优雅的Java代码。作者简介MauriceNaftalin在IT领域拥有30多年的经验,担任过开发者、设计师、架构师、经理、教师以及作者等角色。Naftalin是经过认证的Java程序员,使用过Java的各个发布版本。他在Java与业务上的经历让他对JavaSE8中引入lambda表达式所带来的根本性变化有着独到的见解。Naftalin是各种大会上的常客,包括一年一度的JavaOne。他与Oracle开发团队协作运营着一个颇受欢迎的网站——,该网站主要关注于Java8中的新语言特性。技术编辑简介StuartMarks就职于OracleJava平台组的JDK核心库团队。他目前从事的是lambda、流与集合相关的工作,同时改进测试质量与性能。他之前在SunMicrosystems从事JavaFX与JavaME相关的工作。他在窗口系统、交互式图形以及移动和嵌入式系统领域有着20多年的软件平台产品开发经验。Stuart拥有斯坦福大学计算机科学硕士学位以及电子工程学士学位。他目前与妻子和女儿居住在加利福尼亚。BrianGoetz是Java编程的权威之一。他是畅销书JavaConcurrencyinPractice的作者,此外还撰写了75篇之多的关于Java开发的文章。他是JSR-335(Java语言lambda表达式)规范的精通lambda表达式:Java多核编程VIII制定领头人,并且在很多JCP专家组中担任职位。Brian是Oracle的Java语言架构师。致谢如果没有来自于Oracle语言团队的伙伴们(BrianGoetz、PaulSandoz、AlekseyShipilev与DanSmith)持续不断的帮助、鼓励与反馈,本书是不可能面世的。StuartMarks给出的建议非常有价值,对打磨本书起到了重要作用。我要感谢GrahamAllan、MaurizioCimadore、ChrisCzarnecki、JohnKostaras、KirkPepperdine、JeremyPrime与PhilipWadler,他们的审校避免了很多错误的发生,同时经常给我指出新的方向。当然,任何遗留的错误都是我的责任。非常感激本书的编辑BrandiShailer,感谢她在本书漫长的写作过程中给予我的耐心和乐观态度。序言JavaSE8是有史以来对Java语言和库改变最大的一次。既然你手头阅读的这本书的书名是《精通lambda表达式:Java多核编程》,那么你可能已经知道了最大的新特性就是增加了lambda表达式。根据视角的不同,这种演变可能起始于2009年(那时启动了Projectlambda),也可能起始于2006年(有几个提案希望Java增加闭包),还有可能起始于1997年(引入了内部类),甚至起始于1941年(AlonzoChurch发布了关于计算理论的基础研究工作成果,lambda表达式这个名字就是从中得来的)。无论多久,这都是关于时间的问题!虽然一开始lambda表达式似乎只是“另一个语言特性”而已,但实际上,它们会改变你