专栏名称: java那些事
分享java开发中常用的技术,分享软件开发中各种新技术的应用方法。每天推送java技术相关或者互联网相关文章。关注“java那些事”,让自己做一个潮流的java技术人!《java程序员由笨鸟到菜鸟》系列文章火热更新中。
目录
相关文章推荐
Java编程精选  ·  SpringBoot实现分布式验证码登录方案 ·  4 天前  
51好读  ›  专栏  ›  java那些事

成为Java顶尖程序员 ,看这10本书就够了

java那些事  · 公众号  · Java  · 2017-01-11 16:51

正文

摘要: “学习的最好途径就是看书“,这是我自己学习并且小有了一定的积累之后的第一体会。个人认为看书有两点好处:   1.能出版出来的书一定是经过反复的思考、雕琢和审核的,因此从专业性的角度来说,一本好书的价值远超其他资料   2.对着书上的代码自己敲的时候方便   “看完书之后

岁末年初,想储备一些优质书籍的看这里。近期发现并收藏了这几本书,一方面作为自己的书单,另一方面也想推荐给大家。


“学习的最好途径就是看书“,这是我自己学习并且小有了一定的积累之后的第一体会。个人认为看书有两点好处:


1. 能出版出来的书一定是经过反复的思考、雕琢和审核的,因此从专业性的角度来说,一本好书的价值远超其他资料


2. 对着书上的代码自己敲的时候方便


“看完书之后再次提升自我的最好途径是看一些相关的好博文“,我个人认为这是学习的第二步,因为一本书往往有好几百页,好的博文是自己看书学习之后的一些总结和提炼,对于梳理学习的内容很有好处,当然这里不是说自己的学习方法,就不再扯下去了。


很多程序员们往往有看书的冲动,但不知道看哪些书,下面我就给各位 Java 程序猿们推荐一些好书(每本书的作者会加粗标红),其中绝大多数都是我自己平时在看的书,也算是我对于平时读的书做一个小总结和读后感吧。


Effective Java 中文版》


这是唯一一本我没有买的书。初识这本书,是在我的博文 Java 代码优化(长期更新)里面,底下评论的时候有朋友提到了这本书,当时我说要去买,不过这两个月一直都没时间去逛书店,甚是遗憾,之后肯定会找时间去买这本书的。


Effective Java 中文版》的作者是 Joshua Bloch ,这个人就很厉害了,他是谷歌的首席架构师,属于超级技术大牛级别了吧,呵呵。由于没有看过这本书,所以我不好发表评论,但是从这本书的知名度 以及其作者的来头来看(多提一句,这本书也是 Java 之父 James Gosling 博士推崇的一本书),我相信这一定是一本值得一看的好书。


好的代码是每个 Java 程序员都应该去追求的,不是说我今天写一段好代码相比写一段烂代码对性能会有多大的提升,更多的应该是提升了代码的可读性以及可以规 避许多潜在的、未知的问题,避免代码上线之后出问题而花时间去维护— - 无论从时间成本、人力成本还是风险成本来说,这都是非常高的。


《实战 Java 虚拟机: JVM 故障诊断与性能优化》


如果你不满足于做一个只会写 if else …的 Java 程序员,而是希望更进一步,我随便举几个例子吧:


1 、了解 Java 代码的底层运行机制


2 、定位性能问题


3 、对整个系统进行性能调优


4 、解决各种奇奇怪怪的线上线下问题


那 么 Java 虚拟机是你必学的一门技术。《实战 Java 虚拟机: JVM 故障诊断与性能优化》写的很入门,技术也最新,新手也能看得懂,如果有 java 技术瓶颈的,看完会豁然开朗。


HotSpot 实战》


所有的 Java 虚拟机都是遵循着 Java 虚拟机规范来的,市面上的 Java 虚拟机几十款,《实战 Java 虚拟机: JVM 故障诊断与性能优化》一书里面讲的虚拟机并不针对某种特定的虚拟机,而是从 Java 虚拟机规范的角度来讲解 Java 虚拟机。


我们平时使用的乃至商用的大多数 Java 虚拟机都是 Sun 公司的 HotSpot ,大家 cmd 进入命令行,使用” java -version ”命令就可以看到了。如果希望在 Java 虚拟机规范的基础上更加深入地去理解虚拟机的一些细节是怎么实现的,就可以看一下《 HotSpot 实战》一书,作者是陈涛。不过由于 HotSpot 的源码都是 C/C++ 写的,所以要求读者有非常好的 C/C++ 基础,如果对这两门语言不是很熟悉的朋友,看这本书可能对你帮助不是很大。


最后提一句,如果有兴趣的朋友,不妨先去网上下载一个 openJDK HotSpot 的源码就在里面。



《实战 Java 高并发程序设计》


这本书是目前点评推荐比较多的书,其特色是:


1 、案例小,好实践


2 、代码有场景,实用。


无论如何,并发已经成为多核时代的趋势,还是一定要推荐给大家的。


java 多线程编程核心技术》



Java 多线程编程核心技术》作者高洪岩。想要学习多线程的朋友,这本书是我大力推荐的,我的个人博客里面二十多篇的多线程博文都是基于此书,并且在这本书的基础上进行提炼和总结而写出来的。


此书和《 Java 并发编程实战》 相反,这本书的特点是大篇幅的代码 + 小篇幅的精讲解,可能这和中国人写的书比较偏向实用主义的风格有关。本书关于线程安全、 synchronized Reentrant Timer 等等都用详细的代码进行了讲解,而且每个大知识点下的多个小知识点都会详细讲解到,非常有实践价值。


