Java程序员必读和推荐读的Java好书推荐Java四库全书

Posted 21aspnet

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java程序员必读和推荐读的Java好书推荐Java四库全书相关的知识,希望对你有一定的参考价值。

Java程序员必读和推荐读的Java好书推荐【Java四库全书】

作者:无界编程

星级:★★★★★

★★★★★五星代表完美,

★★★★四星代表好书但是有些许缺陷,例如加入很多无用的内容,版本低,翻译的问题等等,

★★★三星代表值得一看但是可用内容不多,性价比不高,如果对某个内容刚兴趣可以关注下。

★★和★两星一星以下是差书,这里是推荐好书所以自然不会列两星,如果可能以后再出一篇Java书籍大全会用到★★和★。

 

读者:初级/中级/高级

初级零基础刚走上编程岗位或者在校生,中级有一定基础工作1-2年,高级工作有一定年限,想深入研究的,高级上不封顶,同样是高级的可能有些内容是超难的,但是不做进一步区分了。

 

推荐:必读/选读 

必读是一定要看的,不过必读需要结合级别,如果你是高级那么初级的必读对你价值不大。

选读是想在某一方向加深研究可以扩充阅读,选读一般都不会是初级。


 

下面列出的Java的书籍我都阅读过,我以前选书也看了很多别人的点评,至今加上我自己的理解,我会给我我推荐的理由。

对于一些很多人传说很好的书我会给出为什么是四星的原因,我觉得我写此文的目的也是为了纠正一些误导,不然直接去其他网站看排名就行了,实际上排名并不完全科学。

==============================================

【Java基础好书】

 

《Java程序设计语言(第4版)》

星级:★★★★★     读者:中高级    推荐:必读

点评:这是java之父写的书,质量自然是毋庸置疑了,你把相同的内容进行比较你会发现这本讲的是最准确的。

可惜书是2006年的,也没有出新版本,反射泛型集合都讲到了也足够了,Java8的一些内容可以单看其他书足矣。 

也正是因为是2006年的所以估计买不到纸质书了。

-------------------------------------------------------------------------------

《Java程序设计与问题求解(原书第8版)》

星级:★★★★★     读者:初级    推荐:必读

点评:作者写了同一个系列C++版的书都是写了很多版本,作者这基本上在美国高校非常流行,书写的很基础,适合零基础的,作者会讲一点好编程的思想,这对以后的编程生涯非常重要,如果一本书只是当手册来查那么看官方手册就够了,所以书的作用还应该是传播思想,正如书名所示“程序设计与问题求解”,这是一本被很多Java程序员所不知的好书。 

-------------------------------------------------------------------------------

《Java 7入门经典》

星级:★★★★     读者:初中级    推荐:必读

点评:经典好书,作者是C和C++方面的大师,写过《Visual C++ 2012入门经典》《C语言入门经典》。作者对编程的理解比很多其他作者要透彻,你可以拿同一个不好理解的概念,对比几本书你会发现这本讲的最透彻,所以这是我推荐必读的原因。

为啥不能五星呢,我觉得英文是五星,中文只能四星,翻译有些地方处理的不好,居然把hashmap翻译为地图,不过不影响阅读,还有作者不知为何止步java7,没有更新到jdk8。

-------------------------------------------------------------------------------

《Java 8编程入门官方教程》

星级:★★★★★     读者:初中级    推荐:选读

《Java 8编程参考官方教程》

星级:★★★★★     读者:中级    推荐:选读

点评:这两本书是同一个作者,这两本书都是Oracle官方推荐的,质量是毋庸置疑的,整体内容全面,也讲的比较透彻,对于有一定工作经验的直接买第二本就行了,两本不是互补关系,有很大的重叠,第一本很基础,第二本讲了一些第一本没有的内容。

这是两本很好的书也很厚。

-------------------------------------------------------------------------------

《Java核心技术·卷 I(原书第11版)》

星级:★★★★     读者:初中级    推荐:选读

 

点评:

先说只能给四星的缘故:

这本书流传甚广,所以需要多一点笔墨。这本书实际上是分上下册的,目前是第11版,书整体上来说内容写的很全,其他书总是或多或少少一些内容,不过这本书最让人不爽的地方是大量篇幅讲了Swing程序设计,而且作者篇幅安排非常不合理的是把Swing程序设计夹在第一册中,实际上放第二册就好了,而第二册第一篇讲文件流的很多人都是需要的,第二篇其他内容都是鸡肋,所以这个篇幅安排换一下就好很多,所以这是给他四星的缘故。

