2021 最新的Java 后端学习路线!凎!
Posted JavaGuide
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021 最新的Java 后端学习路线!凎!相关的知识,希望对你有一定的参考价值。
断断续续写了大半个月,终于把 2021 最新版的 Java 后端学习路线给整完了!
这篇文章可能是你看过最用心、最全面的 Java 后端学习路线。
为了完成这份学习路线,最近熬了很多次夜,因为琐碎的事情太多,很难有一块比较完整的时间专门用来做这件事。
其实,说这个并不是为了让大家同情我。相反,我觉得我在熬夜肝学习路线的时候是快乐的,因为这是我喜欢做的事情。
这篇文章不会涉及到学习方法以及学习网站的推荐,我不想让篇幅太长,内容太杂,我希望留着下一篇文章专门来谈一谈。
另外,这篇文章也不会涉及到计算机基础,也是为了保证内容的不至于太杂。计算基础相关的内容我也已经写好,预计会在五一同步给小伙伴们。
多说一句,对于编程初学者,我不太建议上来通过做项目学习。实践确实很重要,如果你没有编程基础的话,直接上手实战,很容易最后学个四不像。
建议你在学习编程的初期尽量多看一些优质视频。跟着视频一步一步走,可以让你少踩很多坑,学习编程的信心也会增加。
概览:
Java 基础
如果你之前没有学习过编程的话,我建议你可以看看视频教程。
像尚硅谷的 《 Java 基础教程系列》[2]和韩顺平老师的《零基础 30 天学会 Java》[3]就很不错。
学习过 Java 的朋友,大部分应该都看过韩老师的课程吧!韩老师毕业于清华大学,录制的视频课程质量都非常高。内容易懂,并且不失严谨。
韩老师的《零基础 30 天学会 Java》[4]系列不光会教你 Java 基础,还会帮你建立编程思想,让你知道学习了 Java 之后,你可以从事什么工作。
看视频的同时,配套一本好书也是非常有作用的。
《Head First Java》[5] 这本书在是入门 Java 的很不错的书籍 。
《Head First Java》这本书的内容很轻松有趣,可以说是我学习编程初期最喜欢的几本书之一了。同时,这本书也是我的 Java 启蒙书籍。我在学习 Java 的初期多亏了这本书的帮助,自己才算是跨进 Java 语言的大门。
我觉得我在 Java 这块能够坚持下来,这本书有很大的功劳。我身边的的很多朋友学习 Java 初期都是看的这本书。
有很多小伙伴就会问了:这本书适不适合编程新手阅读呢?
我个人觉得这本书还是挺适合编程新手阅读的,毕竟是 “Head First” 系列。
《Java 核心技术卷 1+卷 2》[6] 这两本书也非常不错。不过,这两本书的内容很多,全看的话比较费时间。我现在是把这两本书当做工具书来用,就比如我平时写文章的时候,碰到一些 Java 基础方面的问题,经常就翻看这两本来当做参考!
我当时在大学的时候就买了两本放在寝室,没事的时候就翻翻。建议有点 Java 基础之后再读,介绍的还是比较深入和全面的,非常推荐。
《Java 编程思想 》[7] 这本书被很多人称之为 Java 领域的圣经(感觉有点过了~~~)。不太推荐编程初学者阅读,有点劝退的味道,稍微有点基础后阅读更好。
我第一次看的时候还觉得有点枯燥,那时候还在上大二,看了 1/3 就没看下去了。
另外,Java 8 算是一个里程碑式的版本,现在一般企业还是用 Java 8 比较多。掌握 Java 8 的一些新特性比如 Lambda、Strean API 还是挺有必要的。这块的话,我推荐 《Java 8 实战》[8] 这本书。
学完 Java 基础之后,你可以用自己学的东西实现一个简单的 Java 程序,也可以尝试用 Java 解决一些编程问题,以此来将自己学到的东西付诸于实践。
不太建议学习 Java 基础的之后通过做游戏来巩固。为什么培训班喜欢通过这种方式呢?说白点就是为了找到你的 G 点。新手学习完 Java 基础后做游戏一般是不太现实的,还不如找一些简单的程序问题解决一下比如简单的算法题。
记得多总结!打好基础!把自己重要的东西都记录下来。API 文档放在自己可以看到的地方,以备自己可以随时查阅。为了能让自己写出更优秀的代码,《Effective Java》、《重构》 这两本书没事也可以看
并发
多线程这部分内容稍微会比较难以理解和实践。如果你刚学完 Java 基础的话,我建议你学习并发这部分内容的时候,可以先简单地了解一下基础知识比如线程和进程的对比。到了后面,你对于 Java 了解的更深了之后,再回来仔细看看这部分的内容。
下面是一些我比较推荐的书籍。
《Java 并发编程之美》[9]
这本书还是非常适合我们用来学习 Java 多线程的。这本书的讲解非常通俗易懂,作者从并发编程基础到实战都是信手拈来。
另外,这本书的作者加多自身也会经常在网上发布各种技术文章。这本书也是加多大佬这么多年在多线程领域的沉淀所得的结果吧!他书中的内容基本都是结合代码讲解,非常有说服力!
《实战 Java 高并发程序设计》[10]
这个是我第二本要推荐的书籍,比较适合作为多线程入门/进阶书籍来看。这本书内容同样是理论结合实战,对于每个知识点的讲解也比较通俗易懂,整体结构也比较清。
《深入浅出 Java 多线程》[11]
这本书是几位大厂的大佬开源的。
这几位作者为了写好《深入浅出 Java 多线程》这本书阅读了大量的 Java 多线程方面的书籍和博客,然后再加上他们的经验总结、Demo 实例、源码解析,最终才形成了这本书。
这本书的质量也是非常过硬!给作者们点个赞!这本书有统一的排版规则和语言风格、清晰的表达方式和逻辑。并且每篇文章初稿写完后,作者们就会互相审校,合并到主分支时所有成员会再次审校,最后再通篇修订了三遍。
《Java 并发实现原理:JDK 源码剖析》[12]
这本书是去年也就是 2020 年新出的,所以,现在知道的人还不是很多。
这本书主要是对 Java Concurrent 包中一些比较重要的源码进行了讲解,另外,像 JMM、happen-before、CAS 等等比较重要的并发知识这本书也都会一并介绍到。
不论是你想要深入研究 Java 并发,还是说要准备面试,你都可以看看这本书。
下面是我总结的一些关于并发的小问题,你可以拿来自测:
-
什么是线程和进程? 线程与进程的关系,区别及优缺点? -
说说并发与并行的区别? -
为什么要使用多线程呢? -
使用多线程可能带来什么问题?(内存泄漏、死锁、线程不安全等等) -
创建线程有哪几种方式?(a.继承 Thread 类;b.实现 Runnable 接口;c. 使用 Executor 框架;d.使用 FutureTask) -
说说线程的生命周期和状态? -
什么是上下文切换? -
什么是线程死锁?如何避免死锁? -
说说 sleep()
方法和wait()
方法区别和共同点? -
Java 内存模型(JMM)、重排序与 happens-before 原则了解吗? -
synchronized
关键字、volatile 关键字 -
ThreadLocal
有啥用(解决了什么问题)?怎么用?原理了解吗?内存泄露问题了解吗? -
为什么要用线程池? ThreadPoolExecutor
类的重要参数了解吗?ThreadPoolExecutor
饱和策略了解吗?线程池原理了解吗?几种常见的线程池了解吗?为什么不推荐使用FixedThreadPool
?如何设置线程池的大小? -
AQS 了解么?原理?AQS 常用组件: Semaphore
(信号量)、CountDownLatch
(倒计时器)CyclicBarrier
(循环栅栏) -
ReentrantLock
、ReentrantReadWriteLock
、StampedLock
(JDK8) -
CAS 了解么?原理? -
Atomic 原子类 -
并发容器: ConcurrentHashMap
、CopyOnWriteArrayList
、ConcurrentLinkedQueue
BlockingQueue
、ConcurrentSkipListMap
-
Future
和CompletableFuture
-
......
JVM
对于 Java 程序员来说,JVM 帮助我们做了很多事情比如内存管理、垃圾回收等等。在 JVM 的帮助下,我们的程序出现内存泄漏这些问题的概率相对来说是比较低的。但是,这并不代表我们在日常开发工作中不会遇到。万一你在工作中遇到了 OOM 问题,你至少要知道如何去排查和解决问题吧!
并且,就单纯从面试角度来说,JVM 是 Java 后端面试(大厂)中非常重要的一环。不论是应届还是社招,面试国内的一些大厂,你都会被问到很多 JVM 相关的问题(应届的话侧重理论,社招实践)。
只有搞懂了 JVM 才有可能真正把 Java 语言“吃透”。学习 JVM 这部分的内容,一定要注意要实战和理论结合。
书籍的话,《深入理解 Java 虚拟机》[13] 这本书是首先要推荐的。
这本书就一句话形容:国产书籍中的战斗机,实实在在的优秀! (真心希望国内能有更多这样的优质书籍出现!加油! 以上是关于2021 最新的Java 后端学习路线!凎!的主要内容,如果未能解决你的问题,请参考以下文章