Java核心技术面试精讲

Java核心技术面试精讲 / 前Oracle首席工程师带你修炼Java内功

杨晓峰 (前Oracle首席工程师)
  • 课程目录
  • 课程介绍
  • 在线阅读:开篇词 | 以面试题为切入点,有效提升你的Java内功

    大公司的面试,基本都会以Java为切入点,考评一个面试者的技术能力。

  • 第1讲 | 谈谈你对Java平台的理解?

    从你接触Java开发到现在,你对Java最直观的印象是什么呢?

  • 第2讲 | Exception和Error有什么区别?

    世界上存在永远不会出错的程序吗?也许这只会出现在程序员的梦中。

  • 第3讲 | 谈谈final、finally、 finalize有什么不同?

    Java语言有很多看起来很相似,但是用途却完全不同的语言要素。

  • 第4讲 | 强引用、软引用、弱引用、幻象引用有什么区别?

    在Java语言中,除了原始数据类型的变量,其他所有都是所谓的引用类型。

  • 第5讲 | String、StringBuffer、StringBuilder有什么区别?

    今天我会聊聊日常使用的字符串。

  • 第6讲 | 动态代理是基于什么原理?

    如何分类Java语言呢?通常认为,Java是静态的强类型语言,但是因为提供了类似反射等机制,也具备了部分动态类型语言的能力。

  • 第7讲 | int和Integer有什么区别?

    Java虽然号称是面向对象的语言,但是原始数据类型仍然是重要的组成元素,所以在面试中,经常考察原始数据类型和包装类等Java语言特性。

  • 第8讲 | 对比Vector、ArrayList、LinkedList有何区别?

    针对通用场景的需求,Java提供了强大的集合框架,大大提高了开发者的生产力。

  • 第9讲 | 对比Hashtable、HashMap、TreeMap有什么不同?

    HashMap作为框架中使用频率最高的类型之一,它本身以及相关类型自然也是面试考察的热点。

  • 第10讲 | 如何保证集合是线程安全的? ConcurrentHashMap如何实现高效地线程安全?

    之前两讲介绍了Java集合框架的典型容器类,它们绝大部分都不是线程安全的,仅有的线程安全实现,在性能方面也远不尽如人意。

  • 第11讲 | Java提供了哪些IO方式? NIO如何实现多路复用?

    IO一直是软件开发中的核心部分之一,伴随着海量数据增长和分布式系统的发展,IO扩展能力愈发重要。

  • 第12讲 | Java有几种文件拷贝方式?哪一种最高效?

    我在上一讲提到,NIO不止是多路复用,NIO 2也不只是异步IO,今天我们来看看Java IO体系中其他不可忽略的部分。

  • 第13讲 | 谈谈接口和抽象类有什么区别?

    面向对象提供的基本机制,对于提高开发、沟通等各方面效率至关重要。考察面向对象也是面试中的常见一环,下面我来聊聊面向对象设计基础。

  • 第14讲 | 谈谈你知道的设计模式?

    设计模式是人们为软件开发中相同表征的问题,抽象出的可重复利用的解决方案。

  • 第15讲 | synchronized和ReentrantLock有什么区别呢?

    软件并发已经成为现代软件开发的基础能力,考察并发基本功也成为各个公司面试Java工程师的必选项。

  • 第16讲 | synchronized底层如何实现?什么是锁的升级、降级?

    今天我们将深入了解synchronize底层机制,分析其他锁实现和应用场景。

  • 第17讲 | 一个线程两次调用start()方法会出现什么情况?

    今天我们来深入聊聊线程,相信大家对于线程这个概念都不陌生,它是Java并发的基础元素,理解、操纵、诊断线程是Java工程师的必修课。

  • 第18讲 | 什么情况下Java程序会产生死锁?如何定位、修复?

    今天,我会介绍一些日常开发中类似线程死锁等问题的排查经验,希望不仅能在面试时,包括在日常工作中也能对你有所帮助。

  • 第19讲 | Java并发包提供了哪些并发工具类?

    我们一起回顾了线程、锁等各种并发编程的基本元素,相信经过前面的热身,我们能够更快地理解Java并发包。

  • 第20讲 | 并发包中的ConcurrentLinkedQueue和LinkedBlockingQueue有什么区别?

    Java标准库提供了非常多的线程安全队列,很容易混淆。

  • 第21讲 | Java并发类库提供的线程池有哪几种? 分别有什么特点?

    利用线程池技术来提高系统资源利用效率,并简化线程管理,已经是非常成熟的选择。

  • 第22讲 | AtomicInteger底层实现原理是什么?如何在自己的产品代码中应用CAS操作?

    在今天这一讲中,我来分析一下并发包内部的组成,一起来看看各种同步结构、线程池等,是基于什么原理来设计和实现的。

  • 第23讲 | 请介绍类加载过程,什么是双亲委派模型?

    Java通过引入字节码和JVM机制,提供了强大的跨平台能力,理解Java的类加载机制是深入Java开发的必要条件,也是个面试考察热点。

  • 第24讲 | 有哪些方法可以在运行时动态生成一个Java类?

    有了上一讲的类加载的学习基础后,我想是时候该进行深入分析动态代理和字节码操作方面的技术了。

  • 第25讲 | 谈谈JVM内存区域的划分,哪些区域可能发生OutOfMemoryError?

    懂得JVM内部的内存结构、工作机制,是设计高扩展性应用和诊断运行时问题的基础,也是Java工程师进阶的必备能力。

  • 第26讲 | 如何监控和诊断JVM堆内和堆外内存使用?

    今天我将结合JVM参数、工具等方面,进一步分析JVM内存结构,包括外部资料相对较少的堆外部分。

  • 第27讲 | Java常见的垃圾收集器有哪些?

    Java的垃圾收集机制仍然在不断的演进中,这当然也是面试的热点。

  • 第28讲 | 谈谈你的GC调优思路?

    今天我会选取新版JDK中的默认G1 GC作为重点进行详解,并且我会从调优实践的角度,分析典型场景和调优思路。

  • 第29讲 | Java内存模型中的happen-before是什么?

    Java语言在设计之初就引入了线程的概念,这既带来了强大、灵活的多线程机制,也带来了线程安全等令人混淆的问题。

  • 第30讲 | Java程序运行在Docker等容器环境有哪些新问题?

    Java对Docker等容器环境的支持也在不断增强,自然地,Java在容器场景的实践也逐渐在面试中被涉及。

  • 第31讲 | 你了解Java应用开发中的注入攻击吗?

    安全是软件开发领域永远的主题,Java作为软件开发的基础平台之一,可以说是无处不在,自然也就成为安全攻击的首要目标之一。

  • 第32讲 | 如何写出安全的Java代码?

    今天我们将一起探讨更多Java开发中可能影响到安全的场合,这一讲我将侧重于Java开发者的角度谈代码安全,而不是讲广义的安全风险。

  • 第33讲 | 后台服务出现明显“变慢”,谈谈你的诊断思路?

    掌握基本的性能知识和技能,往往是日常工作的需要,能否定位和解决性能问题也是对你知识、技能和能力的检验。

  • 第34讲 | 有人说“Lambda能让Java程序慢30倍”,你怎么看?

    在实际工作中,我们需要定量的、可对比的方法,去评估Java应用性能,来判断其是否能够符合业务支撑目标。

  • 第35讲 | JVM优化Java代码时都做了什么?

    系统地理解Java代码运行过程,有利于在实践中进行更进一步的调优。

  • 第36讲 | 谈谈MySQL支持的事务隔离级别,以及悲观锁和乐观锁的原理和应用场景?

    做好数据操作,不仅仅需要对Java语言相关框架的掌握,更需要对各种数据库自身体系结构的理解。

  • 第37讲 | 谈谈Spring Bean的生命周期和作用域?

    今天,我将补充个别Spring相关的典型面试问题,并谈谈其部分设计细节。

  • 第38讲 | 对比Java标准NIO类库,你知道Netty是如何实现更高性能的吗?

    在基础NIO之上,Netty构建了更加易用、高性能的网络框架,广泛应用于互联网、游戏、电信等各种领域。

  • 第39讲 | 谈谈常用的分布式ID的设计方案?Snowflake是否受冬令时切换影响?

    严格来说,分布式并不算是Java领域,而是一个单独的大主题,但确实也会在Java技术岗位面试中被涉及。

  • 周末福利 | 谈谈我对Java学习和面试的看法

    你好,我是杨晓峰。今天是周末,我们稍微放松一下来聊聊“Java核心技术”之外的内容。

  • 周末福利 | 一份Java工程师必读书单

    今天这期周末福利,我整理了几本自己在学习和使用Java时用过的参考书,把它们分享与你。

  • 结束语 | 技术没有终点

    选择Java语言的开发者是幸运的,经历了如此漫长的发展后,我们依然有幸可以见证“廉颇老矣”的Java再次加速成长“焕发青春”。

  • 结课测试 | Java核心技术的这些知识,你真的掌握了吗?

    为了帮助你检验自己的学习效果,我特别给你准备了一套结课测试题。这套测试题共有10道题目,满分100分。