再说为什么不是必读:

我以前刚学java的时候对比同一个概念,你会发现这本书实际上往往将不透,讲不深,讲不本质,这本书只是内容包含的比较全一点而已。

所以我觉得核心技术这个书名有点夸大,真正核心的地方讲的不多,偶尔一笔带过,应该叫“Java基础”比较合适。

============================================

【Java提高好书】

 

《Effective Java中文版(第3版)》

星级:★★★★★     读者:高级    推荐:必读

点评:这是一本经典好书,并不适合初学者,而是经验之谈,书很薄,主要告诉你需要怎么做,不要怎么做,让你对面向对象,对Java有很多新的认识,例如接口优于抽象类。单例模式作者建议使用枚举。局部变量作用域最小化。以多线程为例作者建议并发工具优先于wait和notify。书中太多精华了,很多你需要自己编程很多年以后才可以领悟一些有同感,所以这本需要慢慢研读。

----------------------------------------------------------------------------

《Java编程思想 (第4版)》

星级:★★★★★     读者:中高级    推荐:选读

点评:这本书也是很经典的好书,流传很广,这书不适合初学者,需要有一定工作年限,对接口对抽象类这些如果觉得总是学了不会用可以看看,对java基础已经很好想提高对面向对象的理解,不会封装,看源码不知道为什么别人要那么设计可以在这里找找灵感。

----------------------------------------------------------------------------

《Java 8实战》

星级:★★★★     读者:中高级    推荐:选读

点评:这本顾名思义是专门讲Java8的,基础不好的不要直接看,如果你作为你的第一本Java书显然不合适,如果你正想学习下jak1.8新增的内容,例如Lambda表达式,流操作,并行数据处理与性能,Optional,CompletableFuture 那么此书适合你。

----------------------------------------------------------------------------

《Java攻略 Java常见问题的简单解法》

星级:★★★     读者:中高级    推荐:选读

点评:流式操作,比较器与收集器,lambda 表达式,并行与并发等讲的这些如果是你正好想学的可以看看,这本书和上一本类似,不过好在他从问题分类角度来讲,这本是带一点思想的性质在里面。

=============================================

【并发编程好书推荐】

《精通Java并发编程(第2版)》

星级:★★★★     读者:初中级    推荐:必读

点评:没有基础的可以看看怎么从创建线程开始深入浅出,没有基础的不建议直接看后面推荐的几本书。

-------------------------------------------------------------------------------

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

星级:★★★★     读者:中级    推荐:必读

点评:这本书讲了很多并发编程需要的一些理论,同步异步阻塞,非阻塞,JMM等,而不是单纯的讲各种并发包,思想比较好。

整体写的比较浅显易懂,初学中级都可以看看,遇到问题可以查阅。

-------------------------------------------------------------------------------

《Java并发编程实战》

星级:★★★★★     读者:高级    推荐:必读

点评:Doug Lea和Joshua Bloch等大家参与的书的质量只会很好,这本书是并发编程最经典的作品之一,对于特别是Java程序员一定要看,全书有深度,阅读起来会有些晦涩。 

-------------------------------------------------------------------------------

《Java并发编程的艺术》

星级:★★★★     读者:中级    推荐:选读

点评:这本书很流行,但是我并不是特别推荐,这书里的内容前几本都有,这本书的结构不太好,内容太跳了,一开始突然讲到锁总线,对于初学者不适合,如果是想拓宽一下并发编程特别是前几本书没有讲的地方,或者你看《Java并发编程实战》很困难可以选择看看这本。书名叫艺术有点言过其实,叫并发编程实践比较好。

-------------------------------------------------------------------------------

《Java并发编程》

星级:★★★★     读者:高级    推荐:选读

点评:JDK源码并发包作者Doug Lea 作品,如果你想提高下深度的东西需要看,这是一本讲并发设计思想的书,不过这本书比较晦涩,不好懂。

==============================================

【JVM虚拟机好书推荐】

-------------------------------------------------------------------------------

《深入理解Java虚拟机(第3版)》

星级:★★★★★     读者:中高级    推荐:必读

点评:如果说虚拟机只选一本书那么就是这一本,这一本流程非常广,也是出版印刷此书非常多的,而这本书确实写得很好。

内容浅显易懂又不失一定的深度,对于初学者来说虚拟机的方方面面都讲到了,垃圾回收讲的很透彻,应付工作面试都足够了。新版时隔数年增加了ZGC等内容,这本书无需太多介绍,想必做Java的都看过,如果你不知道那么赶紧去找一本吧。 

 

