科班和非科班都适用的 Java 学习路线

不少面试官在基础考察的时候都是直接是根据书来问,由于这些面试官也是从学生时代过来的,而他们可能和你看的是同一本书。也就是若是你和面试官的知识体系结构同样的话,面试官问出来的问题,你天然能够回答得很好。下面是书籍推荐:java

00 推荐 《head first Java》

head first系列一直口碑不错,这本书更是适合java入门,先看完这本书,而后看下面的这些。
或者看《疯狂java讲义》,二者选一本入门便可linux

01 java基础

java核心卷I:java核心卷II能够买也能够不买。java核心卷I只看前9章,其余不用看。身边同窗都认为这本书不适合初学者,可是若是你以前看过java学习视频,那么这本书很适合你。这本书主要让你对java知识有个系统的学习,创建起本身的知识体系结构。系统的体系结构在求职面试显得尤其主要,不只仅是指java基础。因此你们必定要学会总结,零散的知识碎片对面试十分不利。程序员

02 多线程、并发

实战java高并发程序设计和java并发编程的艺术:java高并发程序设计,这本书主要是为了看第二本书作铺垫,直接看第二本书可能会很吃力。实战java高并发程序设计主要看:前4章、5.一、5.二、5.三、5.十、5.11和第6章。第二本书“java并发编程的艺术”除了6.4和10.4相对不是重点,其他每一章都是考点、每一章都是,记住这句话。6.4和10.4建议看一下,不是重点,可是建议看。你们记住并发编程的艺术是重点,基本上上面提到的那些章都是重点。面试

另外,你们自行找博客补充下协程的概念,公众号后面也会有讲解。近期各大公司都有研究使用协程,面试大几率会问到。协程其实就是单线程里面实现多任务调度,由于是单线程,因此不用锁,天然没有锁的竞争那些问题,效率更高。你们能够去了解下,大几率会被问到。并发编程的艺术可能看第一遍可能迷迷糊糊,都不知道到底讲了什么,这本书断断续续可能要看三遍或者以上,因此一遍看不懂不要灰心,由于你们都这样。算法

03 java虚拟机

深刻理解Java虚拟机:只要看:第2章、第3章、第4章、第5章简单看一看、第六章看6.1和6.二、第7章以及第12和13章。12和13属于并发里面的补充。上面这些都是重点,面试的典型问题,包括以前讲过的GC,内存模型、调优、经常使用命令、类加载、OOM和stackOverflow等。还有就是对象的生命周期一些,这本书大可能是记忆类的,你们多多总结,多翻几遍~spring

04 数据结构

大话数据结构:这本书通俗易懂,第5章能够不看,其他建议看。第五章,怎么说呢,我和周围同窗面试都没被问到过KMP算法,笔试中可能会遇到,可是KMP算法能够解决的问题DP大几率也能够解决,并且KMP算法不简单,对本身要求高的同窗能够看看。第七章图,图在面试中基本不会问,可是在笔试中大几率会碰到,因此还得看。可是放心面试中几乎不多问到图的。数据库

若是以为这是C的能够看 《算法》第四版编程

有了java基础和数据结构基础,应该去刷题,推荐《剑指offer》和《程序员代码面试指南-IT名企算法与数据结构题目最优解》ubuntu

05 设计模式

Head First设计模式:建议看前13章,第13章实际是讲MVC模式,这个也要掌握,附录中的模式不想看就别看了。这本书“废话”比较多,图文也很详细,每一种设计模式都有具体的案例,能够帮助你更好的理解设计模式。windows

学习完一种设计模式后,最好可以找到JDK或者Spring或其余框架源码中的应用,这有助于理解,加深记忆;更重要的是,若是面试官在问你设计模式的时候,你能详细说出几种经常使用的设计模式,而且给出在JDK或spring或其余框架源码中的应用,以及该模式解决了什么问题之类的,这确定是加分项,面试官会认为你知识体系结构很完善,对你的印象确定更加深入。

常问的设计模式问题有:单例、适配器、装饰者、代理、组合、策略、模板方法、观察者、工厂方法。这几种是重点,其余的模式依旧建议看看,即前13章都建议看。百度面试曾经问过一个问题:装饰者模式、静态代理和动态代理模式的异同;为何spring的AOP不使用装饰者模式实现等问题。再次强调一点,上面提到的每一种模式必须可以举出一两种应用场景,即JDK、Spring或者其余框架源码的那个地方应用了这些设计模式,而且要能手写出代码实现。百度面试就是这么问的,必定要能举出案例,也问过手写观察者模式;也有不少公司要求在草稿纸上画出各个设计模式的UML图,这个也但愿你们掌握,但愿引发你们重视。

06 分布式

分布式属于进阶,能够放到最后再看,其它是基础,必看!

从Paxos到Zookeeper分布式一致性原理与实践:第1章、第2章,第4章,第五章,第6章,7.1节、7.4节、7.5节,7.6节、7.7节、7.9节,8,4节,8,5节。书名比较长,这本书很重要,由于如今的网站都是分布式,高可用(一台机器坏了会自动由另一台机器对外提供服务)、分布式锁、分布式队列等等一些相关功能均可以使用zookeeper实现。另外,zookeeper在不少框架中的不少:HBASE、Hadoop、kafka、YARN等等(后面这些框架只是举例)。

在前一篇文章中曾提到过,在项目相关面试问题中,面试官有很大几率会把你的项目往分布式上面延展,而zookeeper能够解决大部分的分布式问题,互联网公司用的也不少。

