小编本次是给面试中高级Java开发人员准备的面试题还有晋升学习路线大钢希望可以帮助到大家本次内容涵盖Java基础JVM多线程数据库MySQL/RedisSSMDubbo网络MQZookeeperNetty微服务大数据算法项目设计模式等篇幅足足近2千页面试必不可少——刷题给大家挑了一些高频面试题展示有需要的小伙伴可以在文末获取下方给大家展示的资料中部分题目附赠答案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 中的注释有哪些写法Java 集合1、说说常见的集合有哪些2、哪些集合类可对元素的随机访问3、Comparable 和 Comparator 接口的区别4、Collection 和 Collections 的区别5、Enumeration 和 Iterator 接口的区别6、集合使用泛型有什么优点7、List、Set、Map 之间的区别是什么8、为什么 Map 接口不继承 Collection 接口9、常用的线程安全的 Map 有哪些10、HashMap 与 Hashtable 的区别11、HashMap 和 TreeMap 怎么选12、HashMap 的数据结构是什么13、HashMap 在 JDK 8 中有哪些改变14、HashMap 的 put 方法逻辑15、HashMap 的 get 方法逻辑16、HashMap 是线程安全的吗17、HashMap 是怎么解决 hash 冲突的18、HashMap 是怎么扩容的19、HashMap 如何实现同步?20、HashMap 中的负载因子是什么多线程并发编程1、进程和线程的区别2、什么是原子性、可见性、有序性3、为什么要使用多线程4、创建线程有哪几种方式5、什么是守护线程6、线程的状态有哪几种怎么流转的7、线程的优先级有什么用8、我们常说的 JUC 是指什么9、i 是线程安全的吗10、join 方法有什么用什么原理11、如何让一个线程休眠12、启动一个线程是用 start 还是 run 方法13、start 和 run 方法有什么区别14、sleep 和 wait 方法有什么区别15、Thread.yield 方法有什么用16、yield 和 sleep 有什么区别17、怎么理解 Java 中的线程中断18、你怎么理解多线程分组19、你怎么理解 wait、notify、notifyAll20、同步和异步的区别JVM1、Java 为什么能一次编写处处运行2、JVM 是什么3、HotSpot 是什么4、JVM 内存区域分类哪些5、堆和栈区别是什么6、JVM 哪块内存区别不会发生内存溢出7、什么情况下会发生栈内存溢出8、对象都是在堆上分配的吗9、你怎么理解强、软、弱、虚引用10、常用的 JVM 参数有哪些11、Java 8 中的内存结构有什么变化12、Java 8 中的永久代为什么被移除了13、什么是类加载器14、类加载器的分类及作用15、什么是双亲委派模型16、为什么要打破双亲委派模型17、可以自定义一个 java.lang.String 吗18、什么是 JVM 内存模型19、JVM 内存模型和 JVM 内存结构的区别20、什么是指令重排序Linux1、Linux 是什么2、Linux 和 Unix 的区别3、Linux 系统有哪些优势4、Linux 怎么查看内核版本5、RedHat、CentOS、Ubuntu 有什么区别6、Linux 和 Windows 正反斜杠的区别7、Linux 环境变量配置有哪几种方式8、Linux 安装软件有哪几种方式9、Linux 普通用户怎么以管理员身份执行指令10、Linux 的 root 和 home 目录有什么不同11、Linux 系统 root 和普通用户的区别12、Linux 怎么区分 root 和普通用户13、Linux 怎么切换用户14、Linux 中的 bash 是什么15、Linux 中的 Shell 是什么16、Linux 怎么显示目录下的文件17、Linux 中 ll 和 ls 命令的区别18、Linux 怎么创建文件19、Linux 怎么创建目录20、Linux 怎么切换目录MySQL数据库1、主键、外键有什么区别2、怎么理解三范式和反范式3、范式和反范式的优缺点4、什么是事务5、事务有哪几个特性6、什么是脏读、幻读、不可重复读7、MySQL 有哪些事务隔离级别8、MySQL 默认的事务隔离级别是9、什么是索引10、索引有什么用11、索引为什么能提高查询效率12、索引的设计有哪些原则13、什么情况下应不建或少建索引14、MySQL 索引的种类有哪些15、MySQL 索引最左匹配原则怎么理解16、MySQL 数据库引擎怎么选择17、MySQL 默认数据库引擎是什么18、MySQL 引擎 MyISAM 和 InnoDB 的区别19、char 和 varchar 的区别20、MySQL 的 drop、delete、truncate区别Spring1、Spring 框架是什么2、Spring 常用的注解有哪些3、Spring 框架的好处有哪些4、Spring 由哪些主要模块组成5、Spring IOC 容器是什么6、Spring IOC 的好处有哪些7、BeanFactory 和 ApplicationContext 的区别8、Spring 依赖注入是什么意思9、Spring 依赖注入有哪几种方式10、Spring bean 支持哪几种作用域11、Spring bean 生命周期是怎样的12、Spring bean 为什么默认为单例13、Spring bean 是线程安全的吗14、Spring 这几个注解的区别15、Spring Autowired 注解有什么用16、Spring Required 注解有什么用17、Spring Qualifier 注解有什么用18、Spring 怎么注入 Java 集合类型19、Spring 装配是指什么20、Spring 自动装配有哪些方式Spring Boot1、Spring Boot 是什么2、Spring Boot 有哪些优缺点3、Spring Boot 框架的核心思想是什么4、Spring Boot 有哪些核心模块5、Spring Boot 的核心配置文件有哪些6、Spring Boot 的配置文件有哪几种格式7、Spring Boot 的核心注解是哪个8、SpringBootApplication 注解包含哪几个注解9、Spring Boot 最核心的注解有哪些10、Spring Boot 怎么根据指定条件注册 bean11、Spring Boot 有哪些条件注解12、Spring Boot 有哪两种方式集成13、Spring Boot 需要独立的容器运行吗14、Spring Boot 中的默认内嵌容器是15、Spring Boot 中间的内嵌容器可以替换成别的么16、Spring Boot 自动配置原理是什么17、Spring Boot 开启自动配置的注解是18、Spring Boot 自动配置的类型在哪注册19、Spring Boot 自动配置报告怎么查看20、Spring Boot 怎么排除某些自动配置Spring Cloud1、Spring Cloud 是什么2、Spring Cloud 和 Spring Boot 的关系3、Spring Cloud 有哪些重要的组件4、Spring Cloud 和 Dubbo 的区别5、Spring Cloud 版本号怎么理解6、Spring Cloud Eureka 保护机制是什么7、Spring Cloud 注册中心有哪些实现方案8、Spring Cloud 配置中心有哪些实现方案9、Spring Cloud 如何保证微服务调用安全性10、Spring Cloud 中的 Ribbon 是什么11、Spring Cloud 中的 Feign 是什么12、Spring Cloud Feign 和 ribbon 的区别13、Spring Cloud Gateway VS Zuul 怎么选14、Spring Cloud for Alibaba 是什么15、 什么是服务下线16、什么是服务续约17、什么是失效剔除18、什么是Feign19、Config组件中的两个角色20、使用Zuul的优点MyBatis1、MyBatis 是什么框架2、MyBatis 和 ORM 的区别3、MyBatis 为什么是半自动 ORM 映射4、MyBatis 框架的应用场景5、MyBatis 有哪些优点6、MyBatis 有哪些缺点7、MyBatis 和 Hibernate 的区别8、MyBatis 和 JPA 的区别9、MyBatis 有哪几种 SQL 编写形式10、MyBatis 支持哪些传参数的方法11、MyBatis 的 $ 和 # 传参的区别12、MyBatis 可以映射到枚举类吗13、MyBatis 怎么封装动态 SQL14、Mybatis trim 标签有什么用15、MyBatis 怎么实现分页16、MyBatis 流式查询有什么用17、MyBatis 模糊查询 like 语句该怎么写18、MyBatis 配置文件中的 SQL id 是否能重复19、MyBatis 如何防止 SQL 注入20、MyBatis 如何获取自动生成的主键idNginx1、什么是nginx2、nginx主要特征3、nginx常用命令4、工作模式及连接数上限5、nginx负载均衡几种算法6、nginx有几种进程模式7、如何定义错误提示页面8、如何精准匹配路径9、路径匹配优先级10、如何把请求转发给后端应用服务器11、如何根据文件类型设置过期时间12、禁止访问某个目录13、nginx负载均衡实现过程14、负载均衡配置15、设置超时时间16、开启压缩功能好处和坏处Redis1、Redis 是什么2、Redis 有哪些应用场景3、Redis 有什么优势4、Redis 为什么这么快5、Redis 主要消耗什么物理资源6、Redis 到底是单线程还是多线程7、Redis 和 Memcache 有什么区别8、Redis 支持哪些数据类型9、Redis 默认支持多少个数据库怎么修改10、Redis 最大 key 大小11、Redis String 值最大存储多少12、Redis 事务有什么用13、Redis 事务相关的命令有哪几个14、Redis 持久化有什么用15、Redis 有哪几种持久化方式16、Redis 持久化方式如何选择17、Redis 内存满了怎么办18、Redis 有哪些淘汰策略19、Redis 如何提高多核 CPU 利用率20、Redis 如何实现大量数据插入Dubbo1、Dubbo 是什么框架2、为什么要用 Dubbo3、Dubbo 里面有哪几种节点角色4、Dubbo 停止维护了吗5、Dubbo 必须依赖的包有哪些6、Dubbo 支持哪些注册中心推荐哪种7、Dubbo 内置了哪几种服务容器8、Dubbo 需要 Web 容器吗9、Dubbo 的服务注册和发现流程10、Dubbo 服务暴露的过程11、Dubbo 有哪几种配置方式12、Dubbo 核心的配置有哪些13、Provider 可以配置 Consumer 哪些属性14、Dubbo 启动时依赖的服务不可用会怎样15、Dubbo 都支持什么协议推荐用哪种16、Dubbo 支持什么通信框架默认哪种17、Dubbo 支持的序列化框架有哪些18、Dubbo 有哪些集群容错方案默认哪种19、Dubbo 有哪些负载均衡策略默认哪种20、有多个同名服务时如果连接指定的服务kafka1、如何获取topic主题的列表2、生产者和消费者的命令行是什么3、consumer 是推还是拉4、讲讲 kafka 维护消费状态跟踪的方法5、为什么需要消息系统mysql 不能满足需求吗6、Zookeeper 对于 Kafka 的作用是什么7、数据传输的事务定义有哪三种8、Kafka 判断一个节点是否还活着有那两个条件9、Kafka 与传统 MQ 消息系统之间有三个关键区别10、讲一讲 kafka 的 ack 的三种机制11、消费者如何不自动提交偏移量由应用提交12、消费者故障出现活锁问题如何解决13、如何控制消费的位置14、kafka 分布式不是单机的情况下如何保证消息的顺序消费15、kafka 的高可用机制是什么16、kafka 如何减少数据丢失17、kafka 如何不消费重复数据比如扣款我们不能重复的18、什么是kafka19、kafka通常用于两大类应用20、kafka特性Web 编程1、http 和 https 的区别2、get 和 post 的区别3、forward 和 redirect 的区别4、Servlet 是什么5、Servlet 生命周期是怎样的6、Servlet 有哪些核心的方法7、Servlet 是线程安全的么8、Servlet 支持异步处理吗9、Servlet 是单例还是多例10、Servlet 和 JSP 有什么区别和联系11、JSP 是什么12、JSP 有哪些内置对象13、JSP 有哪些基本动作14、JSP 有哪几种作用域15、JSP 有哪些常用指令16、如何实现隐藏的表单域17、AJAX 应用和传统 Web 应用有什么不同18、怎么优化 Web 前端的性能19、什么是 MVC分别代表什么20、拦截器和过滤器的区别Zookeeper1、ZooKeeper 是什么2、ZooKeeper 有哪些特性3、ZooKeeper 有哪些应用场景4、Zookeeper 支持哪些数据节点类型5、Zookeeper 常用的命令有哪些6、Zookeeper 服务器有哪几种角色7、Zookeeper 服务器有哪几种工作状态8、Zookeeper 支持哪些 Java 客户端9、ZooKeeper 有几种部署模式10、Zookeeper 集群最少要几台机器为什么?11、Zookeeper 集群支持动态添加机器吗12、ZooKeeper 是如何实现分布式事务的13、ZooKeeper 是如何实现分布式锁的14、Zookeeper 中的文件系统怎么理解15、Zookeeper 和 Chubby 的区别16、怎么理解 ZAB 协议17、ZAB 和 Paxos 算法的联系与区别分布式1、什么是 SOA2、SOA 和微服务架构有什么区别3、什么是 CAP 原则4、什么是 BASE 原则5、什么是 RMI6、什么是 RPC7、RMI 和 RPC 有什么区别8、分布式系统下会遇到哪些问题9、分布式 Session 共享怎么实现10、分布式唯一 ID 怎么实现11、什么是分布式事务12、分布式事务的解决方案有哪些13、什么是微服务14、微服务架构有什么优势15、微服务架构有什么缺点16、什么是服务治理17、什么是服务降级18、服务降级的方案有哪些19、什么是服务雪崩20、什么是服务熔断消息队列1、消息队列有什么用2、消息队列有哪些应用场景3、消息队列有什么优缺点4、消息队列怎么选型5、有了多线程为什么还要消息队列6、消息队列和多线程应该怎么选择呢7、使用消息队列会遇到哪些问题8、消息队列如何处理消息重复消费问题9、消息队列为什么会产生消息丢失10、消息队列如何解决消息丢失问题11、消息队列如何保证消息顺序消费12、消息延迟推送有哪些应用场景13、什么是拉模式和推模式14、什么是消息持久化15、消息持久化有什么缺点16、什么是 JMS17、什么是 RabbitMQ18、RabbitMQ 有哪些优点19、RabbitMQ 有哪些重要的组件20、RabbitMQ 有哪些重要的角色Elasticsearch 面试题1、elasticsearch 了解多少说说你们公司 es 的集群架构索引数据大小分片有多少以及一些调优手段 。2、elasticsearch 的倒排索引是什么3、elasticsearch 索引数据多了怎么办如何调优部署4、elasticsearch 是如何实现 master 选举的5、详细描述一下 Elasticsearch 索引文档的过程6、详细描述一下 Elasticsearch 搜索的过程7、Elasticsearch 在部署时对 Linux 的设置有哪些优化方法8、lucence 内部结构是什么9、Elasticsearch 是如何实现 Master 选举的10、Elasticsearch 中的节点比如共 20 个其中的 10 个选了一个master另外 10 个选了另一个 master怎么办11、客户端在和集群连接时如何选择特定的节点执行请求的12、详细描述一下 Elasticsearch 索引文档的过程。13、详细描述一下 Elasticsearch 更新和删除文档的过程。14、详细描述一下 Elasticsearch 搜索的过程。15、在 Elasticsearch 中是怎么根据一个词找到对应的倒排索引的16、Elasticsearch 在部署时对 Linux 的设置有哪些优化方法17、对于 GC 方面在使用 Elasticsearch 时要注意什么18、Elasticsearch 对于大数据量上亿量级的聚合如何实现19、在并发情况下Elasticsearch 如果保证读写一致20、如何监控 Elasticsearch 集群状态Java后端面试千万不要裸面不打没有准备的仗各位小伙伴们如果想要通过面试我建议还是要狠狠背一段时间完整版资料都已经打包好了有面试或者想提升自己的小伙伴们可以点击下方名片获取