这份书单,想要晋级高级Java工程师的朋友值得一看!
加个“星标”,每天带你读好书!
?
经过了10多年的发展,Java Web从开发框架到社区都已经非常成熟,很多程序员都可以通过使用框架很快速地搭建起一个Java Web应用,特别是近几年SpringBoot大热,干脆连配置都不需要了解了,直接一键式编译部署运行,让Java工程师的入门成本变得越来越低。
但于此同时,互联网公司对于Java的应用场景也在不断地升级换代,从单机部署再到分布式,从SOA再到微服务,Java后端技术栈变得更加庞大,对于工程师的要求也越来越高,特别是对于大公司来说更是如此,也正因为如此,对Java工程师的考察已经不限于Java Web的那套东西了,企业往往会提出更高的要求,比如需要你能够熟练使用设计模式,了解Java并发编程和JVM调优,甚至是了解分布式技术、微服务以及中间件等等。
今天的这份书单并不针对某一种技术,而是想介绍一些一些Java进阶方面的书籍,其中包括Java的一些编码规范,代码最佳实践,以及调优指南,另外还介绍了一些Java编程的黑科技,比如Java异步编程,相信这些书籍对你的Java进阶学习会有所帮助。
Java进阶系列书单
?
阿里巴巴Java开发手册
《阿里巴巴Java开发手册》的愿景是码出高效,码出质量。它结合作者的开发经验和架构历程,提炼阿里巴巴集团技术团队的集体编程经验和软件设计智慧,浓缩成为立体的编程规范和实践。
大公司每天提交的代码量是非常惊人的,阿里在职的十几万员工,每天都能提交成百上千的代码量,因此代码规范是非常重要的,否则一千个人有一千种代码规范,到头来就是谁都看不懂别人在写什么。当我们掌握了Java基础,想要开始做一些项目时,如果再能够养成一些良好的代码习惯和编码风格,那么对于你未来发展一定是有益无害的,毕竟代码规范和一个人的其他习惯一样,是需要刻意练习去养成的。
本手册适合计算机相关行业的管理者和研发人员、高等院校的计算机专业师生、求职者等阅读,希望成为大家如良师益友般的工作手册、工具字典和床头书。
作者杨冠宝,花名孤尽,取自《笑傲江湖》中风清扬的“独孤九剑,破尽天下武功”之意,是《阿里巴巴Java开发手册》的主要作者。在阿里巴巴集团历任研发、架构师、技术主管等不同的角色,承担过双11、国际化、代码中心等大型项目,有着丰富的一线编程经验,目前是研发协同平台Aone代码中心负责人。乐于分享与总结,在阿里巴巴集团内部大型分享多达30余次,不懈地追求技术创新,勇于挑战技术难度,在大数据、高并发、研发效能领域均有较深的造诣。
?
effective Java
当我们写了一段时间的Java代码,并且参与过一些项目实战之后,特别是在一些比较大的项目中,你会发现系统里有很多地方用到了设计模式,又或者用到了一些不成文的约定,比如创建实例时默认使用工厂方法,引用一个对象时尽量都用接口引用,方法和类的命名遵从驼峰式命名,对于异常的处理也有很多约定俗成的规范,这些规范有的作为设计模式被人们学习和吸收,有的则成为了优秀的经典代码规范,而这些规范和开发技巧,其实和Java语言特性以及JVM工作原理都息息相关。
effective Java这本书把这些人们在开发中常用的规范、模式以及工程上的最佳实践进行了总结和整理,形成了一本经典的Java工程师的编码指南,而这本书也得到了Java之父的力荐。实际上,这本书并不适合入门学习的Java小白,而更适合有了一定开发经验和工作经验的朋友,只有在有了一定的代码实践和工程实际实践之后,你才能对这本书的几十条最佳实战原则有所理解。
作者Joshua Bloch 美国卡内基-梅隆大学教授,曾是Google公司首席Java架构师、Sun公司杰出工程师和Transarc公司高级系统设计师。他带领团队设计和实现过无数的Java平台特性,包括JDK 5.0语言增强版和获奖的Java Collections Framework。他拥有哥伦比亚大学的计算机科学学士学位和卡内基-梅隆大学的计算机科学博士学位。他的著作还包括《Java Puzzlers》和《Java并发编程实战》(曾获Jolt大奖提名)等。
?
Java性能优化权威指南
很多时候,开发代码只是程序员日常工作中的一小部分,项目的编译、构建、发布等都是一个应用生命周期的组成部分,一旦项目正式上线运行,难免就会遇各种各样的问题,最主要的就是代码bug和性能问题了,如果是代码bug,那么就赶紧去改bug,很多时候,代码可能没有硬伤,但是系统的整体表现却不尽如人意,访问速度慢,接口调用超时,这些都是性能瓶颈的具体表现方式。
有问题就要解决问题,这本书也正是Java性能调优方面的一本经典作品,从Java的性能调优工具开始,讲解了关于JVM 的GC调优、内存调优,以及JIT、多线程的调优,同时还涉及了JavaEE和数据库的调优方法,基本上把我们日常开发中遇到的调优场景都进行了覆盖,虽然本书年代比较久远,还有很多J2EE早期技术的内容,但是最本质的调优原理并没有发生太大的改变。
Charlie Hunt,现任Salesforce公司的性能工程架构师。曾任Oracle公司首席JVM性能工程师,负责HotSpot Java虚拟机和Java SE类库性能的改进。Charlie拥有美国伊利诺伊理工大学的计算机科学硕士学位、爱荷华州立大学的计算机科学学士学位。
Binu John,世界上大的社交网站创建平台Ning.com的高级性能工程师。他目前的职责是着力改善Ning平台的性能和扩展性,以支持每月数百万PV的访问量。Binu拥有美国爱荷华大学生物医学工程和计算机科学硕士学位。
?
Java异步编程实战
就在2019年年底,有一本奇葩的Java书籍横空出世,就是这本《Java异步编程实战》在这以前,是面试没有一本书籍是系统介绍Java异步编程的,而异步编程这一种方法在我们平时的开发中其实用的并不少,比如netty框架就是完全基于异步编程来实现的,而在Java的多线程组件、JUC并发包里,也有很多对异步编程能力的支持。当然,相比于我们习惯使用的编程方式,异步编程确实更加反常规,并不会经常被使用到,所以以往的Java书籍对异步编程的论述也比较少。
如果你想要学习异步编程或者学习netty这类的异步编程框架,相信这本书可以帮你解决很多困惑,作者在书中介绍了很多异步编程的实战案例,并且结合了spring、netty、dubbo等框架和开源中间件进行了详细的介绍,可以说是广大希望学习Java异步编程的程序员的福音。
作者翟陆续(花名:加多)
资深Java技术工程师,就职于淘宝,有多年的Java研发经验,在Java并发编程、异步编程等方面有深入研究和积累。对JUC包源码有深入的理解,熟悉常用开源框架实现原理。
著有畅销书《Java并发编程之美》。
?