Java技术进阶推荐书单

1.启蒙篇

首先推荐的两本书是Java核心技术,这一套书是获得了第十三届Jolt生成效率大奖,大学的时候几乎是计算机学院的学生爱好Java编程的都会买这两本书进行扫盲。而且这两本书会随着JDK的版本迭代会印刷新的版本,目前最新的已经是11版本了。这两本书系统全面讲解Java语言的核心概念、语法、重要特性和开发方法。

《Java核心技术 卷I 基础知识》

卷I主要介绍Java语言基础知识的专业级详解,包括写Java代码的基本技术、习惯用法和实践,利用接口、lambda表达式和内部类的功能,有效的异常处理,泛型编程,Swing工具构建GUI,java并发特性利用多核处理器。

《Java核心技术 卷II 高级特性》

卷II包括掌握编写优秀Java代码所需的高级技术、习惯用法和实践,利用NIO、对象序列号和正则表达式,网络连接和B/S架构获取Web数据,注解使用,安全特性等。

《Java编程思想》

该书被称为计算机届的圣经,大学上的第一堂和计算机相关的课应该是数据结构,学了数据结构才会去学习各种语言。从数据结构通向语言是一段艰难的过程,数据结构是单纯的从数学或者逻辑学层面表达现实世界,但语言的意义就太广泛了,计算机语言不仅仅要描述数据结构,还要描述逻辑处理,还有通讯、协议等网络层面的东西。因此需要有个东西帮我们去理解,所以建议大家学完了数据结构就可以看Java编程思想这本书了,等学完了Java课程,然后把Java编程思想这本书再读一遍,我觉得这种学习方法是对。

《HeadFirstJava》

该书也是获得过Jolt生成效率大奖,这是一本完整地面向对象(object-oriented,OO)程序设计和Java的学习指导用书,根据学习理论所设计,你可以从程序语言的基础开始,到线程、网络与分布式程序等项目。重要的是,你可以学会如何像一个面向对象开发者一样去思考,而且不只是读死书。里面有很多类似漫画一样的描述,通过这些你可以领会Java编程思想,建议可以将这本书和《Java编程思想》并行去看。

《spring 实战 spring in action》

为什么推荐这本和实际技术联系过于紧密的书,是因为spring这个框架确实包含了很多能让大家颠覆认知的东西,例如依赖注入(DI)、控制反转(IOC),而且spring是后续一大堆东西的基础,例如Spring MVC,Spring Boot,Spring Cloud,Service Mesh等待。这本书在启蒙阶段先预热,在进阶的时候再重温。

2. 进阶篇

《Effective Java》

该书由Java之父JamesGosling鼎力推荐、Jolt获奖作品,是一本分享经验与指引你少走弯路的经典著作包含大量完整的示例代码和透彻的技术分析,通过90条经验法则,探索新的设计模式和语言习惯用法,帮助读者更加有效地使用Java编程语言及其基本类库。读完启蒙篇的各本著作,写了一些小程序后,如何在代码层面能更上一层楼,就必须读这本书,因为这本书提供了很多法则,这些法则是前人在实践中凝练出来的,如果遵守你的代码质量肯定上一个档次。

《深入理解Java虚拟机:JVM高级特性与最佳实践》

很多人不明白为什么学习Java语言,还要了解Java虚拟机。我的个人理解是做技术必须知其然知其所以然,因此必须要搞清楚Java文件是怎么被编译的,局部变量、对象、静态变量、方法这些东西在内存中是怎么存放的,GC又是怎么管理这些对象的。尤其是写并发多线程代码,更需要深入理解JVM的运行机制,才能灵活高效的用好多线程、线程池等。

《设计模式之禅》

《大话设计模式》

这两本书都讲了面向对象程序设计的6大原则和23种常用的设计模式,通过前期基本语言的学习,我们在写代码除了考虑效率外,还要根据实际业务写出可扩展性程度高的代码,这就得益于设计模式,通过设计模式在我们的项目中减少过程性代码,让代码成为一个能灵活兼容新业务的模组。

3. 架构篇

《实现领域驱动设计》

采用领域驱动设计的思想去架构我们的系统,这是一种新的思维,里面通过一个失败的项目开始,如何通过DDD去改造现有的系统,并且最终成功的故事。

《微服务架构设计模式》

本书由世界十大软件架构师之一、微服务架构的先驱、Java开发者社区的意见领袖Chris Richardson亲笔撰写。书中描述了如何解决我们将面临的众多架构设计挑战,包括如何管理分布式数据,还介绍了如何将单体应用程序重构为微服务架构,涵盖44个架构设计模式,系统解决服务拆分、事务管理、查询和跨服务通信等难题。

总结

今天推荐的书主要是培养你的思维能力的,思维决定了你能走多远,如果你想在IT行业持续的干下去,不管你做纯技术还是技术管理,你的领导力是由你的思维的广度和深度决定的。当你把上面的书籍学习好了,就可以找些现在非常热的技术书籍去看,例如Docker、Spring Cloud、Spring Boot。希望大家不要在网上去搜面经,这样做无法形成系统的知识,认认真真的读好每一本书,做好读书笔记,终有一天,阿里B8不是梦。

你可能感兴趣的:(Java,Java核心技术,设计模式,Java虚拟机,Spring实战,面向对象编程)