Java实战(第2版)

[英] 拉乌尔-加布里埃尔 • 乌尔玛

出版时间

2019-11-01

ISBN

9787115521484

评分

★★★★★

标签

编程

书籍介绍
这不是一本从头教你写第一行Java的入门书,而是给已经能熟练编码、却对现代Java新特性一知半解的开发者准备的进阶指南。书中最大的亮点在于“追本溯源地讲清楚为什么”:它不满足于罗列Lambda、流、Optional等语法,而是剖析这些特性诞生的动机——比如同步锁在多核时代为何昂贵、计算密集型与涉及I/O的并行场景该如何选择实现方式。读者反馈显示,十年经验的老Javaer读完也能“知其所以然”,这正是本书的价值所在。它更适合作为案头手册按需查阅,而非从头到尾通读;若已掌握第一版内容,可考虑借阅而非购买。
作者简介
作者简介: 拉乌尔–加布里埃尔•乌尔玛(Raoul-Gabriel Urma) 剑桥大学计算机科学博士,软件工程师,培训师,现任Cambridge Spark公司CEO。在谷歌、eBay、甲骨文和高盛等大公司工作过,并参与过多个创业项目。活跃在技术社区,经常撰写技术文章,多次受邀在国际会议上做技术讲座。 马里奥•富斯科(Mario Fusco) Red Hat高级软件工程师,负责JBoss规则引擎Drools的核心开发。拥有丰富的Java开发经验,曾领导媒体公司、金融部门等多个行业的企业级项目开发。对函数式编程和领域特定语言等有浓厚兴趣,并创建了开放源码库lambdaj。 艾伦•米克罗夫特(Alan Mycroft) 剑桥大学计算机实验室计算学教授,剑桥大学罗宾逊学院研究员,欧洲编程语言和系统协会联合创始人,树莓派基金会联合创始人和理事。发表过大约100篇研究论文,指导过20多篇博士论文。他的研究主要关注编程语言及其语义、优化和实施。他与业界联系紧密,曾于学术休假期间在AT&T实验室和英特尔工作,还创立了Codemist公司,该公司设计了最初的ARM C编译器Norcroft。 译者简介: 陆明刚 毕业于四川大学,目前在Dell EMC中国卓越研发集团任高级主管工程师,曾任趋势科技中国软件研发中心技术经理,在信息科学和工程领域有十余年的实践和研究经验,拥有多项中国及美国专利。关注JVM性能调优和大数据及其实践,喜欢挖掘技术背后的内幕并乐此不疲。 劳佳 上海交通大学硕士,现任SAP(美国)高级软件支持顾问。业余爱好语言、数学、设计,英、法双语译者,近年翻译出版了《咨询的奥秘》《卓越程序员密码》《计算进化史:改变数学的命运》等书。
AI导读
核心看点
  • 深入解析Lambda、Stream及函数式编程
  • 详解Java 8至11版本的新特性与演变
  • 涵盖反应式编程、并发及模块化系统
读者共识
  • 代码更优雅,显著提升编程效率与可读性
  • 知其然更知其所以然,剖析特性设计初衷
  • 干货满满,但部分读者认为新增内容有限
精彩摘录
  • "In fact, using synchronized across multiple processing cores is far more expensive than we often expect, because synchronization forces code to execute sequentially, which works against the goal of parallelism."
  • "同步API与异步API 同步API其实只是对传统方法调用的另一种称呼:你调用了某个方法,调用方在被调用方 运行的过程中会等待,被调用方运行结束返回,调用方取得被调用方的返回值并继续运行。即 使调用方和被调用方在不同的线程中运行,调用方还是需要等待被调用方结束运行,这就是阻 塞式调用这个名词的由来。 与此相反, 异步API会直接返回,或者至少在被调用方计算完成之前,将它剩余的计算任 务交给另一个线程去做,该线程和调用方是异步的——这就是非阻塞式调用的由来。执行剩余 计算任务的线程会将它的计算结果返回给调用方。返回的方式要么是通过回调函数,要么是由 调用方再次执行一个“等待,直到计算完成”的方法调"
  • "并行——使用流还是CompletableFutures? 目前为止,你已经知道对集合进行并行计算有两种方式:要么将其转化为并行流,利用map 这样的操作开展工作,要么枚举出集合中的每一个元素,创建新的线程,在CompletableFuture内对其进行操作。后者提供了更多的灵活性,你可以调整线程池的大小,而这能帮助 你确保整体的计算不会因为线程都在等待I/O而发生阻塞。 我们对使用这些API的建议如下。 ❑如果你进行的是计算密集型的操作,并且没有I/O,那么推荐使用Stream接口,因为实 现简单,同时效率也可能是最高的(如果所有的线程都是计算密集型的,那就没有必要 创建比处理器核数更多的线程"
  • "第二,要求它是 Predicate<Apple>(目标类型)对象的第二个正式参数"
  • "名叫开放服务网关协议(open service gateway initiative, OGSi)"
目录
第一部分 基础知识
第1章 Java 8、9、10以及11的变化  2
1.1 为什么要关心Java的变化  2
1.2 Java怎么还在变  4
1.2.1 Java在编程语言生态系统中的位置  5

显示全部
用户评论
书是好书。遇到令人抓狂的翻译只好去网上下载英文原版对照时除外
如果未读过第一版,那么这边书力荐阅读,如果读过第一版,这本书推荐指数3星,推荐去图书馆阅读。
第二版比第一版的内容丰富了很多,也深入了很多,特别是后面对Stream,Completable Future和响应式编程RxJava的讲解解答了困惑我很久的问题。
还是那个味,推荐大家看一下,里面的lambda和流讲的很经典。在我心中可以说是与深入理解Java虚拟机并列的神书了。但是翻译真的有点拉胯,读起来有种机翻的味道...
主要还是JAVA8的内容,加了一些java9的一些case。对于响应式编程有个大致了解。
系统看下,免得每次现查。
快速过了一遍,这种书还是得当参考手册用,实际编码过程中碰到相关知识点了再来细看
翻译辣眼睛,扣三星
很赞超级赞!一直在用stream和lambda语法,但始终感觉有点不顺手,读完这本书后感觉顺溜很多啦!毕竟百度上全是cv的东西,没一点有用的。学新技术还是看书老的全面系统。
下载
收藏