Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >科班和非科班都适用的 Java 学习路线

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

作者头像
乔戈里
发布于 2019-03-02 11:06:24
发布于 2019-03-02 11:06:24
1.1K0
举报
文章被收录于专栏:Java那些事Java那些事

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

#00 推荐 《head first Java

head first系列一直口碑不错,这本书更是适合java入门,先看完这本书,然后看下面的这些。

或者看《疯狂java讲义》,两者选一本入门即可

01 java基础

java核心卷I:java核心卷II可以买也可以不买。java核心卷I只看前9章,其他不用看。身边同学都认为这本书不适合初学者,但是如果你之前看过java学习视频,那么这本书很适合你。这本书主要让你对java知识有个系统的学习,建立起自己的知识体系结构。系统的体系结构在求职面试显得尤为主要,不仅仅是指java基础。所以大家一定要学会总结,零散的知识碎片对面试十分不利。

02 多线程、并发

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

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

03 java虚拟机

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

04 数据结构

大话数据结构:这本书通俗易懂,第5章可以不看,其余建议看。第五章,怎么说呢,我和周围同学面试都没被问到过KMP算法,笔试中可能会遇到,但是KMP算法可以解决的问题DP大概率也可以解决,而且KMP算法不简单,对自己要求高的同学可以看看。第七章图,图在面试中基本不会问,但是在笔试中大概率会碰到,所以还得看。但是放心面试中几乎很少问到图的。

如果觉得这是C的可以看 《算法》第四版

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

05 设计模式

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

学习完一种设计模式后,最好能够找到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 数据库

数据库只需要学:MySQLRedis,对大数据有了解的建议看看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、1、2章。至于第三章分区可以看看,但是安装虚拟机的时候使用默认值分区配置就好~,初学者不必在上面纠结。

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

另外看书最好要结合linux虚拟机,看书的时候,自己跟着一起敲一遍命令,这样会更加深刻,也能够很直观看到命令的作用。其实linux系统和windows系统一样,大家不要畏惧,用多了就好了啊,刚刚开始肯定不太熟练,不用太担心,主要是要多用,多动手操作。

计算机网络:“计算机网络(谢希仁)”。计算机网络最常见问题:OSI七层模型,每层干嘛的或者五层协议栈每层作用、TCPUDP的区别、拥塞控制和流量控制、TCP三次握手和四次挥手等。书的话,博主看的是第六版,所以就按照这个版本来推荐看哪些章节:前六章建议都看。第一章1.7是重点,其他的作为了解,预备知识,随便翻一翻,有个了解就好。第二章:2.1、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/wTvXOb1M5P1A3pS5V7mILQ

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

觉得文章不错的欢迎关注我的WX公众号:程序员乔戈里