不过需要多说一句,虚拟机是实践性很强的技术,你需要去解决线上的问题,再好的书都不能代替你自己的理解和实践。

指望单纯看书而不动手是不行的,这是我给大家学习JVM的建议。

-------------------------------------------------------------------------------

《实战Java虚拟机:JVM故障诊断与性能优化(第2版)》

星级:★★★★     读者:中级    推荐:必读

点评:葛一鸣在我看来是一个不错的IT书籍作家,他的书内容深入浅出,你都看得懂,也都工作中用得上。

这一本相对周志明那一本来说的不同是线上排障各种工具jmap和jstack,Visual VM等的使用,以及各种参数比如CMS和G1的配置有比较全面的介绍,实用性更强一点。这本书时隔几年出第二版也是增加了很多新的内容

-------------------------------------------------------------------------------

《Java性能优化权威指南》

星级:★★★★     读者:高级    推荐:选读

点评:讲性能优化的,更多的是讲虚拟机的,书有点老,但是并不过时,任然有很多营养。

 -------------------------------------------------------------------------------

《Java性能权威指南》

星级:★★★★     读者:高级    推荐:选读

点评:这本书和前一本类似实际上是讲虚拟机的,性能优化自然是离不开对虚拟机的调优,当然这本书不完全是讲虚拟机的调优,垃圾收集算法,堆内存分析,也讲了其他方面对象序列化,线程与同步,数据库性能的最佳实践(JDBC连接池+JPA)所以这本书你不可不读,有些干货也有鸡肋的地方。 

-------------------------------------------------------------------------------

《Java虚拟机规范(Java SE 8版)》

星级:★★★★     读者:高级    推荐:选读

点评:官方手册,实用性并不大,也不是讲垃圾回收的。class文件格式,常量池,栈帧,加载、链接与初始化,Java虚拟机指令集讲这些,如果你想对虚拟机做一些深度研究,对指令加载,对虚拟机是怎么设计的可以选择性看看这本。如果你只是想应付下面试和平时工作一些简单的JVM调优这本对你没有太大的参考价值。

-------------------------------------------------------------------------------

《Java虚拟机精讲》

星级:★★★     读者:高级    推荐:选读

点评:这本书的侧重点是字节码原理,类加载机制对虚拟机源码有些讲解,对HotSpot的原理有讲解,和《Java虚拟机规范》有点像,但是又不是很学术化,这本讲了一些垃圾回收方面的内容,不同垃圾回收器的介绍,如果你觉得看前面几本不够还想多了解一些这一本可以补充扩大视野。

-------------------------------------------------------------------------------

《JVM G1源码分析和调优》

星级:★★★     读者:高级    推荐:选读

点评:这是对G1进行源码分析的,这本书实用性并不大,如果你想深入了解下G1可以看看,但是如果你对虚拟机JVM整体都没有认识,连垃圾回收,年轻代,年老代都搞不清楚,这本书还是先不要看了。 

-------------------------------------------------------------------------------

《垃圾回收算法手册:自动内存管理的艺术》

星级:★★★★     读者:高级    推荐:选读

英文版本是垃圾算法界的“龙书”,相对垃圾回收有深入的理论研究可以看这本,但是这本不是讲java特定虚拟机实现的,所以你看完不一定和Java的虚拟机完全对的上。标记–清扫,标记–整理,复制式回收,引用计数,分代垃圾回收,堆内存的划分等等你常见的JVM实现都可以在这里找到理论基础,但是这只是理论基础看你需要不需要了,如果想搞清楚JVM的实现设计背后的原理,以及加深自己对JVM的理解是要看的。

-------------------------------------------------------------------------------

《虚拟机设计与实现 以JVM为例》

星级:★★★     读者:高级    推荐:选读

点评:这是一本讲虚拟机怎么设计的,如果你不设计虚拟机只是应付面试和工作中遇到的JVM相关问题几乎没必要看, 非常你很资深想从设计的层面了解虚拟机的原理可以开拓下视野。

==============================================

【代码修炼好书推荐】

 

《编写可读代码的艺术》

星级:★★★★     读者:初级    推荐:必读

点评:本书关注编码的细节,总结了很多提高代码可读性的小技巧,看似都微不足道,但是对于整个软件系统的开发而言,它们与宏观的架构决策、设计思想、指导原则同样重要。编码不仅仅只是一种技术,也是一门艺术,编写可读性高的代码尤其如此。如果你要成为一位优秀的程序员,要想开发出高质量的软件系统,必须从细处着手,做到内外兼修,本书将为你提供有效的指导。

