2020年Java架构师必读书籍-阿里云开发者社区

开发者社区> Zhoukaiyu> 正文

2020年Java架构师必读书籍

简介: 2020年Java架构师必读书籍,“学习的最好途径就是看书
+关注继续查看

  2020年Java架构师必读书籍,“学习的最好途径就是看书“,小编认为看书有两点好处:



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



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



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



  很多程序员们往往有看书的冲动,但不知道看哪些书,下面小编就给各位Java程序猿们推荐一些好书(每本书的作者会加粗标红),其中绝大多数都是一些程序员平时在看的书



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



wKioL1dF1BnBMCVRAABNRe6LQt8522.jpg-s_4174011010.jpg



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



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



  2、定位性能问题



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



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



  5、更加高级别的,为自己的项目量身定做一款适合自己项目的虚拟机



  那么Java虚拟机是你必学的一门技术。《深入理解Java虚拟机:JVM高级特性与最佳实践》作者是周志明,这本书可以说是国内写得最好的有关Java虚拟机的书籍,近半年,前前后后这本书我起码看了有5遍。国内写虚拟机的书除了这本,其实还有一些其他的,我也买过,不过粗略看下来,很多内容也是《深入理解Java虚拟机:JVM高级特性与最佳实践》此书里面的。



  另外值得一提的是,《深入理解Java虚拟机:JVM高级特性与最佳实践》这本书,有电子版的,网上搜一下就能下载到了。不过建议有兴趣的朋友还是去买书看,电子版本下载到的一般是比较老的版本,相比最新修订版的《深入理解Java虚拟机:JVM高级特性与最佳实践》,有很多作者新补充的知识点是没有的。



  《Java并发编程实战》



wKioL1dF1BrSb68KAACKu3rwSdc707.jpg-s_3340009685.jpg



  这本书常常被列入Java程序员必读十大书籍排行榜前几位,不过个人不是很推荐这本书。



  《Java并发编程实战》作者是BrianGoetz,怎么说呢,这本书个人感受是:



  1、文字多代码少



  2、讲解多实践少



  小编觉得这可能就是老外写书的特点吧,因为Java是北美国家(加拿大、美国)开发和维护的,所以老外对Java方方面面的理论知识体系都掌握得是非常清楚和透彻的。翻开这本书看,多线程什么用、什么是死锁、什么是竞争、什么是线程安全等等,方方面面的知识点都用大量的文字篇幅讲解,不免让人感觉十分枯燥,也难让读者有实质性的进步。我这本书看了两遍也属于一目十行意思,有兴趣的地方就重点看一下。



  无论如何,作为一本常常位于Java程序员必读十大书籍排行榜前几名的书,还是一定要推荐给大家的。



  《Java多线程编程核心技术》



wKiom1dF0yWyuQlAAABRyJX9-5o971.jpg-s_2682794785.jpg



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



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



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



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



  《深入分析JavaWeb技术内幕》



wKioL1dF1BuDNGEjAAA0Hn97jhA046.jpg-s_3974145717.jpg



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



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



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



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



wKioL1dF1BuC_PLSAAA997QWuOQ253.jpg-s_3923691096.jpg



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



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



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



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



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


wKioL1dF1BvSc0D7AACbUoHwedM582.jpg-s_4260634612.jpg



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



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



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



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



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



wKiom1dF0yeQj8DTAABUBZJXSIc594.jpg-s_3149493916.jpg



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



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



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



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



  《MySQL5.6从零开始学》



wKiom1dF0yeD505AAACHxr3v7gc553.jpg-s_3237356514.jpg



  《MySQL5.6从零开始学》,作者刘增杰和李坤。



  作为一名Java程序员,我认为我们千万不要觉得数据库是DBA的事情,数据库对一个Java程序员来说也是必须掌握的一门知识,丰富的数据库性能优化经验是一个顶尖程序员必备技能。



  目前主流的数据库有Oracle和MySQL,当然推荐大家的是MySQL,主要原因我认为有两点:



  1、MySQL相比Oracle更轻量级、更小、安装和卸载更方便,SQL其实都是差不多的,如果想学数据库,学MySQL就可以了,在家里面可以自己方便地研究,如果你的公司使用Oracle,只要再用对比学习法,关注一下Oracle和MySQL的差别即可



  2、随着2009年阿里巴巴去IOE的运动的进行,目前国内的很多互联网公司都会选择MySQL作为它们使用的数据库,因为MySQL免费,所以既省钱又不需要出了问题就依赖甲骨文公司



  MySQL学习小编推荐的是这本《MySQL5.6从零开始学》,我是觉得挺好的这本书,书里面的知识点很细致、很全面,读者选择书籍的标准大多不就是这两点吗?



  《Spring源码深度解析》



