Java工程师面试必备书单 | 掘金技术征文

本文出自个人公众号:程序员江湖。程序员

江湖路险,你我同行。面试




Java开发工程师通常负责后端开发,固然也有专门作Java Web的工程师,可是随着先后端的分离,愈来愈多的Java工程师须要往大后端方向发展。算法


今天咱们就来介绍一下Java后端开发者的书单。sql


首先要感谢一下江南白衣大大的后端书架,让我在初学阶段读到了不少好书,直到如今都印象深入。docker


我在两年的学习历程中看了不少的书,其中不乏XXX入门到精通,XXX王者归来,XXX指南什么的。数据库



虽然这类书确实毛病不少,可是做为非科班的我来讲,当时仍是看的津津有味。直到后来我看到一些优秀的书籍,以及白衣哥的书架,我才逐渐认识到看一些精品书籍的好处。
编程


因此咱们今天就从这些精品书籍中挑选一些优秀书籍来推荐给你们,固然其中有一些书我本身也没有时间看完。后端


接下来咱们按照后端技术栈各个部分的内容来推荐书籍。设计模式


网络


1 TCP/IP卷一服务器



这本其实我刚开始没看太懂,多是当时太水的缘由,可是通常是大牛力荐的书。


2 计算机网络:自顶向下



这本从应用层讲到物理层,感受这种方式学起来更轻松,我比较推荐小白看这本。


3 图解HTTP和图解TCP/IP



相较于前两本大厚书,这两本书更加亲民,小白能够买来看看,仍是很适合入门的。


4 计算机网络



没错,就是这本教材,做为非科班选手本身看这本书,那叫一个欲仙欲死啊,看完就忘记了。


操做系统


1 深刻理解计算机系统



这本书不是严格意义上的操做系统书籍,而是对计算机基础和操做系统作了一个串联,能够解决你不少对于计算机的疑惑,而且对操做系统有必定理解。


其实这本书仍是很厚的,有必定难度,建议有一些基础后再看。


2 现代操做系统



这本书其实我没怎么看,比较详细地讲解了操做系,可是也是你们都比较推崇的书,仍是那句话,很厚,慎看。


3 Linux内核设计与实现



当你对操做系统有必定理解之后,这本书将为你打开学习Linux内核的大门,固然在此以前你得有必定的c语言开发能力,以及对Linux的了解。反正,我如今还没开始准备好看这本书。


4 Unix网络编程



这两本书的厚度绝对让你感到绝望,其实就是讲解了Unix内核是如何实现网络通讯的,其中涉及到不少网络,操做系统的知识,而且你要熟悉c语言。总之,这是一本奉为网络编程神书的存在,不过我等新手仍是拿他压压泡面就行了。


网上有不少博客会参照该书的内容,能够去看看它们。


数据结构与算法


不瞒你说,因为我非科班,因此算法基础比较差,数据结构是考研时跟着天勤考研指南学的,学习算法也是一路坎坷,举步维艰。仍是分享几本比较靠谱的书吧。


1 算法导论



你问我是否是认真的,我就是说说而已,这本书我买来没看过。


2 数据结构与算法(Java版)



这本书对于初学者来讲仍是比较友好的,固然学Java的看这本。


3 算法图解,啊哈算法



这两部书籍很是适合学习算法的入门,前者主要用图解的形式覆盖了大部分经常使用算法,包括dp,贪心等等,能够做为入门书,后者则把不少经常使用算法都进行了实现,包括搜索,图,树等一些比较高级的经常使用算法。


4 剑指offer



这本书仍是要强烈推荐的,毕竟是面试题常常参考的书籍,固然最好有前面基本的铺垫再看,可能收获更大,这本书在面试以前通常都要嚼烂。


5 LeetCode


这不是一本书,是一个题库,算法么,终究仍是要靠刷题来提高熟练度的。


Java基础


1 Java编程思想



这本书也是被誉为Java神书的存在了,可是对新手不友好,适合有些基础再看,固然要选择性地看。我当时大概只看了1/3


2 Java核心技术卷一



这本书仍是比较适合入门的,固然,这种厚皮书要看完仍是颇有难度的,不过比起上面那本要简单一些


Java进阶


1 深刻理解JVM虚拟机



这本书是Java开发者必须看的书,不少jvm的文章都是提取这本书的内容。JVM是Java虚拟机,赋予了Java程序生命,因此好好看看把,我本身就已经看了三遍了。