代码应当易于理解,把信息装到命名里,名字应该有多长,写出言简意赅的注释。

本书的精华是前11章,后面几章有点鸡肋。作者是谷歌工程师,这是一本初学者应该好好看的书,看完你就知道应该怎么写代码。

这本书实际上是受《代码整洁之道》启发,只是这本书对初学者更友好一点,《代码整洁之道》需要稍微有2年工作经验再看比较好。

-------------------------------------------------------------------------------

《代码整洁之道》

星级:★★★★★     读者:初中级    推荐:必读

 点评:作者是著名的软件大师Robert C·Martin。这本书说是代码整洁之道,其实还是讲怎么写出好代码的,我觉得叫整洁之道太谦虚了,这一本可以叫 “怎么写出优雅的代码”更好。作者也是先说有意义的命名,很显然《编写可读代码的艺术》是受这本书启发的。函数多长,作者提出一个重要的思想是函数只做一件事我觉得你如果就学会这个都受用不尽了。注释怎么写,异常怎么出处理,类怎么组织都有涉及,这本书还讨论了并发编程似乎有一点点多余了。

 

《敏捷软件开发》

星级:★★★★★     读者:高级    推荐:必读

这是一本名著,作者提出了非常著名的系统设计五大原则:单一责任原则,开放—封闭原则 ,Liskov替换原则,依赖倒置原则接口隔离原则,相信你一定听过,后面章节用薪水支付案例研究来讲这几个原则怎么实现。

如果说讲软件设计的著作的泰山北斗,这本就是北斗,《重构》是泰山。

-------------------------------------------------------------------------------

《重构(第2版)改善既有代码的设计》

星级:★★★★★     读者:中高级    推荐:必读

点评:软件大师Martin Fowler的名著,重构并非无中生有去破坏现有系统,而是系统随着时间的推移会出现“坏味道”,需要被重构。另一方面,不要以为新项目就不用“重构”的思想,实际上这本书本质上是教你怎么写出漂亮的代码。

这本书的第一版已经出版20多年了,当年这本书的出版使重构终于从编程高手们的小圈子走出,成为众多普通程序员日常开发工作中不可或缺的一部分。

重复代码,过长函数,过长参数列表,发散式变化,依恋情结,过长的消息链你的代码一定或多或少也有这些问题,而你每天总是因为这些问题增添无数的烦恼。所以学习这本书,改掉这些不好的代码,让生活和工作更美好吧

==============================================

【架构设计好书推荐】

《架构整洁之道》

星级:★★★★★     读者:高级    推荐:必读

点评:《敏捷软件开发》 和《代码整洁之道》的作者。“架构整洁”实际上就是讲架构设计,作者的意思可能是整洁的架构就是好的架构。全书最精华是 第3部分 设计原则。SRP:单一职责原则,OCP:开闭原则,LSP:里氏替换原则, ISP:接口隔离原则,DIP:依赖反转原则正是出自此书。对于每一位软件研发从业人员——无论从事的是具体编码实现、架构设计,还是软件研发管理,《架构整洁之道》都是不可或缺的。

-------------------------------------------------------------------------------

《微服务设计》

星级:★★★★     读者:高级    推荐:选读

点评:这是一本看似简单实际上内核非常丰富的书,如果你要设计微服务,做微服务拆分需要看此书,你的疑惑可以得到解答,你也有行动的指南,如果你不设计微服务,只是感兴趣可以了解下,书中内容还是很丰富的。 

-------------------------------------------------------------------------------

《领域驱动设计 软件核心复杂性应对之道》

星级:★★★★★     读者:高级    推荐:选读

点评:领域驱动设计(ddd)已经深入人心,虽然还有争议,也并非完全一定要按领域驱动去设计,但是我认为无论如何你最好还是要了解下,特别是你想成为架构师,可以说正是微服务的大行其道才让领域驱动设计焕发青春。正如书的副标题所示“软件核心复杂性应对之道”,这本书正是让你面对企业架构设计的一把利剑,步过领域设计初次涉及很难懂,没有一定的工作年限全书阅读起来非常晦涩。

-------------------------------------------------------------------------------

《面向模式的软件架构》套书

《面向模式的软件架构 第1卷 : 模式系统》

星级:★★★★     读者:高级    推荐:选读

