知识屋:更实用的电脑技术知识网站
所在位置:首页 > 文化

自学快2年Java还是辣鸡,还要继续么?

发表时间:2022-03-23来源:网络

你自学了这么长时间的Java,还是没有深入系统的学会Java的话,你可以看看我的答案!

系统的Java学习路线。

多说一句,对于编程初学者,我不太建议上来通过做项目学习。实践确实很重要,如果你没有编程基础的话,直接上手实战,很容易最后学个四不像。

建议你在学习编程的初期尽量多看一些优质视频。跟着视频一步一步走,可以让你少踩很多坑,学习编程的信心也会增加。

概览:

Java 基础

如果你之前没有学习过编程的话,我建议你可以看看视频教程。

像尚硅谷的 《 Java 基础教程系列》[2]和韩顺平老师的《零基础 30 天学会 Java》[3]就很不错。

学习过 Java 的朋友,大部分应该都看过韩老师的课程吧!韩老师毕业于清华大学,录制的视频课程质量都非常高。内容易懂,并且不失严谨。

韩老师的《零基础 30 天学会 Java》[4]系列不光会教你 Java 基础,还会帮你建立编程思想,让你知道学习了 Java 之后,你可以从事什么工作。

看视频的同时,配套一本好书也是非常有作用的。

《Head First Java》[5] 这本书在是入门 Java 的很不错的书籍 。

这本书是几位大厂的大佬开源的。

这几位作者为了写好《深入浅出 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 、ConcurrentSkipListMapFuture 和 CompletableFuture......

JVM

对于 Java 程序员来说,JVM 帮助我们做了很多事情比如内存管理、垃圾回收等等。在 JVM 的帮助下,我们的程序出现内存泄漏这些问题的概率相对来说是比较低的。但是,这并不代表我们在日常开发工作中不会遇到。万一你在工作中遇到了 OOM 问题,你至少要知道如何去排查和解决问题吧!

并且,就单纯从面试角度来说,JVM 是 Java 后端面试(大厂)中非常重要的一环。不论是应届还是社招,面试国内的一些大厂,你都会被问到很多 JVM 相关的问题(应届的话侧重理论,社招实践)。

只有搞懂了 JVM 才有可能真正把 Java 语言“吃透”。学习 JVM 这部分的内容,一定要注意要实战和理论结合。

书籍的话,《深入理解 Java 虚拟机》[13] 这本书是首先要推荐的。

这本书就一句话形容:国产书籍中的战斗机,实实在在的优秀! (真心希望国内能有更多这样的优质书籍出现!加油! )

这本书的第三版去年年底已经出来了,新增了很多实在的内容比如 ZGC 等新一代 GC 的原理剖析。目前豆瓣上是 9.6 的高分, 不 我就不多说了!

不论是你面试还是你想要在 Java 领域学习的更深,你都离不开这本书籍。这本书不光要看,你还要多看几遍,里面都是干货。这本书里面还有一些需要自己实践的东西,我建议你也跟着实践一下。

类似的书籍还有 《实战 Java 虚拟机》[14]《虚拟机设计与实现:以 JVM 为例》[15] ,这两本都是非常不错的!

如果你对实战比较感兴趣,想要自己动手写一个简易的 JVM 的话,可以看看 《自己动手写 Java 虚拟机》[16] 这本书。

书中的代码是基于 Go 语言实现的,搞懂了原理之后,你可以使用 Java 语言模仿着写一个,也算是练练手!如果你当前没有能力独立使用 Java 语言模仿着写一个的话,你也可以在网上找到很多基于 Java 语言版本的实现,比如《zachaxy 的手写 JVM 系列》[17]

这本书目前在豆瓣有 8.2 的评分,我个人觉得张秀宏老师写的挺好的,这本书值得更高的评分。

另外,R 大在豆瓣发的《从表到里学习 JVM 实现》[18]这篇文章中也推荐了很多不错的 JVM 相关的书籍,推荐小伙伴们去看看。

最后了,给你一些干货的东西吧,有的人说喜欢看视频学习Java,那么今天我就给大家放出来这套的快速入门学习Java的教程,让你可以在最快的速度内学会Java!

收藏

热门推荐

  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