Java面试题大全总共分为以下这十三个模块:
1. Java基础知识面试题
2. Java异常面试题
3. JVM面试题
4. Spring面试题
5. Spring MVC面试题
6. Spring Boot面试题
7. Spring Cloud面试题
8. MyBatis面试题
9. Redis面试题
10. Dubbo面试题
11. Tomcat面试题
12. ZooKeeper面试题
13. 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常见异常有哪些?