Skip to content

JDK 面试题

本节汇总 JDK 各版本相关的经典面试题。

Java 8 相关

Q: Lambda 表达式和匿名内部类的区别?

区别Lambda匿名内部类
this 引用指向外层类指向匿名类本身
编译方式invokedynamic生成新类
变量作用域可访问 effectively final可访问任何变量

Q: Stream 和 Collection 的区别?

java
List<String> list = Arrays.asList("a", "b");
list.stream()
    .filter(s -> s.length() > 0)
    .map(String::toUpperCase);

Java 11 相关

Q: var 关键字的局限性?

java
var list = new ArrayList<String>();
var stream = list.stream();

Java 17 相关

Q: Sealed Classes 的作用?

java
sealed class Shape permits Circle, Rectangle {}

Java 21 相关

Q: 虚拟线程和线程池的区别?

对比线程池虚拟线程
数量受限(数十到数百)极多(数百万)
创建成本极低
适用场景CPU 密集型IO 密集型

小结

理解原理,对比分析,有使用经验更佳。

基于 VitePress 构建