wKiom1dF0yiyhumRAABIz8b2V4o566.jpg-s_845123518.jpg



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



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



  研读Spring的源代码不失为一种很好的学习方法,我个人认为这有很多好处:



  1、理解框架内部的实现之后,可以主动去解决问题,而不需要依赖别人



  2、Spring框架内部实现用到了很多设计模式,很好的代码设计思路,这将会对你写代码、对你理解设计模式有很大的提高



  3、研究Spring框架将会大大增强你读代码的能力,我相信只要你能研究清楚Spring内部是如何实现的,其他任何一个框架的源代码都难不倒你



  总而言之,我认为读代码的能力是一个普通的程序员和一个好的程序员之间最大的差别之一,前者只会把别人写好的东西拿来用,后者不仅能用好,还清楚知道别人写好的东西底层是如何实现的,在出现问题的时候可以轻松解决。



  Spring源代码,个人推荐《Spring源码深度解析》一书,真要研究透并且写清楚Spring源代码,恐怕三四本书都不够,作者在近400页的篇幅中尽量去讲解Spring源代码是如何实现的,殊为不易,尽管无法讲得完全,但是相信作者的讲解配合上读者自己的研究,一定可以对Spring的实现有更深度的理解。



  后记



  以上就是小编推荐给Java开发者们的一些值得一看的好书,但是这些书里面并没有Java基础、Java教程之类的书,对于Java基础知识的学习,我提两点建议吧:



  1、多写多敲代码,好的代码与扎实的基础知识一定是实践出来的



  2、可以去动力节点IT培训官网下载一下视频来学习一下Java基础,还挺不错的。



  最后,每一位读到这里的网友,感谢你们能耐心地看完。希望在成为一名更优秀的Java程序员的道路上,我们可以一起学习、一起进步。


云服务器ECS地址:阿里云·云小站

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
怎么做一名好的JAVA架构师?
怎么做一名好的JAVA架构师? 好的架构师不是叫出来的,是做出来的,不是有架构师的title,他就是架构师啦。 那么什么样的架构师,才是好的架构师呢? 1.使用新的技术固然重要,但满足需求更重要 在项目中,但我们遇到一些问题的时候,我们时常会使用新的技术,新的方法论,诸如此类,这些解决问题的根本动机在于,我们其实是想丰富下我们架构师自己的简历,但实际上,这些新的技术可能并不是问题的最佳解决方案。
764 0
后端Java架构师图谱(架构师必经之路)
如果是想持续从事软件开发职业,架构师是软件开发的必经之路,在这里为大家分享一个图谱 同时该图谱会不定期更新补充,欢迎大家踊跃交流。 顺序依次是 架构师筑基-开源框架-高性能架构专题-微服务架构专题-团队协作开发专题-B2C商城实战专题 首先是架构师筑基: JVM性能调优 程序性能优化 ...
3463 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
4480 0
献给迷惘的Java架构工程师
1. 工程化专题 (团队大于3个人之后,你需要去考虑团队合作,科学管理) 2. 源码分析专题 (好的程序员,一行代码一个设计就能看出来,源码分析带你品味代码,感受架构) 3.高性能及分布式专题 (跟上技术节奏,扩宽技术视野,程序员要往上提升,要有自己的技术工具箱和技术认知。
855 0
Java资深架构师详解大厂多线程面试题,细谈并发编程深造历程
多线程、线程池 多线程是实现并发机制的一种有效手段。进程和线程一样,都是实现并发的一个基本单位。线程是比进程更小的执行单位,线程是进程的基础之上进行进一步的划分。
1659 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
7757 0
成为阿里Java架构师,必须经历这三个阶段
每个程序员、或者说每个工作者都应该有自己的职业规划,如果你不是富二代,不是官二代,也没有职业规划,希望你可以思考一下自己的将来。今天给大家分享的是一篇来自阿里Java架构师对普通程序员的职业建议,希望对你有启发。
1544 0
【0506 - 0509 直播导视 | PPT 下载】如何成为顶级架构师的内功修炼秘笈、Quick Start:阿里云 Java Initializr
本周开发者社区将为大家带来如何成为顶级架构师的内功修炼秘笈、中国最大java系列直播之Quick Start:阿里云 Java Initializr等多场技术专场。
669 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,云吞铺子总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系统盘、创建快照、配置安全组等操作如何登录ECS云服务器控制台? 1、先登录到阿里云ECS服务器控制台 2、点击顶部的“控制台” 3、通过左侧栏,切换到“云服务器ECS”即可,如下图所示 通过ECS控制台的远程连接来登录到云服务器 阿里云ECS云服务器自带远程连接功能,使用该功能可以登录到云服务器,简单且方便,如下图:点击“远程连接”,第一次连接会自动生成6位数字密码,输入密码即可登录到云服务器上。
16827 0
+关注
85
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载