极客时间 Java核心技术36讲

课程介绍

Java 的诞生已经超过了 20 年。一直以来,Java 以其语法简单,开发者可以快速上手,适应众多领域,具有跨平台能力等特性,吸引了无数程序员学习和使用。基于 Java 优秀的特性和庞大的使用基础,各大公司对 Java 工程师的需求也是源源不断。

但作为面试者,想进入 BAT 并成长为一名高级 Java 工程师却没那么容易。虽然面试者具备了一定的工作年限要求,也长期使用 Java 语言进行开发,但面试时,面对刨根问底的提问,经常感觉 get 不到面试官的点,自己回答的也是马马虎虎,甚至无法完整描述自己开发过的系统或者使用过的技术,因此也就很难得到满意的面试结果。

那如何才能在 Java 面试中做到游刃有余呢?本专栏就从大厂面试考察的知识点和能力出发,精选出 36 道 Java 面试题,每期针对 1 道题目,不仅给出面试的典型回答和考点分析,还会剖析知识点,将其讲清讲透,让你彻底领悟题目背后所考察的能力,帮你梳理复习 Java 知识体系。

杨晓峰,Oracle 北京 Java 平台部门,首席工程师,OpenJDK Committer,从 JDK 8 开始参与了 JDK 的开发和测试工作,目前领导 Java 核心类库北京团队,主要负责前沿版本的核心类库新特性相关任务。专注于 Java 以及其他编程语言的新特性,尤其是在云计算等前沿领域的应用和演进。

适宜人群

有面试 / 晋升需求的 Java 程序员;希望夯实 Java 基础的程序员;团队 Leader;面试官。

专栏模块

专栏共 36 期,分为 5 大模块。

  • Java 基础:将围绕 Java 语言基本特性和机制,由点带面,帮你构建牢固的 Java 技术功底。
  • Java 进阶:主要将围绕并发编程、Java 虚拟机等领域展开,助你攻坚大厂 Java 面试的核心阵地。
  • Java 应用开发扩展:将聚焦数据库编程、主流开源框架、分布式开发等,让你掌握 Java 开发的十八般兵器。
  • Java 安全基础:帮助你理解常见的应用安全问题和处理方法,掌握如何写出符合大厂规范的安全代码。
  • Java 性能基础:帮助你掌握相关工具、方法论与基础实践。

本专栏更新时间为每周二、四、六,形式为图文 + 音频,共计 36 期。

课程目录

  • 开篇词 以面试题为切入点,有效提升你的Java内功
  • 第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讲 谈谈你知道的设计模式?
  • 第15讲 synchronized和ReentrantLock有什么区别呢?
  • 周末福利 谈谈我对Java学习和面试的看法
  • 第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等容器环境有哪些新问题?
  • 第31讲 你了解Java应用开发中的注入攻击吗?
  • 第32讲 如何写出安全的Java代码?
  • 第33讲 后台服务出现明显“变慢”,谈谈你的诊断思路?
  • 第34讲 有人说“Lambda能让Java程序慢30倍”,你怎么看?
  • 第35讲 JVM优化Java代码时都做了什么?
  • 周末福利 一份Java工程师必读书单
  • 第36讲 谈谈MySQL支持的事务隔离级别,以及悲观锁和乐观锁的原理和应用场景?
  • 第37讲 谈谈Spring Bean的生命周期和作用域?
  • 第38讲 对比Java标准NIO类库,你知道Netty是如何实现更高性能的吗?

更多教程

教程不断整理更新中,以上截图仅供参考,如需了解更多视频教程的详细信息请到如下地址查看:

教程分类说明https://itvideos.github.io/categories/

获取方式

关于教程、获取方式、温馨提示

坚持原创技术分享,您的支持将鼓励我继续创作!