2021年最全最新常见Java面试题整理大全,内容持续更新!

面向对象编程有哪些特征?
JDK、JRE、JVM 之间有什么关系?
如何使用命令行编译和运行 Java 文件?
说说常用的集合有哪些?
进程与线程之间有什么区别?
什么是 JVM?
什么是事务?
MySQL 事务都有哪些特性?
MyBatis 是什么框架?
什么是 Redis?
什么是 Spring 框架?
什么是 Spring MVC 框架?
什么是 Spring Boot 框架?
什么是 Spring Cloud 框架?
Spring Cloud 框架有哪些优缺点?
什么是消息队列?
消息队列有哪些应用场景?
什么是 Linux 操作系统?
什么是数据结构?
什么是设计模式?
什么是 Zookeeper?
应用服务 8080 端口被意外占用如何解决?
什么是 Dubbo 框架?
什么是 Maven?
应用层中常见的协议都有哪些?
Java 中的关键字都有哪些?
Java 中基本类型都有哪些?
为什么 Map 接口不继承 Collection 接口?
Collection 和 Collections 有什么区别?
堆和栈的概念,它们有什么区别和联系?
Class.forName 和 ClassLoader 有什么区别?
为什么要使用设计模式?
为什么 String 类型是被 final 修饰的?
​final 关键字的基本用法?
如何理解 final 关键字?
ArrayList 和 LinkedList 有什么区别?
HashMap 和 HashTable 有什么区别?
线程的生命周期包括哪几个阶段?
Thread 类中的 start() 和 run() 方法有什么区别?
notify 和 notifyAll 有什么区别?
什么是乐观锁,什么是悲观锁?
Java 中 volatile 关键字有什么作用?
Spring 中常用的注解包含哪些?
Spring MVC 中常用的注解包含哪些?
为什么说 MyBatis 是半自动 ORM 映射?
main 方法中 args 参数是什么含义?
什么是高内聚、低耦合?
Spring Boot 框架的优缺点?
Spring Boot 核心注解都有哪些?
Spring Boot 的目录结构是怎样的?
Spring Boot 需要独立的容器运行吗?
Spring Boot 运行方式有哪几种?
Spring Boot 自动配置原理是什么?
Spring Boot 热部署有几种方式?
MyBatis 中 $ 和 # 传参有什么区别?
MyBatis 如何实现分页?
MyBatis 如何获取自动生成的主键id?
TCP 和 UDP 协议有什么区别?
Integer 类型值是 0 ,为什么 != ‘’ 无法执行?
MySQL 的索引有哪些设计原则?
为什么要使用自增 ID 作为主键?
Linux 如何切换用户?
su root 和 su - root 有什么区别?
Linux 怎么切换目录?
Dubbo 支持哪些协议,推荐用哪种?
Dubbo 默认使用什么注册中心,还有别的选择吗?
为什么 Redis 需把数据放到内存中? 
Zookeeper 怎么保证主从节点的状态同步?
Dubbo 停止更新了吗?
为什么选用 Maven 进行构建?
Maven 规约是什么?
Maven 常用命令有哪些?
什么是链式存储结构?
说说几种常见的排序算法和复杂度?
Java 递归遍历目录下的所有文件?
JSP 获取 ModelAndView 传参数据问题?
Linux 运行 SQL 语句文件报错?
如何解决 Linux 显示中文乱码问题?
IDEA 中 Maven 项目无法自动识别 pom.xml?
面向过程与面向对象有什么区别?
Java 编程语言有哪些特点?
重载和重写有什么区别?
静态方法和实例方法有什么不同?
== 和 equals 两者有什么区别?
HashMap 是怎么扩容的?
JDK1.8 和 JDK1.7 中 ArrayList 的初始容量多少?
Arrays.asList() 有什么使用限制?
Set 为什么是无序的?
Comparable 和 Comparator有什么区别?
HashMap 中如何实现同步?
List、Set、Map 三者有什么区别?
多线程实现的方式有几种?
什么是线程局部变量?
Java 中常见的阻塞队列有哪些?
创建线程池的有几种方式?
查看文件内容有哪些命令?
命令中可以使用哪几种通配符?
根据文件名搜索文件有哪些命令?
bash shell 中 hash 命令有什么作用?
Linux 中进程有哪几种状态?
Integer 和 int 两者有什么区别?
什么是 Java 内部类?
常用的垃圾收集器有哪些?
生产环境中应用的 JVM 参数有哪些?
什么情况下会发生栈内存溢出?
常用的 JVM 调优配置参数有哪些?
什么是类加载器?
类加载器分为哪几类?
可以自定义一个 java.lang.String 吗?
MyBatis 实现批量插入数据的方式有几种?
什么是自动装箱?什么是自动拆箱?
一级缓存和二级缓存有什么区别?
Redis 支持那些数据类型?
什么是 Redis 持久化?Redis 有哪几种持久化方式?
什么是缓存穿透?如何避免?
什么是缓存雪崩?何如避免?
MyBatis 是否支持延迟加载?其原理是什么?
如何解决 MyBatis 转义字符的问题?
Zookeeper 是如何保证事务的顺序一致性的?
Zookeeper 有哪几种部署模式?
Zookeeper 集群最少要几台服务器,什么规则?
Zookeeper 有哪些典型应用场景?
Paxos 和 ZAB 算法有什么区别和联系?
Zookeeper 中 Java 客户端都有哪些?
Zookeeper 集群支持动态添加服务器吗?
Zookeeper 和 Nginx 的负载均衡有什么区别?
Zookeeper 节点宕机如何处理?
Socket 前后端通信是如何实现服务器集群?
为什么要用 Redis 而不用 Map、Guava 做缓存?
Redis 是单线程的吗?为什么这么快?
为什么使用消息队列?
RabbitMQ 有几种广播类型?
Kafka 的分区策略有哪些?
RabbitMQ 有哪些重要组件?
RabbitMQ 有哪些重要角色?
RabbitMQ 如何保证消息顺序性?
如何保证消息消费的幂等性?
Kafka 消费者如何取消订阅?
设计模式有多少种,都有哪些设计模式?
设计模式的六大原则是什么?
什么是单例模式?
单例模式中饿汉式和懒汉式有什么区别?
单例模式都有哪些应用场景?
什么是线程安全?
Spring 框架中使用了哪些设计模式?
Spring MVC 执行流程是什么?
Spring MVC 如何解决请求中文乱码问题?
Spring MVC 请求转发和重定向有什么区别?
Spring MVC 中系统是如何分层?
如何开启注解处理器和适配器?
Spring MVC 如何设置重定向和转发?
Spring MVC 中函数的返回值是什么?
@RequestMapping 注解用在类上有什么作用?
Spring MVC 控制器是单例的吗?
RequestMethod 可以同时支持POST和GET请求访问吗?
Spring 依赖注入有几种实现方式?
Spring 可以注入null或空字符串吗?
Spring 支持哪几种 bean 作用域?
JDK1.8 中 ConcurrentHashMap 不支持空键值吗?
Spring 有哪些不同的通知类型?
Spring AOP 连接点和切入点是什么?
Spring AOP 代理模式是什么?
Spring 框架有哪些特点?
Spring 是由哪些模块组成的?
Spring 提供几种配置方式设置元数据?
HTTP1.0 和 HTTP1.1 有什么区别?
HTTP1.1 和 HTTP2.0 有什么区别?
Spring Boot 支持哪几种内嵌容器?
什么是 Spring Boot Stater?
Spring Boot Stater 有什么命名规范?
Spring Boot 启动器都有哪些?
Spring Cloud 断路器的作用是什么?
Spring Cloud 核心组件有哪些?
Spring Cloud 如何实现服务的注册?
什么是 Spring Cloud Config?
Spring Cloud Eureka 自我保护机制是什么?
常用的并发工具类有哪些?
并发和并行有什么区别?
JSP 模版引擎如何解析 ${} 表达式?
什么是服务熔断?什么是服务降级?
Spring Boot 和 Spring Cloud 之间有什么联系?
你都知道哪些微服务技术栈?
接口和抽象类有什么区别?
什么是线程死锁?
如何避免线程死锁?
父类中静态方法能否被子类重写?
什么是不可变对象?有什么好处?
静态变量和实例变量有什么区别?
Object 类都有哪些公共方法?
Java 创建对象有哪几种方式?
a==b 与 a.equals(b) 有什么区别?
Object 中 equals() 和 hashcode() 有什么联系?
hashcode() 中可以使用随机数字吗?
Java 中 & 和 && 有什么区别?
一个 .java 类文件中可以有多少个非内部类?
Java 中如何正确退出多层嵌套循环?
浅拷贝和深拷贝有什么区别?
Java 中 final关键字有哪些用法?
String s = new String(“abc”); 创建了几个String对象?
String 和 StringBuffer 有什么区别?
Java 中 3*0.1 == 0.3 返回值是什么?
a=a+b 和 a+=b 有什么区别吗?
Java 中线程阻塞都有哪些原因?
Callable 和 Runnable 有什么区别?
synchronized 和 ReentrantLock 有什么区别?
Java 中 int a[] 和 int []a 有什么区别?
Java 中 Math. round(-1.5) 等于多少?
String 类的常用方法都有哪些?
Java 中 IO 流有哪几种?
Java 中 BIO、NIO、AIO 有什么区别?
Java 中 Files 类常用方法都有哪些?
抽象类能使用 final 修饰吗?
MySQL支持哪些分区类型?
如何判断 MySQL 是否支持分区?
MySQL 中有哪几种隔离级别?
MySQL 中行级锁都有哪些优缺点?
Dubbo 有哪几种集群容错方案,默认是哪种?
什么是 Maven 存储库?
Maven 构建阶段是什么?
Maven 的内置构建生命周期是什么?
Maven 中 什么是 MOJO?
Maven 如何管理多模块项目依赖?
Maven 版本管理都有哪些规范?
HashMap 底层是如何实现的?
HashMap 长度为什么是2的幂次方?
HashMap 为什么多线程会导致死循环?
Redis 过期键都有哪些删除策略?
Spring 中单例 bean 是线程安全的吗?
Spring 中 @Component 和 @Bean 注解有什么区别?
Spring 事务管理的方式有几种?
Spring 中事务有哪几种隔离级别?
Spring 中事务有哪几种传播行为?
switch 中能否使用 String 作为参数?
什么是树?
什么是二叉树?
二叉树基本概念是什么?
树和二叉树有什么区别和联系?
什么是冒泡排序算法?
Java 中如何编写一个冒泡排序算法?
Spring 事务都有哪些特性?
数据库引擎都有哪些?
MySQL 索引优化原则都有哪些?
什么是代理模式?
代理模式中如何实现静态代理?
代理模式中如何实现动态代理?
什么是解释器模式?
Java 中如何实现解释器模式?
什么是外观(Facade)模式?
外观(Facade)模式都有哪些应用场景?
外观(Facade)模式有哪些优点?
同步、异步、阻塞、非阻塞概念是什么?
什么是 Java 序列化(串行化)?
序列化都有哪些使用场景?
序列化使用都有哪些注意事项?
TCP/IP连接时有几次握手?释放几次?
Linux 如何统计系统当前进程连接数?
Linux 常见目录结构都有哪些?
Linux 中什么是硬链接和软链接?
Linux 设置 DNS 修改哪个配置文件?
Linux 常见服务占用端口都有哪些?
Dubbo内置服务容器都有哪些?
Dubbo 默认使用什么通信框架,还有别的选择吗?
Dubbo 支持服务多协议吗?
Dubbo 服务之间调用是阻塞的吗?
Dubbo 支持服务降级吗?
Dubbo 如何优雅停机?
Dubbo 和 Spring Cloud 有哪些区别?
Redis 官方为什么不提供 Windows 版本?
Redis 各数据类型最大容量是多少?
Redis 和 Redisson 有什么关系?
Jedis 和 Redisson 有什么优缺点?
Redis 如何设置密码及验证密码?
Redis 集群最大节点个数是多少?
Redis 集群如何选择数据库?
Redis 如何测试连通性?
Redis 事务命令都有哪几个?
Redis key 如何设置过期时间和永久有效?
Redis 回收进程是如何工作的?
Redis 回收使用的是什么算法?
Redis 如何实现大量数据插入?
Redis 和其他key-value存储有什么不同?
什么是泛型?
泛型都有哪些规则?
泛型有什么使用场景?
Java 泛型中 E、T、K、V等标记符是什么含义?
Java 数组中可以使用泛型吗?
Java 中常见线程安全的 Map 都有哪些?
前端传输参数保存数据到 MySQL 中乱码问题?
MySQL 中日期函数时间不准确?
Maven 打包提示 “程序包com.sun.deploy.net不存在” 的问题?
thymeleaf 模板引擎在 Linux 解析报 500 问题?
Java 项目第一次登录页面加载很慢问题?
Spring Cloud Config 使用 SSH 连接 GitHub 报错?
Zookeeper 中 Server 都有哪些工作状态?
Zookeeper 常用命令都有哪些?
ZooKeeper 客户端如何注册 Watcher 实现?
ZooKeeper 服务端如何处理 Watcher 实现?
ZooKeeper 客户端如何回调 Watcher?
ZooKeeper 中 什么是 ACL 权限控制机制?
分布式集群中为什么会有 Master?
ZooKeeper 命名服务是什么?
Java 中字符型常量和字符串常量有什么区别?
Java 泛型有什么优点?
Java 迭代器 Iterator 是什么?
Iterator 和 Enumeration 接口有哪些区别?
Iterator 和 Enumeration 接口有哪些区别?
Iterater 和 ListIterator 都有哪些区别?
Java 中遍历 List 集合都有哪些方式?
fail-fast 与 fail-safe 有什么区别?
ArrayList 和 CopyOnWriteArrayList 有什么区别?
Java 中迭代集合如何避免 ConcurrentModificationException?
Java 中 UnsupportedOperationException 是什么?
Java 中 throw 和 throws 有什么区别?
什么是数据库三范式?
Java 中如何将字符串反转,列举几种方式?
Redis 和 Memcached 都有哪些区别?
Redis 都有哪些使用场景?
HTTP 协议中常用的请求方法有哪些?
HTTP 状态码常见的都有哪些?
什么是网络协议?
网络传输协议本质和作用是什么?
Java 中什么是隐式的类型转换?
MySQL 中内连接、左连接、右连接有什么区别?
什么是多线程?
JAVA 中 ++ 操作符是线程安全的吗?
Java 中 volatile 和 synchronized 有什么区别?
Java 中如何判断 “java.util.LinkedList” 字符串实现 List 接口?
Java 中如何获取 List 集合泛型类型?

面试题答案见微信小程序 “Java精选面试题”,3000+道面试题。内容持续更新中包含基础、集合、并发、JVM、Spring、Spring MVC、Spring Boot、Spring Cloud、Dubbo、MySQL、Redis、MyBaits、Zookeeper、Linux、数据结构与算法、项目管理工具、消息队列、设计模式、Nginx、常见 BUG 问题、网络编程等。
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值