点评:架构的基础,其他书可以代替。

面向模式的软件架构. 第2卷 : 并发和联网对象模式

星级:★★★★     读者:高级    推荐:必读

点评:讲并发的架构比较重要。

面向模式的软件架构 卷4:分布式计算的模式语言

星级:★★★★★     读者:高级    推荐:必读

点评:非常实用,全面,全套的精华。

《面向模式的软件架构,卷3 : 资源管理模式》

星级:★★★     读者:高级    推荐:选读

点评:不实用,可以了解,如果做这方面的开发可以看看。

《面向模式的软件架构 卷5》

星级:★★★     读者:高级    推荐:选读

点评:很虚

点评:这套书一共五本,非常的经典,架构设计的方方面面都涵盖到了,可以挑其中的第1卷,第4卷,第2卷。

这本书好就好在作者进行了拆分,你可以选择感兴趣的来阅读。

-------------------------------------------------------------------------------

《设计模式 可复用面向对象软件的基础》 

星级:★★★★★     读者:高级    推荐:选读

点评:设计模式作者写的书,设计模式已经尽人皆知,不管你排斥还是拥护 ,都需要了解一些常见的设计模式,如果你想深入研究我建议看这本书,其他一些举例子的写设计模式的书貌似看懂实际上没有懂,因为那些作者并没有真正的理解设计模式,只是为了设计模式而编出来的蹩脚的例子。

-------------------------------------------------------------------------------

《UML用户指南》 

星级:★★★★     读者:高级    推荐:选读

点评:架构师要会UML建模,要会画图,如果只是工程师可以了解下。《UML用户指南(第2版·修订版)》是UML方面的一部权威著作,3位作者是面向对象方法最早的倡导者、UML的创始人。 

================================================

【数据库好书推荐】

《高性能mysql 第3版》 

星级:★★★★★     读者:高级    推荐:必读

点评:只要你用MySQL这本书是一定要看的,如果你想了解MySQL的方方面面这本书都有写到,这是一本公认的MySQL好书,我认为全书最精彩是讲索引。

------------------------------------------------------------------------------- 

《数据库系统实现》 

星级:★★★★     读者:高级    推荐:选读

点评:如果你想对数据库设计,这里的设计不是设计表结构这么简单,而是数据库的底层原理需要看此书补充很多知识,只有对底层有透彻的了解才可以用好数据库。

------------------------------------------------------------------------------- 

《NoSQL精粹》 

星级:★★★★★     读者:中高级    推荐:必读

点评:这也是Martin Fowler的著作,写的非常深入浅出,各种NoSQL数据库都涉及到了,这不是一本手册,而是一本让你做技术选型的好书,也让你开拓视野,不用局限于一种数据库。

《NoSQL精粹》为考虑是否可以使用和如何使用NoSQL数据库的企业提供了可靠的决策依据。书中全方位比较了关系型数据库与NoSQL数据库的异同;分别以Riak、MongoDB、Cassandra和Neo4J为代表,详细讲解了键值数据库、文档数据库、列族数据库和图数据库这4大类NoSQL数据库的优劣势、用法和适用场合;深入探讨了实现NoSQL数据库系统的各种细节,以及与关系型数据库的混用。 

================================================

【计算机设计好书推荐】

 

《操作系统概念(原书第9版)》 

星级:★★★★★     读者:中级    推荐:选读

 点评:讲操作系统最好的一本书,可以看得懂,很多时候一些问题还是离不开操作系统,如果你想补课大学没有学好操作系统,那么这本书适合你,这本书已经出版了第10版,国内中文目前是第9版。

 

《深入理解计算机系统(原书第3版)》 

星级:★★★★★     读者:高级    推荐:选读

点评:计算机硬软件方方面面你的理解总是不够的,这是修炼内功的一本书,不是一下子就可以理解的,需要常看常新,时刻拿出来挖掘出其中的金子。如果你只是想满足工作这本书并不完全适合你,如果买了不看我认为不如不买,你要是想精通计算机科学必读此书。

以上是关于Java程序员必读和推荐读的Java好书推荐Java四库全书的主要内容,如果未能解决你的问题,请参考以下文章

Java程序员必读精选书籍分享,强烈推荐

JavaEE程序员必读图书大推荐

零基础学习Java的书籍都有哪些,请推荐

精通Java虚拟机必读书籍推荐书单

java零基础入门书籍都有哪些值得推荐?

豆瓣 9 分以上,Java 程序员必看的 7 本书!