我是百度后台开发工程师,哈工大计算机本硕,专注分享技术干货/编程资源/求职面试/成长感悟等,关注送3000G编程资源,免费下载CSDN资源。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
BAT等大厂Android面试书单和知识点清单Java知识Android知识java设计模式知识算法和数据结构知识计算机系统知识数据库知识计算机网络知识Android开源项目知识
Java知识 java是Android开发的基础,在BAT的初面中,会涉及到比较多的java基础知识,所以比较重要,下面我介绍的书籍内容是由浅到深。 1.Thinking in java:这本书被称为Java的三大圣经之一,虽然书比较厚,里面的例子也比较冗长。但是如果细细去翻阅并且把例子都敲一遍的话,那么我想你的java基础会变得非常扎实。 2.Effective java:很多人会把Thinking in java 和这本书进行比较,但是我觉得两本书的侧重点还是不同的,TIJ侧重的是java基础,而
何时夕
2018/05/02
1.2K0
周末再聊聊Java学习路线
我相信这些读者或多或少都有一些 Java 基础,但由于看不到全貌,学了一段时间很容易迷失。所以我在寻思着能不能写一个学习的地图或者路线,让读者能知道下一步该学什么,自己离大厂的 offer还有多远的距离。
Java3y
2020/12/31
7650
周末再聊聊Java学习路线
计算机科班Java开发好书推荐
这些书全部都是我看过的,大部分都至少读了一遍到两遍,且还整理了笔记,少部分是挑的重点章节看的。
乔戈里
2019/01/07
7680
共2600页!又一份神级的面试手册面世~
前两天有个小伙伴在后台留言,最近的面试越来越难了,尤其是技术面,考察得越来越细,越来越底层,庆幸的是最终顺利找到了工作。 一般技术面试官都会通过自己的方式去考察程序员的技术功底与基础理论知识 比如
芋道源码
2022/06/29
8680
共2600页!又一份神级的面试手册面世~
八股文,吐了
现在计算机专业是越来越卷了,在 2016 年那会,我朋友说他去培训班培训了 6 个月,就能找到一份月薪近万的工作,培训的内容也不怎么难,就是语言基础=》框架=〉做几个项目,之后就能上岗干活了。
帅地
2022/01/13
1.2K0
八股文,吐了
Java学习必备书籍推荐终极版!
很早就想把书单更新一下了,昨晚加今天早上花了几个时间对之前的书单进行了分类和补充完善。虽是终极版,但一定还有很多不错的 Java 书籍我没有添加进去,会继续完善下去。希望这篇文章对你有帮助,不要再无书可看。
乔戈里
2019/05/13
1.6K0
给Java程序猿们推荐一些值得一看的好书
本文介绍了如何利用Java编程实现一个简单的RESTful API,包括定义API端点和请求方法,处理请求和响应,以及使用Spring Boot和Kotlin构建Web应用程序。同时,还向读者推荐了一些值得阅读的书籍,以帮助读者进一步提高自己的Java编程技能。
Java后端工程师
2017/12/14
2.4K0
给学妹的 Java 学习路线
大家好,这篇文章主要是讲解下如何自学 Java,这个问题有很多粉丝私信问过,今天又有直系学妹问我如何学习 Java?
武培轩
2020/04/21
5110
给学妹的 Java 学习路线
Linux C++ 后台开发:进BAT的学习路线
链接:C++ & Linux 后端开发入BAT学习路径 - 力扣(LeetCode)
GPT4算法工程师
2024/03/11
3130
Linux C++ 后台开发:进BAT的学习路线
BATJTMD,大厂招聘,都招什么样Java程序员?
最近总看到类似这样的问题,也有一些工作3年左右的小伙伴问小傅哥,该怎么进大厂。其实你说 Java 学多少可以找到工作,主要看你想在哪个城市找、找什么样的公司、找什么样的待遇。因你的要求高低不同,你遇到的面试要求也会随之改变。
小傅哥
2020/11/19
3.8K0
BATJTMD,大厂招聘,都招什么样Java程序员?
C++ & Linux后端进BAT的学习路线
C++,相对别的语言学习门槛会高一点,主要原因是学习路线不明确,没有像Java那么多资料。但「在大厂里」C++岗位不比java少多少。想介绍下自己学习C++的路线,以及自己的看书方式,供参考。Cpper雄起!!!
AI算法与图像处理
2021/03/13
2.2K0
Java Web和Java后端开发的学习路线
Web开发: 主要是Web开发相关的内容,包括HTML/CSS/JS(前端页面)、Servlet/JSP(J2EE)以及Mysql(数据库)相关的知识。它们的学习顺序应该是从前到后,因此最先学习的应该是HTML/CSS/JS(前端页面),这部分内容你可以去上面的那个runoob网站上找。
全栈程序员站长
2022/09/08
7930
Java工程师学习指南 中级篇
最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好。原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我写的文章都是站在Java后端的全局上进行思考和总结的,忽略了很多小白们的感受,而很多朋友都需要更加基础,更加详细的学习路线。
程序员黄小斜
2019/03/10
5610
《深入理解 Kotlin 协程》这书该怎么读?
鼠年进入了尾声,想想过去的这一年还是发生了很多事情:终于有了回家的高铁,可刚回家没几天就又匆匆踏上了返京的旅途;写了一本书;做了一次线下的大会分享;做了两次线上的分享;上线了一套课程;买了 * * *;在公司也终于起了一个跨平台(Android + Linux)的项目,体验了一把 Kotlin MPP 等等,话说我司今年的阳光有点儿刺眼啊 :)。想了想,这一年也过得挺充实。
bennyhuo
2021/03/03
1.1K2
《深入理解 Kotlin 协程》这书该怎么读?
牛逼!Java 从入门到精通,超全汇总版
其实学习 Java 学到什么程度算是精通,这个其实没有盖棺定论的,也不是说你拿个年薪几十万的 offer 就可以自诩精通了。另外,每当面试的时候简历上填个精通 offer 的家伙我就觉得很搞笑,没有几个熬得过开出门左拐的命运。但是我认为,如果市面上这些资料、书籍你都啃的差不多,你能在所有的 Java 程序员中跻身前 0.1% 的话,你就可以达到”精通” 这个阶段了,因为没人比你强了,你当然是精通了。
全栈程序员站长
2022/07/02
2.4K0
牛逼!Java 从入门到精通,超全汇总版
阿里技术专家耗时三天刷完《深入JVM虚拟机 第三版》是什么感觉
今天分享一个最近刷完的一本书《深入JVM虚拟机 第三版》,一共花了三天的时间刷完,我相信应该很多人还没看过,毕竟七百多页,坚持看完真不容易,在这里分享一下自己刷完的一些经验,以及怎么去刷这本书。
愿天堂没有BUG
2022/10/28
5270
阿里技术专家耗时三天刷完《深入JVM虚拟机 第三版》是什么感觉
两个月拿到N个offer,看看我是如何做到的
前言: 北京-三年经验-Java,在金三银四这两个月期间(在五月初还去面试了几家,主要是三四月份期面试剧居多),我跳槽面试,前前后后我面试十五家公司,最终,成功拿到了offer。现在已经正常上班,所以,现在才有时间静下心来把前面两个多月的面试经历做一个总结,来聊聊当时我面试15家大厂的感受以及总结。(文章有点长,请读者耐心观看,谢谢~~~~) 面试经历 1、阿里面试 第一轮:电话初面 第二轮:技术面谈【技术职位尽量避免多谈管理上的工作】 第三轮:高管复试 第四轮:HR最后确认 一面:首先确认对阿里的意向度(
Java高级架构
2018/07/20
7190
寒冬也挡不住进大厂的决心,Android面试完整知识架构,面试需要掌握的都在这里!
年年寒冬,年年也挡不住一个Android程序员追求大厂的决心。想要进入大厂,我们需要掌握哪些知识点呢?这里,我为大家梳理了一个整体的知识架构。整体包括Java、Android、算法、网络等,并且我也在相应知识点下推荐了与该知识点相关的书籍与博客。希望大家阅读之后,能帮助大家完善与整理自己的知识体系。祝大家早日进入自己理想的公司~~
Android技术干货分享
2021/05/11
1.1K0
寒冬也挡不住进大厂的决心,Android面试完整知识架构,面试需要掌握的都在这里!
《Java 面经手册》PDF,全书 417 页 11.5 万字,完稿&发版!
持续坚持原创输出,点击蓝字关注我吧 作者:小傅哥 博客:https://bugstack.cn ❝沉淀、分享、成长,让自己和他人都能有所收获!? ❞ 目录 一、前言 二、简介 1. 适合人群 2.
喜欢天文的pony站长
2021/03/05
1.9K0
《Java 面经手册》PDF,全书 417 页 11.5 万字,完稿&发版!
你不可错过的Java学习资源清单
学习Java和其他技术的资源其实非常多,但是我们需要取其精华去其糟粕,选择那些最好的,最适合我们的,同时也要由浅入深,先易后难。基于这样的一个标准,我在这里为大家提供一份Java的学习资源清单。
Java技术江湖
2019/10/15
5120
推荐阅读
相关推荐
BAT等大厂Android面试书单和知识点清单Java知识Android知识java设计模式知识算法和数据结构知识计算机系统知识数据库知识计算机网络知识Android开源项目知识
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档