首页 > 编程语言 >时隔 15 年,巨著《Java 编程思想》新版终于来啦

时隔 15 年,巨著《Java 编程思想》新版终于来啦

时间:2023-06-26 12:03:23浏览次数:43  
标签:本书 Java 语言 Bruce 编程 开发者 15


老版《Java编程思想》(原书名《Thinking in Java》)得益作者开放深度研讨的创作方式,受到了全世界读者的追捧,被译为了十几种语言。但遗憾的是,在经历了 4 个版本的更新后,其最后一版发布于 2007 年,之后再无更新。

直至 Java 8 发布,随着大量新特性的发布,原书作者 Bruce Eckel 觉得很有必要重塑这本经典的《Java编程思想》,于是重新动笔完成了最新版本《On Java》, 一经发布就得到了读者的高度关注。

时隔 15 年,巨著《Java 编程思想》新版终于来啦_开发者

时隔 15 年,巨著《Java 编程思想》新版终于来啦_jvm_02

新版《On Java》距离第一版《Java编程思想》出版已经过去快二十四年了,看看它带来了哪些不一样?

用 Bruce 的话来讲,老版《Java编程思想》 是以纯面向对象思想教授编程,新版《On Java》 更像是对 Java 语言自身的重塑,借由函数式编程的视角来讲解。

基于 Java 8、11、17
相比老版《Java 编程思想》,新版《On Java》最大的不同是什么?

简单来讲,最大的不同应该是在函数式编程上。Java 不属于函数式编程语言,但 Java 8 新增了很多这方面的支持。当然还有其他新增特性,这里只是以函数式编程为例,Java 8 加入了 lambdas 和 streams 等函数式编程特性。这改变了代码的编写方式,增加了可写的代码种类。而在介绍了这一变化之后,在 新版《On Java》 的后续部分用到这个特性。

关于本书版本的问题,图灵编辑和几位译者、作者进行了深入的探讨,并最终决定根据 Java 11、17 等版本的新特性做了关键更新。

本书目录一览
职业生涯中,我们会遇到各种各样的技术书。每个阶段,都会有不同的选择,很难有一本影响你整个职业生涯的书。而《On Java》应该就算一本,它内容深入浅出,作者语言幽默风趣,是一本可作为新手入门快速概览、中级开发者查漏补缺、高级开发者扎实基本功的面向对象经典教材。

时隔 15 年,巨著《Java 编程思想》新版终于来啦_Java_03

流畅阅读,精准还原原作神韵
引进外版技术书经常被诟病的一点就是翻译质量,相信这也是很多读者最关心点,这同样也是我们最为重视的问题。

4 位译者通过公开竞稿,从 200 多篇试译稿件中脱颖而出,均具备 15 年以上 Java 从业经验,有长期阅读英文著作的习惯,中文功底扎实,语言表达流畅。为了进一步保证翻译质量,我们邀请了来自行业内的 20 位一线 Java 开发者参与本书的审校工作。并提前半年向部分读者开放出版,结合第一批读者的阅读反馈进一步进行修订。

时隔 15 年,巨著《Java 编程思想》新版终于来啦_开发者_04

借用图灵译者王明发老师的话来说,“没有趋近完美的译文,如果没有期限,可以改到天荒地老。” 诚然,译文质量的好坏见仁见智。如果之后您在阅读中遇到译错之处,也请大家在图灵社区多多提交勘误。

更有一线技术大咖专业解读
为了降低新手读者降低阅读难度,我们邀请到了从业 Java 开发十年以上,拥有一线 Java 开发经验的专家老师(DDD 专家张逸、服务端专家梁桂钊、软件系统架构专家王前明、译者陈德伟)为本书重点章节(高度贴合实际业务且易犯错的内容)录制精讲视频,帮你有效总结 Java 开发精要。

时隔 15 年,巨著《Java 编程思想》新版终于来啦_servlet_05

(上图为On Java导读指南节选内容)

业内专家高度赞誉
On Java 8 的中译版措辞精准,如实还原原作神韵。Bruce Eckel 深入浅出地讲解了 Java 语言的设计原理,值得所有 Java 开发者一读,尤其推荐给刚入行不久的 Java 开发者,因为本书能够清晰地解答他们在业务开发过程中遇到的诸多疑问。

——周经森(Kingsum Chow),阿里CTO线研究员,JCP执行委员会委员

时至今日,Java 这门企业级应用语言已走过 26 个年头,2014 年发布的 Java 8 无疑是 Java 技术演进历史上的里程碑事件。《On Java 中文版》是 Bruce Eckel 时隔 15 年,继 Thinking in Java 之后的又一力作,基于 Java 8,同时增加了Java 11 、17的相关内容,结合大量的源码实例,讲解了各种设计原理与实现权衡,使读者知其然而后知其所以然,很适合各个层次的 Java 开发者阅读。

——李三红,Java Champion,阿里云程序语言与编译器技术总监

市面上讲 Java 编程的书有很多,《On Java 中文版》是其中较为独特的一本“入门”书。初读可能会被它的篇幅和稍显晦涩的内容中途劝退,但如果有勇气重读,一定会从中受益。本书全面系统地介绍了 Java 核心知识,更重要的是,从编程语言设计的独特视角,以产业实践的得失为鉴,让读者不仅掌握体系化的知识点,而且能够切身体会软件设计的哲学与方法。透过现象看本质的能力一定程度上决定了职场高度,相信本书同样可成为 Java 开发者职场进阶的有效助力,值得不同阶段的开发者反复翻阅。

