成为Java顶尖高手要看的11本书轻量级程序员

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

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

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

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

首先推荐的不是一本书,而是一个博客,也是我们博客园另外一位博友java_my_life。

目前市面上讲解设计模式的书很多,虽然我前面讲了看书是最好的,但是对设计模式感兴趣的朋友们,我推荐的是这个博客。这位博友的设计模式讲得非常非常好,我认为90%的内容都是没有问题且很值得学习的,其讲解设计模式的大体路线是:

1、随便开篇点明该设计模式的定义

2、图文并茂讲解该设计模式中的结构

3、以详细的代码形式写一下该种设计模式的实现

4、补充内容

5、讲解该设计模式的优缺点

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

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

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

2、定位性能问题

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

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

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

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

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

《HotSpot实战》

所有的Java虚拟机都是遵循着Java虚拟机规范来的,市面上的Java虚拟机几十款,《深入理解Java虚拟机:JVM高级特性与最佳实践》一书里面讲的虚拟机并不针对某种特定的虚拟机,而是从Java虚拟机规范的角度来讲解Java虚拟机。

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

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

《Java并发编程实战》

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

《Java并发编程实战》作者是BrianGoetz,怎么说呢,这本书前前后后我也看了两遍左右,个人感受是:

1、文字多代码少

2、讲解多实践少

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

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

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

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

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

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

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

《EffectiveJava中文版》

《深入分析JavaWeb技术内幕》

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

《MySQL5.6从零开始学》

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

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

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

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

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

《Spring源码深度解析》

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

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

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

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

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

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

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

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