zookeeper重点掌握:两阶段、三阶段提交、Paxos算法、zookeeper的应用场景(很是很是主要,第六章)、leader选举、watcher机制(最好读一下watcher机制的源码,公众号后面也会有讲解)。第五章是告诉你怎么使用zookeeper的,zookeeper有哪些用途,虽然面试不会直接考,可是必须得看,不然你学了zookeeper,你还不知道zookeeper是怎么使用的.....这里的意思是,第五章的那些API你不要去记也不必,你只要知道它有这么个用途,能决绝什么问题就能够了,具体的API说个名字或者名字说不出来也不要紧,面试官通常不会纠结与API的名字,更想提到你对某个知识点本身的理解。第五章那些知识点多是你项目面试问题的答案,由于zookeeper应用场景不少,可是往大了说就几个大类场景,看数必定要学会本身总结,本身总结的印象更深入。第五章大概看看浏览就好,最好跟着打一个zookeeper集群,本身亲手操做一下,也不难。

07 数据库

数据库只须要学:MySQL、Redis,对大数据有了解的建议看看HBASE(使用了zookeeper),其余数据库不要学。《MySql必知必会》用来入门,进阶MySQL推荐“高性能MySQL”,注意这本书好像并不适合初学者,建议先看MySQL视频。Redis看完视频后建议看看博客,Redis主要问:经常使用数据结构、集群、哨兵、用在哪些场合、解决了什么问题、持久化AOF和RDB。最后,简单的SQL必定要会,面试也有让手写简单的SQL,就SQL立案表层查询那些。

《Redis设计与实现》用来学习Redis.

08 书籍推荐补充

linux:“鸟哥的linux私房菜(基础学习篇)”。这本书口碑很好,适合初学者,通俗易懂。linux主要考察经常使用命令、文件权限、虚拟内存、软硬连接等等。在讲解这本书应该看哪几章以前,强烈建议读者本身安装一个linux虚拟机,教程的话找度娘:“ubuntu 虚拟机安装”或“centos虚拟机安装”,搜索上面那两个关键词便可。初学者推荐centos,由于推荐的那本书上是按照centos系统讲解的,因此安装centos能够给初学者减小一些没必要要的麻烦。安装linux虚拟机的时候可能会看到教程讲解配置虚拟机内存分区之类的,其实默认值就足够了,至少你不该该花费不少时间在纠结分区数量和分区大小上。网络上虚拟机安装的教程网络不少,也很简单。安装以后,再看书或者先看看书的第0、一、2章。至于第三章分区能够看看,可是安装虚拟机的时候使用默认值分区配置就好~,初学者没必要在上面纠结。

书的话主要看:第0,1,2,3章随便翻一翻、第5章是最基本使用命令、第6章权限是考察重点、第7章、第8章(ext文件系统了解便可,关注下磁盘经常使用命令)、第9章、第10和11章建议看、20.1小节能够看看,其余没提到的部分能够不看~

另外看书最好要结合linux虚拟机,看书的时候,本身跟着一块儿敲一遍命令,这样会更加深入,也可以很直观看到命令的做用。其实linux系统和windows系统同样,你们不要畏惧,用多了就行了啊,刚刚开始确定不太熟练,不用太担忧,主要是要多用,多动手操做。

计算机网络:“计算机网络(谢希仁)”。计算机网络最多见问题:OSI七层模型,每层干吗的或者五层协议栈每层做用、TCP和UDP的区别、拥塞控制和流量控制、TCP三次握手和四次挥手等。书的话,博主看的是第六版,因此就按照这个版原本推荐看哪些章节:前六章建议都看。第一章1.7是重点,其余的做为了解,预备知识,随便翻一翻,有个了解就好。第二章:2.一、2.二、2.4建议看,2.6做为补充就好。第三章:看前三节、后面两节能够不看。第四章:看前五小节和4.7小节。整个第五章都须要看,重点。 第六章:从6.1开始,看完6.4.3以及6.6,第六章主要是应用层协议,协议比较多,建议都翻一下,了解协议大体的用途功能就行了。

操做系统:博主是通讯专业,没有特地去看操做系统的书,身边同窗也没有特地去看的。面试问到相关的就坦然说本身对操做系统不是很熟,另外就是能够上网上找面经,操做系统常问的面试题,而后找到答案,本身弄懂就行了。书籍的话,周围师兄和同窗推荐“深刻理解计算机操做系统”或“现代操做系统”这两本书,书都很厚,博主当时实在看不过来,并且当时身边同窗也都没看这两本书,主要是要学的东西实在太多了,并且操做系统的书都很厚.....

基于上面两点,博主和身边的小伙伴们都没有专门去看操做系统相关的书。因此呢,也就给不了大家太多意见了,操做系统重不重要?确定重要,面试必问。要不要看?建议看,不鼓励博主这种冒险行为。

9 框架

《SpringMVC学习指南》:此书讲解了使用Springmvc部分的方法,和里面组件的使用方法等。对于初步的对SpringMVC的使用时颇有帮助的。

《看透SpringMVC》:此书是我SpringMVC源码时的辅助书籍,书里讲解了做者读源码的一些心得,对于新手读源码有必定的帮助。毕竟一开始读源码都以为很难,此书陪你走过这第一道难关,之后读源码就没有那么畏难了。

《Spring技术内幕》:师兄推荐的,我没读完,读着被绕进去了,并且此书是根据3.x的源码讲解的,如今Spring早已经更新到了5.x了,不少地方都已经变了,期待做者再版啊。

出自:
https://mp.weixin.qq.com/s/wT...

少部分由我进行添加和润色

以为文章不错的欢迎关注个人WX公众号: 程序员乔戈里
我是 百度后台开发工程师,哈工大计算机本硕,专一分享技术干货/编程资源/求职面试/成长感悟等,关注送3000G编程资源,免费下载CSDN资源。

相关文章
相关标签/搜索