前言
本套 Java 面试题大全总共分为以下这十三个模块:
Java 基础知识面试题
Java 异常面试题
JVM 面试题
Spring 面试题
Spring MVC 面试题
Spring Boot 面试题
Spring Cloud 面试题
MyBatis 面试题
Redis 面试题
Dubbo 面试题
Tomcat 面试题
ZooKeeper 面试题
Netty 面试题
一、Java 基础知识面试题
1、Java 概述
何为编程?
什么是 Java?
jdk1.5 之后的三大版本?
JVM、JRE 和 JDK 的关系?
什么是跨平台性?原理是什么?
Java 语言有哪些特点?
什么是字节码?采用字节码的最大好处是什么?
什么是 Java 程序的主类?应用程序和小程序的主类有何不同?
Java 应用程序与小程序之间有那些差别?
Java 和 C++ 的区别?
Oracle JDK 和 OpenJDK 的对比?
2、基础语法
①. 数据类型
Java 有哪些数据类型
switch 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String 上
用最有效率的方法计算 2 乘以 8
Math.round (11.5) 等于多少?Math.round (-11.5) 等于多少
float f=3.4; 是否正确
short s1 = 1; s1 = s1 + 1; 有错吗?short s1 = 1; s1 += 1; 有错吗
②. 编码
Java 语言采用何种编码方案?有何特点?
③. 注释
什么 Java 注释
④. 访问修饰符
访问修饰符 public,private,protected, 以及不写(默认)时的区别
⑤. 运算符
& 和 && 的区别
⑥. 关键字
Java 有没有 goto
final 有什么用?
final finally finalize 区别
this 关键字的用法
super 关键字的用法
this 与 super 的区别
static 存在的主要意义
static 的独特之处
static 应用场景
static 注意事项
⑦. 流程控制语句
break ,continue ,return 的区别及作用
在 Java 中,如何跳出当前的多重嵌套循环
3、面向对象
①. 面向对象概述
面向对象和面向过程的区别
②. 面向对象三大特性
面向对象的特征有哪些方面
什么是多态机制?Java 语言是如何实现多态的?
面向对象五大基本原则是什么(可选)
③. 类与接口
抽象类和接口的对比
普通类和抽象类有哪些区别?
抽象类能使用 final 修饰吗?
创建一个对象用什么关键字?对象实例与对象引用有何不同?
④. 变量与方法
成员变量与局部变量的区别有哪些
在 Java 中定义一个不做事且没有参数的构造方法的作用
在调用子类构造方法之前会先调用父类没有参数的构造方法,其目的是?
一个类的构造方法的作用是什么?若一个类没有声明构造方法,改程序能正确执行吗?为什么?
构造方法有哪些特性?
静态变量和实例变量区别
静态变量与普通变量区别
静态方法和实例方法有何不同?
在一个静态方法内调用一个非静态成员为什么是非法的?
什么是方法的返回值?返回值的作用是什么?
⑤. 内部类
什么是内部类?
内部类的分类有哪些
内部类的优点
内部类有哪些应用场景
局部内部类和匿名内部类访问局部变量的时候,为什么变量必须要加上 final?
内部类相关,看程序说出运行结果
⑥. 重写与重载
构造器(constructor)是否可被重写(override)
重载(Overload)和重写(Override)的区别。重载的方法能否根据返回类型进行区分?
⑦. 对象相等判断
== 和 equals 的区别是什么
hashCode 与 equals (重要)
对象的相等与指向他们的引用相等,两者有什么不同?
⑧. 值传递
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递
为什么 Java 中只有值传递
值传递和引用传递有什么区别
⑨. Java 包
JDK 中常用的包有哪些
import java 和 javax 有什么区别
4、IO 流
java 中 IO 流分为几种?
BIO,NIO,AIO 有什么区别?
Files 的常用方法都有哪些?
5、反射
什么是反射机制?
反射机制优缺点
反射机制的应用场景有哪些?
Java 获取反射的三种方法
6、网络编程
7、常用 API
①. String 相关
字符型常量和字符串常量的区别
什么是字符串常量池?
String 是最基本的数据类型吗
String 有哪些特性
String 为什么是不可变的吗?
String 真的是不可变的吗?
是否可以继承 String 类
String str=“i” 与 String str=new String (“i”) 一样吗?
String s = new String (“xyz”); 创建了几个字符串对象
如何将字符串反转?
数组有没有 length () 方法?String 有没有 length () 方法
String 类的常用方法都有那些?
在使用 HashMap 的时候,用 String 做 key 有什么好处?
String 和 StringBuffer、StringBuilder 的区别是什么?String 为什么是不可变的
②. Date 相关
③. 包装类相关
自动装箱与拆箱
int 和 Integer 有什么区别
Integer a= 127 与 Integer b = 127 相等吗
8、常用工具类库
9、单元测试
10、日志
二、Java 异常面试题
1、Error 和 Exception 区别是什么?
2、运行时异常和一般异常 (受检异常) 区别是什么?
3、JVM 是如何处理异常的?
4、throw 和 throws 的区别是什么?
5、final、finally、finalize 有什么区别?
6、NoClassDefFoundError 和 ClassNotFoundException 区别?
7、try-catch-finally 中哪个部分可以省略?
8、try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗?
9、类 ExampleA 继承 Exception,类 ExampleB 继承 ExampleA?
10、常见的 RuntimeException 有哪些?
11、Java 常见异常有哪些?
三、JVM 面试题
1、Java 内存区域
说一下 JVM 的主要组成部分及其作用?
说一下 JVM 运行时数据区?
深拷贝和浅拷贝?
说一下堆栈的区别?
队列和栈是什么?有什么区别?
2、HotSpot 虚拟机对象探秘
对象的创建
为对象分配内存
处理并发安全问题
对象的访问定位
3、内存溢出异常
Java 会存在内存泄漏吗?请简单描述
4、垃圾收集器
简述 Java 垃圾回收机制
GC 是什么?为什么要 GC
垃圾回收的优点和原理。并考虑 2 种回收机制
垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?
Java 中都有哪些引用类型?
怎么判断对象是否可以被回收?
在 Java 中,对象什么时候可以被垃圾回收
JVM 中的永久代中会发生垃圾回收吗
说一下 JVM 有哪些垃圾回收算法?
说一下 JVM 有哪些垃圾回收器?
详细介绍一下 CMS 垃圾回收器?
新生代垃圾回收器和老年代垃圾回收器都有哪些?有什么区别?
简述分代垃圾回收器是怎么工作的?
5、内存分配策略
①. 简述 java 内存分配与回收策率以及 Minor GC 和 Major GC
对象优先在 Eden 区分配
大对象直接进入老年代
长期存活对象将进入老年代
6、虚拟机类加载机制
简述 java 类加载机制?
描述一下 JVM 加载 Class 文件的原理机制
什么是类加载器,类加载器有哪些?
说一下类装载的执行过程?
什么是双亲委派模型?
7、JVM 调优
说一下 JVM 调优的工具?
常用的 JVM 调优的参数都有哪些?
由于篇幅原因这里只给大家展示了前三个模块,剩下的那十个模块就不再一一展示了哈~
【这里想说,因为自己也走了很多弯路过来的,所以才下定决心整理,收集过程虽不易,但想到能帮助到一部分想成为Java架构师或者是想职业提升P5-P6-P7-P8的人,心里也是甜的!有需要的伙伴请点㊦方】↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