2 Java并发编程实战



这本书是Java 并发包做者写的书,因此很是权威,可是比较晦涩难懂,我看的云里雾里的,你们能够按需选择。


3 Java并发编程艺术



这本书是国内做者写的Java并发书籍,比上面那一本更简单易懂,适合做为并发编程的入门书籍,固然,学习并发原理以前,仍是先把Java的多线程搞懂吧。


4 Effective Java



这本书和Java编程思想同样被称为神书,主要讲的是Java的一些优化技巧和规范,没有必定开发经验的人看这本书会以为索然无味,不知所云,因此,先搁着吧。


5 Java性能调优指南



说到JVM调优,可能会有不少的面试题浮如今你的脑海里,这本书比较权威地讲解了Java的性能调优方法,不过我还没怎么看,有空好好看看。


6 Netty权威指南



Netty是基于NIO开发的网络编程框架,使用Java代码编程,其实这本书也能够放在网络或者Java Web部分。不过NIO属于JDK自带的一部分,是必需要掌握的,而对于Netty,你们若是学有余力的话也能够看看。


JavaWeb


0 深刻JavaWeb技术内幕



这本书是Java Web的集大成之做,涵盖了大部分Java Web开发的知识点,不过一本书显然没法把全部细节都讲完,可是做为Java Web的入门或者进阶书籍来看的话仍是很不错的。


1 How Tomcat Works



Java Web很重要的一部份内容就是Tomcat,做为应用服务器,Tomcat使用Java开发,其源代码和架构设计都是经典之做。


这是一本讲解Tomcat基本原理的书籍,很好地经过剖析源码来说解Tomcat的内部结构和运行机制,可是须要必定的基础才可以看懂,我还没看这本书,往后再拜读。


2 Tomcat架构解析


和上面这本书相似,主要讲解Tomcat原理和架构,,要看懂这本书的话,前提是你要对Java基础,NIO以及设计模式有所了解。这本书我也还没看。


3 Spring实战



这本书适合做为Spring的入门书籍,把Spring的概念,使用方式等内容都讲的比较清楚。而且也介绍了Spring MVC的部份内容,Spring框架仍是更注重实践的,因此跟着书上的内容去作吧。


4 Spring源码深度解析



学会Spring基础后,能够花点时间看看这本讲源码的书了,这本书对于新手来讲不太友好,主要也是由于Spring的代码结构比较复杂,你们也能够看一些博客来完成对源码的学习。


5 Spring MVC学习指南



本书是一本Spring MVC的教程,内容细致、讲解清晰,很是适合Web开发者和想要使用Spring MVC开发基于Java的Web应用的读者阅读。可是因为出的比较早,因此不太适合如今版本。


6 Maven实战



Maven是Java Web开发中不可缺乏的一部分,若是想要全面了解其实现原理的话,能够看看这本书。


数据库


0 数据库原理


数据库原理应该是教材吧,这本书做为数据库入门来讲仍是能够的,毕竟不是专门作DB的,看大厚书用处不大,这本书把数据库的基本概念都讲完了。


1 sql必知必会



这本书主要是讲解sql语句怎么写,毕竟数据库最重要的一点就是要熟练地使用sql语句,固然这本书也能够当作工具书来使用。


2 深刻浅出MySQL



这本书适合做为MySQL的学习书籍,当你有了必定的MySQL使用经验后,能够看看它,该书从数据库的基础、开发、优化、管理维护和架构5个方面对MySQL进行了详细的介绍,讲的不算特别深,可是足够咱们使用了。这本书我也只看了一部分。


3 MySQL技术内幕:innodb存储引擎



看完上面那本书之后,对MySQL算是比较熟悉了,不过对于面试中常考的innodb引擎,仍是推荐一下这本书把,专门讲解了innodb存储引擎的相关内容。我尚未细看,可是内容足够你学好innodb了。


4 高性能Mysql



这本书能够说是很厚了,更适合DBA拜读,讲的太详细了,打扰了。


5 Redis实战



和MySQL同样,学习Redis的第一步最好也是先实战一下,经过这本书就能够较好地掌握Redis的使用方法,以及相关数据结构了。


6 Redis设计与实现



