栈长整理了 2022 年最新、最全的 Java 面试题,题目涉及 Java 基础、集合、多线程、IO、分布式、Spring全家桶、MyBatis、Dubbo、缓存、消息队列、Linux…等等。
Java 基础
1、面向对象编程有哪些特征?
2、JDK 与 JRE 的区别是什么?
3、Java 有哪几种基本数据类型?
4、== 和 equals 比较有什么区别?
5、public,private,protected,默认的区别?
6、this 和 super 有什么区别?
7、short s1 = 1; s1 += 1;有错吗?
8、short s1 = 1; s1 = s1 + 1;有错吗?
9、float n = 1.8 有错吗?
10、i++ 和 ++i 的区别?
11、while 和 do while 有啥区别?
12、如何跳出 Java 中的循环?
13、如何跳出 Java 中的多层嵌套循环?
14、& 和 && 的区别?
15、2 * 8 最有效率的计算方法是什么?
16、数组有没有 length 方法?String 呢?
17、怎么理解值传递和引用传递?
18、Java 到底是值传递还是引用传递?
19、一个 ".java" 源文件的类有什么限制?
20、Java 中的注释有哪些写法?
21、static 关键字有什么用?
22、static 变量和普通变量的区别?
23、static 可以修饰局部变量么?
24、final 关键字有哪些用法?
25、final、finally、finalize 有什么区别?
26、void 和 Void 有什么区别?
27、为什么 byte 取值范围为 -128~127?
28、char 类型可以存储中文汉字吗?
29、重载和重写有什么区别?
30、构造器可以被重写和重载吗?
31、main 方法可以被重写和重载吗?
32、私有方法能被重载或者重写吗?
33、Java 中的断言(assert)是什么?
34、Java 异常有哪些分类?
35、Error 和 Exception 有什么区别?
36、Java 中常见的异常有哪些?
37、Java 中常见的运行时异常有哪些?
38、运行时异常与受检查异常有什么区别?
39、什么时候会发生空指针异常?
40、你知道有哪些避免空指针的方法?
41、throw 和 throws 的区别?
42、try-catch-finally 中哪个部分可以省略?
43、try 里面 return,finally还会执行吗?
44、int 和 Integer 有什么区别?
45、什么是包装类型?有什么用?
46、什么是自动装厢、拆厢?
47、你怎么理解 Java 中的强制类型转换?
48、你怎么理解 Java 中的自动类型转换?
49、你怎么理解 Java 中的类型提升?
50、switch 是否能用在 long 上?
51、switch 是否能用在 String 上?
52、switch case 支持哪几种数据类型?
53、String 属于基础的数据类型吗?
54、String 类的常用方法都有那些?
55、String 的底层实现是怎样的?
56、String 是可变的吗?为什么?
57、String 类可以被继承吗?
58、String 真的是不可变的吗?
59、String 字符串如何进行反转?
60、String 字符串如何实现编码转换?
61、String 有没有长度限制?是多少?
62、为什么不能用 + 拼接字符串?
63、StringBuffer 和 StringBuilder 的区别?
64、StringJoiner 有什么用?
65、Java 所有类的祖先类是哪个?
66、Object 类有哪些常用的方法?
67、普通类和抽象类有什么区别?
68、静态内部类和普通内部类有什么区别?
69、静态方法可以直接调用非静态方法吗?
70、静态变量和实例变量有什么区别?
71、内部类可以访问其外部类的成员吗?
72、接口和抽象类有什么区别?
73、接口是否可以继承接口?
74、接口里面可以写方法实现吗?
75、抽象类必须要有抽象方法吗?
76、抽象类能使用 final 修饰吗?
77、抽象类是否可以继承具体类?
78、抽象类是否可以实现接口?
79、怎么查看一个 Java 类的字节码?
80、Java 中的 UUID 是什么?
81、Java 类初始化顺序是怎样的?
82、为什么成员变量命名不建议用 isXXX?
83、hashCode 有什么用?
84、hashCode 和 identityHashCode 的区别?
85、什么是 hash 冲突?
86、equals 和 hashCode 的区别和联系?
87、两个对象 equals 相等, hashCode 也相等么?
88、两个对象 hashCode 相等,equals 也相等么?
89、为什么重写 equals 就要重写 hashCode 方法?
90、Java 常用的元注解有哪些?
91、Java 泛型中的 T、R、K、V、E 分别指什么?
92、Java 金额计算怎么避免精通丢失?
93、Java 语法糖是什么意思?
94、transient 关键字有什么用?
95、如何实现对象克隆?
96、对象克隆浅拷贝和深拷贝的区别?
97、Java 反射机制有什么用?
98、Java 反射机制的优缺点?
99、Java 反射机制 Class 类有哪些常用方法?
100、Java 反射可以访问私有方法吗?
101、Java 反射可以访问私有变量吗?
102、Class.forName 和 ClassLoader 的区别?
103、什么是宏变量和宏替换?
104、什么是逃逸分析?
105、什么是伪共享?有什么解决方案?
106、Java 有没有 goto 关键字?
107、Java 中有没有指针的概念?
108、Java 中的 classpath 环境变量作用?
109、Math.round(1.5) 等于多少?
110、Math.round(-1.5) 等于多少?
111、Java 8 都新增了哪些新特性?
112、Java 8 中的 Lambda 表达式有啥用?
113、Java 8 中的 Optional 类有什么用?
114、Java 8 中的 Stream 有啥用?
115、Java 8 中的@Repeatable 注解有什么用?
116、Java 8 中的方法引用是指什么?
117、Java 8 中的函数式编程怎么用?
118、怎么创建一个 Stream 流?
119、Oracle JDK 和 OpenJDK 有啥区别?
Java 集合
1、说说常见的集合有哪些?
2、哪些集合类可对元素的随机访问?
3、Comparable 和 Comparator 接口的区别?
4、Collection 和 Collections 的区别?
5、Enumeration 和 Iterator 接口的区别?
6、集合使用泛型有什么优点?
7、List、Set、Map 之间的区别是什么?
8、为什么 Map 接口不继承 Collec