—— 杨晓峰,Tencent JDK负责人

相信很多 Java 开发者都是通过阅读 Bruce Eckel 的经典书 Thinking in Java,学会并爱上 Java 语言的。《On Java 中文版》这本书全面讲解了Java语言的精要所在,很高兴看到 Bruce 向书中补充了从 Java 9 到 Java 17 的新语言特性,完整呈现了 Java 语言的相关重点内容。这本书既涉及函数化编程、模块化技术、变量类型推断,也涉及 record记录、sealed 密封类和接口等新内容。边阅读、边调试代码、边思考设计原理和实现方式,Java 这杯咖啡让人陶醉。

——张建锋,永源中间件总经理

十年前,当我还是实习生的时候有幸拜读了本书作者写的 Thinking in Java。由于书很厚,我和一位同事还将书撕成三份,一份放在公司看,一份放在家里看,还有一份随身带着看,反复详读不下三遍。万丈高楼平地起,我一直认为夯实基础是刚入行几年的开发者最重要的事情!十年之后,Java 经历了 JDK6、7、8 和 9 等多个版本的演进,本书与时俱进地增加了函数式编程、流和反射等 JDK 新特性。

——方腾飞,蚂蚁集团高级技术专家,《Java并发编程的艺术》作者

新版《On Java中文版》 由于内容较多,最终被分成了基础卷和进阶卷两本,每本都是厚厚的一本硬核殿堂级书籍。

Java 入门和进阶,《On Java中文版》 一定是首选,它内容深入浅出,作者语言幽默风趣,是一本可作为新手入门快速概览、中级开发者查漏补缺、高级开发者扎实基本功的面向对象经典教材。


标签:本书,Java,语言,Bruce,编程,开发者,15
From: https://blog.51cto.com/u_15767091/6552927

相关文章

  • Java学习笔记(十七)
    1、手写一个懒汉式的单例模式&解决其线程安全问题,并且说明为什么这样子去解决classMythreadextendsThread{      privatestaticMythreadmythread;      privateMythread(){   }   publicstaticMythreadgetInstance()throwsInterrupte......
  • java 8新特性 list转map
    List<Object> 转Map<String,List<String>>Map<String,List<String>>skillAndList=list.stream().collect(Collectors.groupingBy(Employee::getSkillId,Collectors.mapping(Employee::getStudent,Collectors.toList())));List<Obje......
  • java陷阱之数据库主从
    现象客户遇到工单缺少描述,查询日志写入描述报错,但那是工单又正常生产  原因先写入工单再查询工单实时性要求比较高的不能走从库,还有就是service层方法命名不规范,不点进去看根本不知道走从库,如果要走从库应该带上Slave后缀,查询缓存也一样带上cachefindProviderIdB......
  • java实际开发中接口文档是自己写还是架构师写?
    软件工程的两种方法下,由后端决定接口都是不对的。第一种软件工程的方法:瀑布模型,自顶而下,逐步细化。接口会变,但是接口要提前设计。接口不是后端开发完成之后才“自然”产生的,那不是自然,而是无序。前后端分离的开发,应该是面向“API”的开发。API的设计并不能由前端或后端一方决定......
  • JavaScript program to check if a given year is leap year Javascript判断是否是闰
    Ayearisleapyeariffollowingconditionsaresatisfied:Yearismultipleof400.Yearismultipleof4andnotmultipleof100.Approach: Getthevalueofinputfieldbyusingdocument.getElementById(“year”).valueCheckthegivenyearisleapyear......
  • java反射之-InvocationHandler使用
    InvocationHandler是Java中的一个接口,是Java反射API的一部分。与Proxy类一起使用,用于动态创建接口的代理实例。在Java中使用Proxy类创建代理对象时,需要提供一个InvocationHandler实现来定义代理对象的行为。InvocationHandler接口只有一个方法,即invoke()方法,它......
  • JavaScript1.8.5新特性系列Object.keys
    以前在js-object这个分类里面也写过keys相关的api 在JavaScript1.8.5中,加入了原生的Object.keys这个api  Object.keys(obj);/*简单举例*/Object.keys({"A":"a","B":"b"});//["A","B"]兼容性写法:  if(!Object.keys){Object.keys=......
  • [转]Java如何对一个对象进行深拷贝
    介绍在Java语言里,当我们需要拷贝一个对象时,有两种类型的拷贝:浅拷贝与深拷贝。浅拷贝只是拷贝了源对象的地址,所以源对象的值发生变化时,拷贝对象的值也会发生变化。而深拷贝则是拷贝了源对象的所有值,所以即使源对象的值发生变化时,拷贝对象的值也不会改变。如下图描述:了解了浅拷......
  • [ARM 汇编]高级部分—ARM汇编编程实战—3.3.2 嵌入式开发环境搭建
    搭建一个嵌入式开发环境主要包括以下几个部分:安装交叉编译器配置集成开发环境(IDE)安装调试工具下载和烧录程序接下来,我们将详细介绍每个部分,并提供相应的实例。安装交叉编译器交叉编译器是用于将您编写的ARM汇编代码编译成可执行文件的工具。在本教程中,我们将使用GNUAR......
  • Java学习笔记(十六)
    1.什么是线程?线程是指操作系统中的一种执行单元,它是进程中的一部分,可以看作是轻量级的进程。与进程不同的是,线程共享同一进程的地址空间和系统资源,如打开文件和信号处理等,但每个线程都有自己的程序计数器(PC)和栈,用于执行代码和存储局部变量等数据。2。线程和进程有什么区别?线......