THE END
1.线上与线下教学的区别是什么?网友(匿名用户)职场问答一、教育形式不同:1、线上教学:在线教育是以网络为主,表现形式有两种:直播和录播;2、线下教学:线下教育是需要学生到教室里面,与老师进行面对面教学;二、对学生的要求不同:1、线上教学:在线教育,因为上课时老师不在学生身边,是通过视频进行教学,所以更考验学生的自觉性;2、线下教学:线下教育由于可以在课堂上直接https://zq-mobile.zhaopin.com/zpdOutputQuestionForXZH/6743274
2.线下学车教程和线上学车教程哪个更好?像有些驾校还会设计合理的练车路线,结合不同的练车项目,让学员由浅入深地学习。 但线下学车也有不足,比如时间安排不够灵活,可能得迁就驾校的安排,费用一般也较高。 线上学车教程时间就很灵活,你可以根据自己的时间随时学。而且学费往往较低。但线上学车缺乏实践经验,没有师生之间的现场互动,遇到问题可能没法马上https://www.pcauto.com.cn/ask/681848.html
3.猿辅导:独角兽成功之谜(网经社讯)这一段时间在线 教育发展都十分迅速,并且去年疫情的冲击让很多K12线上教育高速发展,猿辅导在一大波玩家中脱颖而出;如今人们对于学习的需求加大,线上学习是很多用户的选择;本文作者分享了猿辅导的发展和产品分析以及K12在线教育的前景,我们一起来了解一下。2https://maimai.cn/article/detail?fid=1593575727&efid=XeiOTSP3AMw7ffON_a0-Tw
4.2023年教师全员培训研修总结4篇1、线上学习与线下互动相结合:以线上自主学习为主,将学员的自主分散学习、专家在线答疑与网下组织的集中讨论相结合,充分发挥现代信息技术优势,减少工学矛盾。参训学员可以参与当地组织的线下集中学习和研讨活动,也可通过远程培训平台自主学习或参与其他地区的研讨交流活动。 https://www.jy135.com/peixunzongjie/1176701.html
5.美国留学申请流程V92签证通常是美国申请人当初以非法手段进入美国国境(例如偷渡)或者以合法手段进入美国后非法滞留(如B1、B2或者F1等),然后以被原住国迫害或者有可能被迫害为由向美国政府申请庇护,并且通过上庭申诉取得合法居的留权,同时获得申请配偶以及未婚子女移民的类别。 https://www.yjbys.com/liuxue/experience/4141362.html
6.职业生涯规划的原则有哪些?怎么制定职业生涯规划?2、持续学习:不断提升自身的专业知识和技能,适应职业发展的需求。 3、自我认知:了解自己的优势、兴趣和价值观,将个人特质与职业规划结合起来。 4、灵活性和适应性:在职业生涯中保持灵活性,随时做出调整和适应变化。 5、构建人际关系:积极拓展人脉,建立良好的人际关系网络,有利于职业发展和获取支持。 https://www.xycareer.com/knowledge/11410.html
7.2019级电子商务专业人才培养方案(1)具有较强的自我学习能力。 (2)具有独立解决问题的能力。 (3)具有较强的逻辑思维与分析问题的能力。 (4)具有信息检索、信息处理及网络应用能力。 (5)具有较强的创业意识和开拓创新能力。 (6)具有综合运用各学科知识处理问题的能力。 七、课程体系框架 https://www.hnwmxy.com/jiaoxuekeyan/jiaoxuebiaozhunfabu/rencaipeiyangfangan/2019_r/2020/0703/6462.html
8.线上线下混合教学总结范文(精选22篇)总结是事后对某一阶段的学习或工作情况作加以回顾检查并分析评价的书面材料,它能使我们及时找出错误并改正,不妨坐下来好好写写总结吧。那么总结要注意有什么内容呢?下面是小编帮大家整理的线上线下混合教学总结范文(精选22篇),供大家参考借鉴,希望可以帮助到有需要的朋友。 https://www.oh100.com/kaoshi/jiaoxuezongjie/644221.html
9.“我,ChatGPT,不建议把大象放进冰箱”总之,拼多多算得上是电商平台杀出来的一匹黑马。它的发展速度很快,并且采取了一些独特的经营策略,在中国电商市场取得了一定的成绩。 甲子光年:你认为特斯拉电车有哪些优缺点? ChatGPT:特斯拉电车有一些明显的优点: 它们使用电能作为动力来源,没有污染物排放,更加环保。 https://36kr.com/p/2033530445720071
10.头条文章2.事业编与非事业编公证员的优缺点 事业编的公证机构它最大的好处是稳定,比如说你因为疫情原因被隔离在家了,你的工资奖金,你的津贴都会按照正常情况下给你给你发放。 非事业单位的公证员好处就是收入高,因为他的工资不受人社局工资处的审核,普遍来说收入就会比较高。但相比就没有那么稳定,也不是铁饭碗。 https://card.weibo.com/article/m/show/id/2309404722224136323515
11.读书读书笔记#3《笔记思考术》教给我的改变人生笔记法建立你的技能学习系统 1. 思考的方法:思考的改变,是笔记关键 不要只记录你看到的,要记录你想到的 思考就是去分析问题,我们可以思考记录这些事情会对我们产生哪些影响,会引发我们产生什么样的行动,而不只是记录事情而已,不思考的笔记,或者说没有记录你的思考,你就会发现你看不懂、没感觉、用不到自己的笔记。 https://www.jianshu.com/p/2b83c7883a37
12.关注!东莞延迟开学期间最全教学指引来了!(附小初高建议课程表说明:1.课程表一的文化课学习分成三个小节进行,课程表二的文化课学习分成两个小节进行;2.文化课学习可以采用线下学习、线上教学或线上、线下混合式教学,线上连续教学每次不超过20分钟;3.每天线上教学总时间控制在180分钟以内;4.每天安排学生上午、下午各做一次眼保健操,每周开展至少一次品德教育和心理健康教育。http://dgtga.dg.gov.cn/dgtw/jrtga/202002/e864eb648d3b49a8ab28bbd8f7a37b91.shtml
13.教师个人提升工作计划范文12篇教学中学会用ppt,希沃白板等技术手段,提高自己应用信息技术进行学情分析、教学设计和学业评价等的能力,破解教育教学重难点问题,改变学生学习方式,满足个性化发展需求。 3、在独立研修学习的基础上,参加区、校、学科组的研修活动,通过组内协作,进行线上和线下学习。 线上:平台学习; 线下:参加学校组织的校本研修(至少两https://www.liuxue86.com/a/4814190.html
14.个人工作报告15篇我要在取得成绩的基础上,继续加强学习,提高工作业务技能和服务水平,更加刻苦勤奋,更加认真努力,做好自己的本职工作,创造优良工作业绩,为银行的又好又好发展,做出自己应有的努力与贡献。 个人工作报告 4 前言 本人在北京华文学院学习两年汉语了,从一个汉字也不认识的高中毕业生,到现在已能流利地听、说、读、写中文https://www.yuwenmi.com/fanwen/baogao/3610106.html
15.国家宪法宣传周的活动总结范文(通用22篇)总结是指社会团体、企业单位和个人在自身的某一时期、某一项目或某些工作告一段落或者全部完成后进行回顾检查、分析评价,从而肯定成绩,得到经验,找出差距,得出教训和一些规律性认识的一种书面材料,通过它可以正确认识以往学习和工作中的优缺点,因此我们需要回头归纳,写一份总结了。那么总结有什么格式呢?以下是小编为大https://www.cnfla.com/huodongzongjie/2258511.html
16.我们向ChatGPT提了100个保险问题,留给保险人的时间不多了?第二个问题在于,ChatGPT背后没有数据库,缺少结构化的体系。它的知识来自于输入的大量文本等资料,对一些概念会混淆,也就无法给出我们期望的答案,这个缺点在惠民保、医保等问题上都体现了出来。 ChatGPT毕竟不是垂直于保险行业的机器人,还没有对它进行非常精细化的保险专业训练,所以在回答更复杂的保险问题时明显很“https://insurance.hexun.com/2022-12-09/207463306.html
17.每日热点0130其中境外输入病例27例(上海10例,北京3例,浙江3例,云南3例,河南2例,广东2例,广西2例,福建1例,四川1例),含1例由无症状感染者转为确诊病例(在广东);本土病例54例(北京20例,其中丰台区13例、大兴区4例、朝阳区2例、西城区1例;浙江19例,均在杭州市;黑龙江8例,均在牡丹江市;天津4例,其中河北区3例、津南https://www.sccdc.cn/Article/View?id=20328