特别推荐


你将获得

  • Java 核心技术原理剖析;
  • 36 道 Java 必考面试题详解;
  • 一套完整的 Java 知识体系;
  • 从面试官角度洞悉技术面试考点。

讲师介绍


课程介绍

其实,网上流传的大部分“Java 面试、笔试题”,解答大都点到即止,甚至有的连准确性都值得商榷,缺乏系统性的分析与举一反三的讲解,让你很难甄别出各种技术的核心与要点,找到高效归纳自己知识体系的方法。

而这个专栏,在讲解知识点的同时,还梳理出一个完整的 Java 开发技术能力图谱,帮你真正将基础夯实。不论是准备面试、还是想进阶 Java,都可以通过这个专栏,切实提升你的 Java 技能。

专栏分为5大模块。

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

下面是专栏目录,每篇文章都会精讲一道面试题。这些题都是杨晓峰老师从几百道大厂 Java 面试真题里筛选出来的经典。


课程目录


适合人群

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


特别放送

免费领取福利


限时活动推荐


订阅须知

随机推荐

CHARLES&KEITH22冬新品CK2-40671449子母链条大容量软托特包女包...

乐拖抱抱熊PU挡水防滑棉拖鞋男卡通休闲家居保暖厚底舒适踩屎感家...

乐拖抱抱熊PU挡水防滑棉拖鞋男卡通休闲家居保暖厚底舒适踩屎感家...

真维斯重磅卫裤男秋冬加绒加厚裤子保暖束脚裤宽松大码男生休闲裤...

长虹J7投影仪家用使用怎么样?新手小白求助!

秋田满满溶豆婴儿6个月婴儿零食酸奶溶豆原味宝宝零食溶豆豆18g使...