有兴趣的朋友们,我相信只要你们跟着这本书里面的代码敲、运行、思考,三步走,对于多线程的使用与理解一定会进几大步。


不 过这本书的缺点就是对于 Java 并发包下的一些类像 CountDownLatch Semphore CyclicBarrier Future Callable 等都没有讲到,重点的 CAS AQS 也没有触及,重点类的实现原理也没有提。当然,这很深入了,在学习了这本书之后如果能再去对这些知识 进行一些学习、研究的话,你一定会慢慢成长为一个很厉害的多线程高手。


《深入分析 Java Web 技术内幕》


《深入分析 Java Web 技术内幕》,作者许令波,淘宝工程师。


这本书我用一个字概括就是:全。真的非常全, HTTP DNS CDN 、静态化、 Jetty Tomcat Servlet Spring MyBatis 等等,什么都有,涉及知识面非常广,但又不像专门精讲某个知识点的书籍一样讲得非常深入,感觉这本书就是尽量去用短的篇幅讲清楚一些 Java Web 使用到的技术的内幕,让读者对这些知识点的技术内幕有一个理性的认识。


不过,尽管每个知识点的篇幅都不多,但是重点都基本讲到了,是一本让人真正有收获的书。如果想进一步了解这些技术的技术内幕,就要自己去买相关书籍或者自己上网查资料了,有种抛砖引玉,或者说师傅领进门、修行在个人的感觉。


《大型网站技术架构 核心原理与案例分析》



一个字评价这本书,屌;两个字评价这本书,很屌;三个字评价这本书,非常屌。呵呵,好了,再说下去可能别人以为我是水军了。


《大型网站技术架构 核心原理与案例分析》的作者是李智慧,原阿里巴巴技术专家。


Java 的大多数应用都是用在 Web 上的,现在只要稍微大型一点的 Web 应用,都一定是一个分布式系统,那么一个分布式系统用到了哪些技术?一个大型网站是如何从一个小型网站成长起来的?如何保证你的网站安全?分布式系统使用到了缓存,有哪些缓存?缓存的使用有哪些值得注意的事项?


关 于分布式的知识点,都在这本书里面有体现,只有你想不到,没有他写不到,而且写得非常易懂,基本属于看一两遍,再记一些笔记就知道是怎么一回事儿了。多看 几遍,对分布式的理解一定会加深不少。而且里面不仅仅是分布式的知识,还非常接地气地写了如何做一个好的架构师,其实我认为这不仅仅是写给想做架构师的读 者看的,就是给读者一些建议,如何更好地提出意见、如何更让别人关注你的声音、如何看到他人的优点,入木三分,让人获益匪浅。


《大型网站系统与 Java 中间件实践》



《大型网站系统与 Java 中间件实践》作者曾宪杰,是淘宝的技术总监,算起来应该在阿里有至少 P8 的级别了吧。


这本书的部分内容和上面一本李智慧的《大型网站技术架构 核心原理与案例分析》有所重合,像分布式系统的演化、 CDN CAP 理论和 BASE 理论等等,这也更说明这些都是分布式系统或者说是一个大型网站重点关注的内容,当作一次再学习也不错。


本书要突出的重点是中间件三个字,中间件是分布式系统中一个非常重要的东西,其最重要的作用应该就是解耦,降低模块与模块之间的强依赖,不同的模块之间的依赖度降低,便可以各自独立地开发自己的功能,这也可以说是软件工程发展的目标和驱动力。


因此,本书有一部分的内容就是基于中间件,详细讲解了中间件与 JMS 的各种知识,适合对分布式系统比较熟悉并且想要往中间件方面有一定研究的读者。


《从 Paxos ZooKeeper 分布式一致性原理与实践》


《从 Paxos ZooKeeper 分布式一致性原理与实践》,作者倪超,阿里巴巴工程师。


这本书是我最近在研读的一本书,和上面的《大型网站系统与 Java 中间件实践》一样,属于分布式组件的范畴,属于有些深入的内容,当然也是我自己的个人兴趣。当然,如果有志向做一个出色的大型网站架构师、公司的技术总监之类,这些知识当然是必须掌握的。


本书从分布式系统基本理论开始讲起,讲到 Paxos 算法,最后慢慢引入到 Zookeeper ,循序渐进。当然,更多的我目前还不方便发表什么看法,因为这本书的第二张 Paxos 算法我都还没有弄懂( Paxos 算法确实有些难以理解和不太易懂),接下来的章节还没有看下去。


如果网友们所在的公司在使用 Zookeeper ,并且你又对 Zookeeper 感兴趣想要研究一下它的原理的,这本书将是不二之选。


Spring 源码深度解析》


Spring 源码深度解析》,作者郝佳。


Spring 这个框架做得太好了,功能太强大了,以至于很多开发者都只知 Spring ,不知什么是工厂、什么是单例、什么是代理(我面试别人的真实体会)。这种功能强 大的框架内部一定是很复杂的实现,这就导致一旦你的程序使用 Spring ,出了问题,可能是 Error 、可能是 Exception 、可能是程序运行结果不 是你的预期的,出现诸如此类问题的时候,将会让你感到困惑,除了上网查资料或者问别人似乎没有更好的解决办法。








请到「今天看啥」查看全文