Java 核心技术面试精讲
前 Oracle 首席工程师带你修炼 Java 内功
杨晓峰  前 Oracle 首席工程师
飙升榜 第10名
专栏
已完结·共 44 讲
|
12.6w 人已学
|
收藏
Exception 又分为可检查(checked)异常和不检查(unchecked)异常,可检查异常在源代码里必须显式地进行捕获处理,这是编译期检查的一部分。
来自:第2讲 | Exception和Error有什么区别?
21 人划过
开关原则(Open-Close, Open for extension, close for modification),设计要对扩展开放,对修改关闭。换句话说,程序设计应保证平滑的扩展性,尽量避免因为新增同类功能而修改已有实现,这样可以少产出些回归(regression)问题。
来自:第13讲 | 谈谈接口和抽象类有什么区别?
9 人划过
实现动态代理的方式很多,比如 JDK 自身提供的动态代理,就是主要利用了上面提到的反射机制。还有其他的实现方式,比如利用传说中更高性能的字节码操作机制,类似 ASM、cglib(基于 ASM)、Javassist 等。
来自:第6讲 | 动态代理是基于什么原理?
8 人划过
StringBuffer 实现的一些细节,它的线程安全是通过把各种修改数据的方法都加上 synchronized 关键字实现的,非常直白。其实,这种简单粗暴的实现方式,非常适合我们常见的线程安全类实现,不必纠结于 synchronized 性能之类的,有人说“过早优化是万恶之源”,考虑可靠性、正确性和代码可读性才是大多数应用开发最重要的因素。
来自:第5讲 | String、StringBuffer、StringBuilder有什么区别?
8 人划过
而 NIO 则是利用了单线程轮询事件的机制,通过高效地定位就绪的 Channel,
来自:第11讲 | Java提供了哪些IO方式? NIO如何实现多路复用?
6 人划过
我注意到有一些观点,认为通过逃逸分析,JVM 会在栈上分配那些不会逃逸的对象,这在理论上是可行的,但是取决于 JVM 设计者的选择。据我所知,Oracle Hotspot JVM 中并未这么做,这一点在逃逸分析相关的文档里已经说明,所以可以明确所有的对象实例都是创建在堆上
来自:第25讲 | 谈谈JVM内存区域的划分,哪些区域可能发生OutOfMemoryError?
6 人划过
,任何时候最多有 nThreads 个工作线程是活动的。
来自:第21讲 | Java并发类库提供的线程池有哪几种? 分别有什么特点?
5 人划过
CMS(Concurrent Mark Sweep) GC,基于标记 - 清除(Mark-Sweep)算法,设计目标是尽量减少停顿时间,这一点对于 Web 等反应时间敏感的应用非常重要,一直到今天,仍然有很多系统使用 CMS GC。但是,CMS 采用的标记 - 清除算法,存在着内存碎片化问题,所以难以避免在长时间运行等情况下发生 full GC,导致恶劣的停顿。另外,既然强调了并发(Concurrent),CMS 会占用更多 CPU 资源,并和用户线程争抢。
来自:第27讲 | Java常见的垃圾收集器有哪些?
5 人划过
对某类型资源如网络通信的消耗进行统计,重点要求是,不开启时必须是零开销,而不是低开销
来自:第24讲 | 有哪些方法可以在运行时动态生成一个Java类?
3 人划过
切面编程落实到软件工程其实是为了更好地模块化,而不仅仅是为了减少重复代码。通过 AOP 等机制,我们可以把横跨多个不同模块的代码抽离出来,让模块本身变得更加内聚,进而业务开发者可以更加专注于业务逻辑本身。从迭代能力上来看,我们可以通过切面的方式进行修改或者新增功能,这种能力不管是在问题诊断还是产品能力扩展中,都非常有用。
来自:第37讲 | 谈谈Spring Bean的生命周期和作用域?
3 人划过
*精彩内容为该课程各文章中划线次数最多的内容
免费试读
讲师

杨晓峰

前 Oracle 首席工程师

杨晓峰,前 Oracle 北京 Java 平台部门,首席工程师,OpenJDK Committer,从 JDK 8 开始参与了 JDK 的开发和测试工作,曾领导 Java 核心类库北京团队,主要负责前沿版本的核心类库新特性相关任务。专注于 Java 以及其他编程语言的新特...查看更多
编辑推荐
包含这门课的学习路径

Java工程师

29门课程 154.5w人学习
看过的人还看了
深入拆解 Java 虚拟机
郑雨迪
Oracle 高级研究员,计算机博士

40讲 | 87384 人已学习

¥59¥129
Netty 源码剖析与实战
傅健
Netty 源码贡献者、Cisco 高级软件工程师

60讲 | 32896 人已学习

¥59¥129
深入拆解 Tomcat & Jetty
李号双
eBay 技术主管

45讲 | 38844 人已学习

¥68¥199
如何设计一个秒杀系统
许令波
前阿里巴巴高级技术专家

10讲 | 56177 人已学习

¥39
微服务架构实战 160 讲
杨波
拍拍贷研发总监、资深架构师、微服务技术专家

171讲 | 48712 人已学习

¥98¥299
代码精进之路
范学雷
前 Oracle 首席软件工程师,Java SE 安全组成员,OpenJDK 评审成员

48讲 | 38204 人已学习

¥59¥129