该书全面而完整地讲解了 Redis 的内部运行机制,对 Redis 的大多数单机功能以及全部多机功能的实现原理进行了介绍。这本书把Redis的基本原理讲的一清二楚,包括数据结构,持久化,集群等内容,有空应该看看。


分布式


0 分布式Java应用



这本书是淘宝大牛写的书,主要讲的就是使用rpc来构建分布式的Java应用,讲了不少基础的东西,能够做为入门书籍,不过这本书我以前没有遇到,因此没看过。


1 大型网站技术架构



这本淘宝系技术指南仍是很是值得推崇的,能够说是把大型网站的现代架构进行了一次简单的总结,内容涵盖了各方面,主要讲的是概念,很适合没接触过架构的同窗入门。看完之后你会以为后端技术原来这么博大精深。


2 大型分布式网站架构设计与实践



这本书与上面一书相比更倾向于实践,主要讲的是分布式架构的一些解决方案,可是若是你没有接触过相关的场景,可能会看的云里雾里。


3 分布式服务框架原理与实践



上面那本书讲的是分布式架构的实践,而这本书更专一于分布式服务的原理讲解和对应实践,很好地讲述了分布式服务的基本概念,相关技术,以及解决方案等,对于想要学习分布式服务框架的同窗来讲是本好书。


4 大型网站系统与Java中间件开发实践



话说这些书的名字真实够长的。这本书也是阿里系出品,主要讲的是大型网站系统以及使用的相关中间件,毕竟阿里是中间件大户,因此不少中间件对应用再网站系统中,对于想学习这方面技术的同窗来讲能够一看。


5 从Paxos到Zookeeper分布式一致性原理与实践


提及分布式系统,咱们须要了解它的原理,相关理论及技术,这本书也是从这个角度出发,讲解了分布式系统的一些经常使用概念,而且带出了分布式一哥zookeeper,能够说是想学分布式技术的同窗必看的书籍。


6 大规模分布式存储系统



这本书是阿里巴巴oceanbase核心开发大佬写的书,讲的是分布式存储相关的原理和解决方案,该书不是很厚,若是想作存储方向的同窗能够看看。


云计算


云计算方面的内容主要是我在实习阶段接触的,若是只是应用开发方向的话这块不懂也罢。主要仍是看我的兴趣。


1 OpenStack设计与实现



OpenStack是基于KVM技术的一套私有云生态。这本书很好地讲解了OpenStack的一些基本原理,包括各个组件的设计与实现,比起另外一本《OpenStack王者归来》简单易懂的多。固然,前提最好是你对Linux内核和网络有所了解。


2 docker入门与实践



docker是如今应用部署的主流方案了,因此了解一下仍是挺有必要的,这本书做为入门书籍足够让你会使用docker了。


3 kubenetes权威指南



kubenetes是docker的集群解决方案,也是一个微服务的解决方案,因此这本书涉及的内容很是多,须要有网络,操做系统以及docker相关的基础。我看这本书的时候能够说是很是晕的。


大数据


和云计算同样,大数据方面的内容也不算是Java后端技术栈所须要的,可是这也能为你加分,而且让你跟大数据开发的岗位沾点边,何乐而不为。


1 大数据技术原理与应用



做为大数据方面的一本教材,厦大教授写的这本书仍是很是赞的,从最基础的原理方面讲解了Hadoop的生态系统,而且把每一个组件的原理都讲得比较清楚,另外也加入了spark,storm等内容,能够说是大数据入门很是好的一本书了。


2 Hadoop实战



这本书很厚,我买的时候大概看了一遍,一头雾水。因此建议先看上面那本书,再来看更加进阶的书籍,不然可能就是浪费时间了。


3 Hadoop权威指南



这本书主要对Hadoop生态中组件进行详细讲解,有点太详细了,若是不是作大数据方向的话,能够不看。


其余:


1 Git权威指南



Git是如今大公司主流的代码协同工具,若是你想要了解其底层原理,能够看看这本书。


2 重构



这本书主要介绍的是代码重构的一些指导思想和最佳实践。有重构需求的同窗能够看看。


3 - n


其余方面的书籍就太多了,好比软件工程方面的,测试方面,Linux方面,以及讲一些程序员自我提高的书籍,就不一一列举了,由于这部分的内容能够不纳入Java后端的技术栈。


掘金征文连接:https://juejin.im/post/5b923adb5188255c6666c77b

相关文章
相关标签/搜索