学习的最好途径就是看书。看书有两点好处:看完书之后再次提升自我的最好途径是看一些相关的好博文。一本书往往有好几百页,好的博文是自己看书学习之后的一些总结和提炼,对于梳理学习的内容很有好处。接下来,我将推荐给Java程序员们一些好书。
一、《深入理解Java虚拟机:JVM高级特性与最佳实践》
如果你不满足于做一个只会写if…else…的Java程序员,而是希望更进一步,这本《深入理解Java虚拟机:JVM高级特性与最佳实践》是你的不二之选。它可以帮助你了解Java代码的底层运行机制,定位性能问题,对整个系统进行性能调优,解决各种线上线下的问题,甚至为自己的项目量身定做一款适合自己项目的虚拟机。这本书作者是周志明,是国内写得最好的有关Java虚拟机的书籍之一。我至少已经看了这本书5遍,因为它对于Java虚拟机的讲解深入浅出,适合各个层次的读者。
二、《HotSpot实战》
所有Java虚拟机都是遵循Java虚拟机规范的,市面上的Java虚拟机有几十款,《深入理解Java虚拟机:JVM高级特性与最佳实践》一书讲解的虚拟机并不针对某种特定的虚拟机,而是从Java虚拟机规范的角度来讲解Java虚拟机。而我们平时使用的乃至商用的大多数Java虚拟机都是Sun公司的HotSpot,这本书能够帮助你深入了解HotSpot虚拟机的实现细节。作者是陈涛,由于HotSpot的源码都是C/C++写的,所以要求读者有非常好的C/C++基础。对于不太熟悉C/C++的朋友,看这本书可能帮助不是很大。
三、《Java并发编程实战》
这是一本常常被列入Java程序员必读十大书籍排行榜前几位的书,不过个人不是很推荐这本书。文字多代码少,讲解多实践少。这本书前前后后我也看了两遍左右,感觉很枯燥。不过作为一本位于排行榜前几名的书,还是值得推荐给大家的。
四、《java多线程编程核心技术》
这本书是我大力推荐的,我的个人博客里面二十多篇的多线程博文都是基于此书,并且在这本书的基础上进行提炼和总结而写出来的。此书大篇幅的代码+小篇幅的精讲解,适合中国人偏向实用主义的写作风格。本书关于线程安全、synchronized、Reentrant、Timer等等都用详细的代码进行了讲解,非常有实践价值。有兴趣的朋友跟着这本书敲代码、运行、思考,三步走,对于多线程的使用与理解一定会进几大步。
五、《Effective Java中文版》
这是唯一一本我没有买的书。这本书的知名度以及其作者的来头,我相信这一定是一本值得一看的好书。初识这本书,是在我的博文Java代码优化(长期更新)里面,底下评论的时候有朋友提到了这本书,当时我说要去买,不过这两个月一直都没时间去逛书店,甚是遗憾,之后肯定会找时间去买这本书的。这本书的作者是Joshua Bloch,他是谷歌的首席架构师,属于超级技术大牛级别。
六、《深入分析Java Web技术内幕》
这本书非常全,HTTP、DNS、CDN、静态化、Jetty、Tomcat、Servlet、Spring、MyBatis等等,什么都有,涉及知识面非常广。不过,尽管每个知识点的篇幅都不多,但是重点都基本讲到了,是一本让人真正有收获的书。如果想进一步了解这些技术的技术内幕,就要自己去买相关书籍或者自己上网查资料了。
七、《大型网站技术架构 核心原理与案例分析》
这本书是屌、很屌、非常屌级别的。这本书详细讲解了分布式系统的知识点,多看几遍,对分布式的理解一定会加深不少。而且里面不仅仅是分布式的知识,还非常接地气地写了如何做一个好的架构师,这不仅仅是写给想做架构师的读者看的,就是给读者一些建议,如何更好地提出意见、如何更让别人关注你的声音、如何看到他人的优点,入木三分,让人获益匪浅。
八、《大型网站系统与Java中间件实践》
这本书的部分内容和上面一本《大型网站技术架构 核心原理与案例分析》有所重合,像分布式系统的演化、CDN、CAP理论和BASE理论等等。适合对分布式系统比较熟悉并且想要往中间件方面有一定研究的读者。本书要突出的重点是中间件三个字,中间件是分布式系统中一个非常重要的东西,其最重要的作用应该就是解耦,降低模块与模块之间的强依赖,不同的模块之间的依赖度降低,便可以各自独立地开发自己的功能。
九、《从Paxos到ZooKeeper 分布式一致性原理与实践》
这本书是从分布式系统基本理论开始讲起,讲到Paxos算法,最后慢慢引入到Zookeeper,循序渐进。适合有志向做一个出色的大型网站架构师、公司的技术总监之类的朋友。如果网友们所在的公司在使用Zookeeper,并且你又对Zookeeper感兴趣想要研究一下它的原理的,这本书将是不二之选。
十、《MySQL5.6从零开始学》
作为一名Java程序员,学习数据库是必须掌握的一门知识。这本书讲解MySQL5.6的全面知识点,内容很细致、很全面,适合Java程序员学习。MySQL相比Oracle更轻量级、更小、安装和卸载更方便,因此学习起来更为方便。并且,随着2009年阿里巴巴去IOE的运动,MySQL成为了互联网公司使用的主流数据库之一。
十一、《Spring源码深度解析》
Spring框架做得太好了,功能太强大了,这导致一旦你的程序使用Spring,出了问题,可能需要上网查资料或者问别人解决。研读Spring的源代码不失为一种很好的学习方法,这有很多好处:理解框架内部的实现之后,可以主动去解决问题;Spring框架内部实现用到了很多设计模式,可以提高你写代码和理解设计模式的能力;研究Spring框架可以大大增强你读代码的能力。总的来说,我推荐《Spring源码深度解析》一书,这本书在近400页的篇幅中尽量去讲解Spring源代码是如何实现的,有助于对Spring的实现有更深度的理解。
以上就是我推荐给Java开发者们的一些值得一看的好书。对于Java基础知识的学习,我提两点建议:多写多敲代码,好的代码与扎实的基础知识一定是实践出来的;可以去尚学堂下载一下马士兵的视频来学习一下Java基础,还挺不错的。
本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。