正版资源极客时间付费-专栏课-杨晓峰-Java 核心技术面试精讲(完结)
杨晓峰这套《Java 核心技术面试精讲》在极客时间上属于完结较早、但被反复翻出来重看的一门。它的定位不是从零讲语法,而是把一个已经写过 Java、能跑起 Spring 项目的开发者,重新按「运行时 + 并发 + 性能」三条线拉一遍知识结构。GetFromCode 这边整理的是这套专栏的完整资料,方便
杨晓峰这套《Java 核心技术面试精讲》在极客时间上属于完结较早、但被反复翻出来重看的一门。它的定位不是从零讲语法,而是把一个已经写过 Java、能跑起 Spring 项目的开发者,重新按「运行时 + 并发 + 性能」三条线拉一遍知识结构。GetFromCode 这边整理的是这套专栏的完整资料,方便边看边对照源码和实际项目。
这门课到底在讲什么
从目录线索和课程定位看,内容主体集中在 JVM 内存模型、并发编程、性能优化这几块。这几块恰好是面试里最容易问到「为什么」而不是「是什么」的地方:对象在堆里怎么分配、GC 什么时候触发、synchronized 和 Lock 的取舍、线程池参数怎么定、线上 CPU 飙高怎么定位。杨晓峰本人的背景偏基础架构,讲这些内容时更愿意把设计动机和取舍讲清楚,而不是甩一段 API 说明。
周末福利部分附了书单和学习方法,属于轻量补充,真正有复用价值的还是正文里对核心机制的拆解。资料包里的音频、HTML、PDF 并存,适合不同场景:通勤听音频建立印象,坐下来读 HTML 对照细节,PDF 书单当索引去补原著。
技术栈与知识结构
课程围绕的是标准 Java 技术栈,没有绑定某个具体框架版本,所以复用性比较强。可以粗略拆成三层来看:
- 运行时层:JVM 内存区域划分、对象生命周期、垃圾回收算法与常见收集器、类加载机制。这一层决定你排查 OOM、GC 频繁时的思路。
- 并发层:JMM、volatile、synchronized 的锁升级、AQS、线程池、并发容器。这一层是面试区分度最高的部分,也是线上问题的高发区。
- 性能与工程层:如何定位瓶颈、如何做压测、代码层面的优化习惯。这一层偏经验,靠单看视频吸收有限,得配合自己项目里的场景去套。
三层之间不是孤立的。比如讨论线程池拒绝策略时,往上会牵到内存分配和 GC,往下会牵到业务侧的降级方案。课程的价值就在于把这些关联点讲透,让你在面试里能顺着一个点展开一条线,而不是背零散结论。
怎么用这份资料更有效
如果只是把音频从头听到尾,收获会打折扣。更实际的做法是:先看一讲的标题,自己回忆一遍相关机制,遇到讲不清的地方再去翻对应的 HTML 正文。碰到课程里提到的类,比如ThreadPoolExecutor、ConcurrentHashMap,直接打开 JDK 源码对着看,课程讲的是「为什么这样设计」,源码是「具体怎么实现」,两者对照着过一遍,记忆会牢很多。
书单部分可以当延伸阅读的入口,但不必一次全买。挑自己当前项目里正在用的方向,比如手头在做高并发接口,就先补并发那块的书,边读边把课程里的结论拿去验证。资料包里的内容更适合当索引和提纲,而不是当唯一信源。
适合谁、不适合谁
适合已经能独立写业务代码、但对 JVM 和并发只停留在「知道概念」阶段的开发者,也适合准备跳槽、需要把知识重新组织成可表达结构的人。不适合完全零基础——课程默认你写过 Java、配过环境、跑过项目,直接听并发和 GC 部分容易卡住。
另外要提醒一点:面试类内容本身会随时间折旧,某些收集器默认值和版本行为已经变化。所以把它当成理解机制的脚手架,而不是背标准答案的小抄。遇到和当前 JDK 版本不一致的地方,以官方文档和实际代码为准,课程帮你建立的是判断框架,不是最终结论。
整体上,这算是一份结构清晰、适合拿来对照实践的参考材料。配合自己项目里的真实场景去看,比单纯刷一遍视频要值。
极客时间付费-专栏课-杨晓峰-Java 核心技术面试精讲(完结)
Java核心技术面试精讲,助你轻松应对面试
编辑点评
深入浅出解析Java核心技术,涵盖内存模型、并发、性能优化等,适合有Java基础想提升面试技能的学习者。
⭐ 编辑推荐
本课程由杨晓峰老师主讲,系统讲解Java核心技术,包括内存模型、并发编程、性能优化等,适合准备面试或提升技术水平的Java开发者。
✨ 课程亮点
课程目录
07-周末福利 (2讲)5 条
- 周末福利丨一份Java工程师必读书单【公众号:CunWorkNotes】.pdf [3.7 MB]
- 周末福利丨谈谈我对Java学习和面试的看法.html [7.2 MB]
- 周末福利丨谈谈我对Java学习和面试的看法.mp3 [3.4 MB]
- 周末福利丨一份Java工程师必读书单.html [2.7 MB]
- 周末福利丨谈谈我对Java学习和面试的看法.pdf [15.0 MB]
03-模块二 Java进阶 (16讲)49 条
- 第29讲丨Java内存模型中的happen-before是什么?.html [1.6 MB]
- 第22讲丨AtomicInteger底层实现原理是什么?如何在自己的产品代码中应用CAS操作?.mp3 [5.1 MB]
- 第28讲丨谈谈你的GC调优思路?.mp3 [6.8 MB]
- 第26讲丨如何监控和诊断JVM堆内和堆外内存使用?.html [1.3 MB]
- 第25讲丨谈谈JVM内存区域的划分,哪些区域可能发生OutOfMemoryError?.pdf [1.8 MB]
- 第26讲丨如何监控和诊断JVM堆内和堆外内存使用?.pdf [1.5 MB]
- 第29讲丨Java内存模型中的happen-before是什么?.pdf [2.0 MB]
- 第23讲丨请介绍类加载过程,什么是双亲委派模型?.html [1.8 MB]
- 第20讲丨并发包中的ConcurrentLinkedQueue和LinkedBlockingQueue有什么区别?.mp3 [4.0 MB]
- 第22讲丨AtomicInteger底层实现原理是什么?如何在自己的产品代码中应用CAS操作?.pdf [1.6 MB]
- 第19讲丨Java并发包提供了哪些并发工具类?【公众号:CunWorkNotes】.pdf [1.7 MB]
- 说明【公众号:CunWorkNotes】.zip [484.0 B]
- 第23讲丨请介绍类加载过程,什么是双亲委派模型?.pdf [2.2 MB]
- 第17讲丨一个线程两次调用start()方法会出现什么情况?【公众号:CunWorkNotes】.mp3 [4.7 MB]
- 第24讲丨有哪些方法可以在运行时动态生成一个Java类?【公众号:CunWorkNotes】.pdf [1.8 MB]
- 第15讲丨synchronized和ReentrantLock有什么区别呢?【公众号:CunWorkNotes】.html [1.3 MB]
- 第30讲丨Java程序运行在Docker等容器环境有哪些新问题?.mp3 [4.8 MB]
- 第24讲丨有哪些方法可以在运行时动态生成一个Java类?.mp3 [4.0 MB]
- 第20讲丨并发包中的ConcurrentLinkedQueue和LinkedBlockingQueue有什么区别?.html [1.7 MB]
- 第16讲丨synchronized底层如何实现?什么是锁的升级、降级?.pdf [1.8 MB]
- 第22讲丨AtomicInteger底层实现原理是什么?如何在自己的产品代码中应用CAS操作?.html [1.5 MB]
- 第18讲丨什么情况下Java程序会产生死锁?如何定位、修复?.pdf [2.2 MB]
- 第27讲丨Java常见的垃圾收集器有哪些?.html [1.2 MB]
- 第18讲丨什么情况下Java程序会产生死锁?如何定位、修复?.html [1.8 MB]
- 第28讲丨谈谈你的GC调优思路?.pdf [1.7 MB]
- 第21讲丨Java并发类库提供的线程池有哪几种?分别有什么特点?.mp3 [5.8 MB]
- 第17讲丨一个线程两次调用start()方法会出现什么情况?.pdf [2.2 MB]
- 第18讲丨什么情况下Java程序会产生死锁?如何定位、修复?.mp3 [4.4 MB]
- 第15讲丨synchronized和ReentrantLock有什么区别呢?.mp3 [4.4 MB]
- 第24讲丨有哪些方法可以在运行时动态生成一个Java类?.html [1.3 MB]
- 第15讲丨synchronized和ReentrantLock有什么区别呢?.pdf [1.8 MB]
- 第19讲丨Java并发包提供了哪些并发工具类?.mp3 [4.8 MB]
- 第23讲丨请介绍类加载过程,什么是双亲委派模型?.mp3 [6.4 MB]
- 第26讲丨如何监控和诊断JVM堆内和堆外内存使用?.mp3 [5.8 MB]
- 第19讲丨Java并发包提供了哪些并发工具类?.html [1.4 MB]
- 第30讲丨Java程序运行在Docker等容器环境有哪些新问题?.html [1.2 MB]
- 第21讲丨Java并发类库提供的线程池有哪几种?分别有什么特点?.pdf [2.3 MB]
- 第28讲丨谈谈你的GC调优思路?.html [1.4 MB]
- 第30讲丨Java程序运行在Docker等容器环境有哪些新问题?.pdf [1.7 MB]
- 第27讲丨Java常见的垃圾收集器有哪些?.pdf [1.4 MB]
- 第27讲丨Java常见的垃圾收集器有哪些?.mp3 [5.7 MB]
- 第20讲丨并发包中的ConcurrentLinkedQueue和LinkedBlockingQueue有什么区别?.pdf [1.8 MB]
- 第17讲丨一个线程两次调用start()方法会出现什么情况?.html [1.8 MB]
- 第21讲丨Java并发类库提供的线程池有哪几种?分别有什么特点?.html [2.3 MB]
- 第29讲丨Java内存模型中的happen-before是什么?.mp3 [4.7 MB]
- 第25讲丨谈谈JVM内存区域的划分,哪些区域可能发生OutOfMemoryError?.html [1.3 MB]
- 第16讲丨synchronized底层如何实现?什么是锁的升级、降级?.html [1.6 MB]
- 第25讲丨谈谈JVM内存区域的划分,哪些区域可能发生OutOfMemoryError?.mp3 [4.9 MB]
- 第16讲丨synchronized底层如何实现?什么是锁的升级、降级?.mp3 [5.1 MB]
05-模块四 Java性能基础 (3讲)9 条
- 第34讲丨有人说“Lambda能让Java程序慢30倍”,你怎么看?.pdf [2.3 MB]
- 第33讲丨后台服务出现明显“变慢”,谈谈你的诊断思路?【公众号:CunWorkNotes】.mp3 [4.8 MB]
- 第35讲丨JVM优化Java代码时都做了什么?【公众号:CunWorkNotes】.html [1.2 MB]
- 第33讲丨后台服务出现明显“变慢”,谈谈你的诊断思路?.html [1.4 MB]
- 第33讲丨后台服务出现明显“变慢”,谈谈你的诊断思路?.pdf [2.0 MB]
- 第35讲丨JVM优化Java代码时都做了什么?.mp3 [4.7 MB]
- 第34讲丨有人说“Lambda能让Java程序慢30倍”,你怎么看?.html [2.0 MB]
- 第34讲丨有人说“Lambda能让Java程序慢30倍”,你怎么看?.mp3 [5.3 MB]
- 第35讲丨JVM优化Java代码时都做了什么?.pdf [1.4 MB]
02-模块一 Java基础 (14讲)43 条
- 第06讲丨动态代理是基于什么原理?.pdf [1.9 MB]
- 第07讲丨int和Integer有什么区别?.pdf [1.7 MB]
- 第11讲丨Java提供了哪些IO方式?NIO如何实现多路复用?.html [1.8 MB]
- 第14讲丨谈谈你知道的设计模式?.html [1.7 MB]
- 第02讲丨Exception和Error有什么区别?.html [1.4 MB]
- 第08讲丨对比Vector、ArrayList、LinkedList有何区别?.html [1.4 MB]
- 第04讲丨强引用、软引用、弱引用、幻象引用有什么区别?.pdf [1.7 MB]
- 第01讲丨谈谈你对Java平台的理解?【公众号:CunWorkNotes】.mp3 [3.8 MB]
- 第08讲丨对比Vector、ArrayList、LinkedList有何区别?【公众号:CunWorkNotes】.mp3 [5.9 MB]
- 说明.zip [484.0 B]
- 第04讲丨强引用、软引用、弱引用、幻象引用有什么区别?.html [1.5 MB]
- 第03讲丨谈谈final、finally、finalize有什么不同?.pdf [1.8 MB]
- 第09讲丨对比Hashtable、HashMap、TreeMap有什么不同?.mp3 [5.6 MB]
- 第10讲丨如何保证集合是线程安全的?ConcurrentHashMap如何实现高效地线程安全?.mp3 [5.0 MB]
- 第05讲丨String、StringBuffer、StringBuilder有什么区别?【公众号:CunWorkNotes】.mp3 [5.5 MB]
- 第06讲丨动态代理是基于什么原理?.html [1.3 MB]
- 第13讲丨谈谈接口和抽象类有什么区别?【公众号:CunWorkNotes】.mp3 [5.2 MB]
- 第05讲丨String、StringBuffer、StringBuilder有什么区别?.html [1.5 MB]
- 第05讲丨String、StringBuffer、StringBuilder有什么区别?.pdf [1.7 MB]
- 第14讲丨谈谈你知道的设计模式?.pdf [1.8 MB]
- 第04讲丨强引用、软引用、弱引用、幻象引用有什么区别?.mp3 [4.8 MB]
- 第11讲丨Java提供了哪些IO方式?NIO如何实现多路复用?.mp3 [5.4 MB]
- 第10讲丨如何保证集合是线程安全的?ConcurrentHashMap如何实现高效地线程安全?.html [1.3 MB]
- 第12讲丨Java有几种文件拷贝方式?哪一种最高效?.html [1.5 MB]
- 第10讲丨如何保证集合是线程安全的?ConcurrentHashMap如何实现高效地线程安全?.pdf [1.5 MB]
- 第07讲丨int和Integer有什么区别?.html [1.6 MB]
- 第12讲丨Java有几种文件拷贝方式?哪一种最高效?.mp3 [5.8 MB]
- 第02讲丨Exception和Error有什么区别?.mp3 [5.2 MB]
- 第11讲丨Java提供了哪些IO方式?NIO如何实现多路复用?.pdf [1.9 MB]
- 第03讲丨谈谈final、finally、finalize有什么不同?.html [1.3 MB]
- 第08讲丨对比Vector、ArrayList、LinkedList有何区别?.pdf [1.6 MB]
- 第07讲丨int和Integer有什么区别?.mp3 [5.2 MB]
- 第13讲丨谈谈接口和抽象类有什么区别?.html [1.4 MB]
- 第14讲丨谈谈你知道的设计模式?.mp3 [3.9 MB]
- 第02讲丨Exception和Error有什么区别?.pdf [1.7 MB]
- 第03讲丨谈谈final、finally、finalize有什么不同?.mp3 [5.2 MB]
- 第09讲丨对比Hashtable、HashMap、TreeMap有什么不同?.html [1.6 MB]
- 第01讲丨谈谈你对Java平台的理解?.pdf [1.5 MB]
- 第01讲丨谈谈你对Java平台的理解?.html [1.2 MB]
- 第13讲丨谈谈接口和抽象类有什么区别?.pdf [1.8 MB]
- 第12讲丨Java有几种文件拷贝方式?哪一种最高效?.pdf [1.7 MB]
- 第09讲丨对比Hashtable、HashMap、TreeMap有什么不同?.pdf [2.1 MB]
- 第06讲丨动态代理是基于什么原理?.mp3 [5.2 MB]
04-模块三 Java安全基础 (2讲)6 条
- 第32讲丨如何写出安全的Java代码?.pdf [2.0 MB]
- 第32讲丨如何写出安全的Java代码?【公众号:CunWorkNotes】.mp3 [4.8 MB]
- 第31讲丨你了解Java应用开发中的注入攻击吗?.html [1.1 MB]
- 第31讲丨你了解Java应用开发中的注入攻击吗?.pdf [1.3 MB]
- 第32讲丨如何写出安全的Java代码?.html [1.4 MB]
- 第31讲丨你了解Java应用开发中的注入攻击吗?.mp3 [4.6 MB]
06-模块5 Java应用开发扩展 (4讲)(1)11 条
- 第39讲丨谈谈常用的分布式ID的设计方案?Snowflake是否受冬令时切换影响?.mp3 [4.7 MB]
- 第39讲丨谈谈常用的分布式ID的设计方案?Snowflake是否受冬令时切换影响?【公众号:CunWorkNotes】.html [1.9 MB]
- 第37讲丨谈谈SpringBean的生命周期和作用域?.pdf [1.4 MB]
- 第38讲丨对比Java标准NIO类库,你知道Netty是如何实现更高性能的吗?.mp3 [4.3 MB]
- 第38讲丨对比Java标准NIO类库,你知道Netty是如何实现更高性能的吗?.pdf [1.7 MB]
- 第38讲丨对比Java标准NIO类库,你知道Netty是如何实现更高性能的吗?.html [1.2 MB]
- 第36讲丨谈谈MySQL支持的事务隔离级别,以及悲观锁和乐观锁的原理和应用场景?.mp3 [4.3 MB]
- 第37讲丨谈谈SpringBean的生命周期和作用域?.mp3 [4.6 MB]
- 第39讲丨谈谈常用的分布式ID的设计方案?Snowflake是否受冬令时切换影响?.pdf [1.9 MB]
- 第36讲丨谈谈MySQL支持的事务隔离级别,以及悲观锁和乐观锁的原理和应用场景?(1).pdf [1.6 MB]
- 第36讲丨谈谈MySQL支持的事务隔离级别,以及悲观锁和乐观锁的原理和应用场景?.html [1.6 MB]
06-模块5 Java应用开发扩展 (4讲)1 条
- 第37讲丨谈谈SpringBean的生命周期和作用域?.html [1.2 MB]
01-开篇词 (1讲)3 条
- 00丨开篇词丨以面试题为切入点,有效提升你的Java内功.pdf [2.0 MB]
- 00丨开篇词丨以面试题为切入点,有效提升你的Java内功.mp3 [2.8 MB]
- 00丨开篇词丨以面试题为切入点,有效提升你的Java内功.html [1.5 MB]
08-结束语 (1讲)3 条
- 结束语丨技术没有终点.pdf [1.9 MB]
- 结束语丨技术没有终点.html [1.5 MB]
- 结束语丨技术没有终点.mp3 [1.7 MB]
适合人群
- Java开发者
- 面试求职者
- 技术爱好者
🎯 学习收获
- 掌握Java核心技术
- 提升面试技巧
- 优化代码性能
🎉 祝您学习愉快!




