你将获得什么?
- Java 核心技术原理剖析;
- 36 道 Java 必考面试题详解;
- 一套完整的 Java 知识体系;
- 从面试官角度洞悉技术面试考点。
课程介绍
Java 的诞生超过了 20 年。基于 Java 优秀的特性和庞大的用户使用基础,各大公司对 Java 工程师的需求也是源源不断。而 Java 就是 Oracle 公司的,相信内部人的专栏能带给你与众不同的视角。
其实,网上流传的大部分“Java 面试、笔试题”,解答大都点到即止,甚至有的连准确性都值得商榷,缺乏系统性的分析与举一反三的讲解,让你很难甄别出各种技术的核心与要点,找到高效归纳自己知识体系的方法。
而这个专栏,在讲解知识点的同时,还梳理出一个完整的 Java 开发技术能力图谱,帮你真正将基础夯实。不论是准备面试、还是想进阶 Java,都可以通过这个专栏,切实提升你的 Java 技能。
专栏分为 5 大模块。
- Java 基础:将围绕 Java 语言基本特性和机制,由点带面,帮你构建牢固的 Java 技术功底。
- Java 进阶:主要将围绕并发编程、Java 虚拟机等领域展开,助你攻坚大厂 Java 面试的核心阵地。
- Java 应用开发扩展:将聚焦数据库编程、主流开源框架、分布式开发等,让你掌握 Java 开发的十八般兵器。
- Java 安全基础:帮助你理解常见的应用安全问题和处理方法,掌握如何写出符合大厂规范的安全代码。
- Java 性能基础:帮助你掌握相关工具、方法论与基础实践。
下面是专栏目录,每篇文章都会精讲一道面试题。这些题都是杨晓峰老师从几百道大厂 Java 面试真题里筛选出来的经典。
课程目录
开篇词 (1讲)
开篇词 | 以面试题为切入点,有效提升你的Java内功
模块一 Java基础 (14讲)
第1讲 | 谈谈你对Java平台的理解?
第2讲 | Exception和Error有什么区别?
第3讲 | 谈谈final、finally、 finalize有什么不同?
第4讲 | 强引用、软引用、弱引用、幻象引用有什么区别?
第5讲 | String、StringBuffer、StringBuilder有什么区别?
第6讲 | 动态代理是基于什么原理?
第7讲 | int和Integer有什么区别?
第8讲 | 对比Vector、ArrayList、LinkedList有何区别?
第9讲 | 对比Hashtable、HashMap、TreeMap有什么不同?
第10讲 | 如何保证集合是线程安全的? ConcurrentHashMap如何实现高效地线程安全?
第11讲 | Java提供了哪些IO方式? NIO如何实现多路复用?
第12讲 | Java有几种文件拷贝方式?哪一种最高效?
第13讲 | 谈谈接口和抽象类有什么区别?
第14讲 | 谈谈你知道的设计模式?
模块二 Java进阶 (16讲)
第15讲 | synchronized和ReentrantLock有什么区别呢?
第16讲 | synchronized底层如何实现?什么是锁的升级、降级?
第17讲 | 一个线程两次调用start()方法会出现什么情况?
第18讲 | 什么情况下Java程序会产生死锁?如何定位、修复?
第19讲 | Java并发包提供了哪些并发工具类?
第20讲 | 并发包中的ConcurrentLinkedQueue和LinkedBlockingQueue有什么区别?
第21讲 | Java并发类库提供的线程池有哪几种? 分别有什么特点?
第22讲 | AtomicInteger底层实现原理是什么?如何在自己的产品代码中应用CAS操作?
第23讲 | 请介绍类加载过程,什么是双亲委派模型?
第24讲 | 有哪些方法可以在运行时动态生成一个Java类?
第25讲 | 谈谈JVM内存区域的划分,哪些区域可能发生OutOfMemoryError?
第26讲 | 如何监控和诊断JVM堆内和堆外内存使用?
第27讲 | Java常见的垃圾收集器有哪些?
第28讲 | 谈谈你的GC调优思路?
第29讲 | Java内存模型中的happen-before是什么?
第30讲 | Java程序运行在Docker等容器环境有哪些新问题?
模块三 Java安全基础 (2讲)
第31讲 | 你了解Java应用开发中的注入攻击吗?
第32讲 | 如何写出安全的Java代码?
模块四 Java性能基础 (3讲)
第33讲 | 后台服务出现明显“变慢”,谈谈你的诊断思路?
第34讲 | 有人说“Lambda能让Java程序慢30倍”,你怎么看?
第35讲 | JVM优化Java代码时都做了什么?
模块5 Java应用开发扩展 (4讲)
第36讲 | 谈谈MySQL支持的事务隔离级别,以及悲观锁和乐观锁的原理和应用场景?
第37讲 | 谈谈Spring Bean的生命周期和作用域?
第38讲 | 对比Java标准NIO类库,你知道Netty是如何实现更高性能的吗?
第39讲 | 谈谈常用的分布式ID的设计方案?Snowflake是否受冬令时切换影响?
周末福利 (2讲)
周末福利 | 谈谈我对Java学习和面试的看法
周末福利 | 一份Java工程师必读书单
结束语 (2讲)
结束语 | 技术没有终点
结课测试 | Java核心技术的这些知识,你真的掌握了吗?
讲师介绍
杨晓峰,前 Oracle 北京 Java 平台部门,首席工程师,OpenJDK Committer,从 JDK 8 开始参与了 JDK 的开发和测试工作,曾领导 Java 核心类库北京团队,主要负责前沿版本的核心类库新特性相关任务。专注于 Java 以及其他编程语言的新特性,尤其是在云计算等前沿领域的应用和演进。