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分。

44讲

特别推荐


你将获得

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

讲师介绍


课程介绍

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

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

专栏分为5大模块。

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

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


课程目录


适合人群

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


特别放送

免费领取福利


限时活动推荐


订阅须知

随机推荐

马骑顿儿童套装功能是否出色?用户评测真实曝光?

可心柔婴童乳霜纸好不好,入手推荐?用户口碑评测,参考指南!

秋田满满婴幼儿调味品评测值得买吗?来看看图文评测!

贝亲奶瓶奶嘴真的好吗?用户使用感受分享?

小东北星厨水饺-馄饨使用怎么样?网友评测点评分享?

康夫F9可靠性如何?真实评测体验曝光!