我相信有人欢喜有人愁,大厂的面试题千奇百怪,不知道他会问到哪方面的知识点,我也是秋招大部队里面的一员,给大家整理出了 18 个大厂经常会问到 200 多道面试问题,涉及的知识点有,性能优化,微服务,并发编程,开源框架,分布式,等等。

文章内容过于全面,会涉及到部分知识点的解析,面试真题,学习思维路线。建议大家收藏。
同时有需要这些 PDF 原文档的朋友,可以关注小编+私信【架构资料】获取。
1.tomcat 性能调优
怎么给 tomcat 调优
如何加大 comcat 连接数
怎么加大 tomcat 的内存
tomcat 中如何禁止列目录下的文件
Tomcat 有几种部署方式
tomcat 的优化经验
2.jvm 性能优化专题:
Java 类加载过程
java 内存分配
描述一下 jvm 加载 class 文件的原理机制
GC 是什么?为什么要有 GC?
简述 java 垃圾回收机制
如何判断一个对象是否存活?(或者 GC 对象的判定方法)
垃圾回收的优点和原理。并考虑 2 种回收机制。
垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?
有什么办法主动通知虚拟机进行垃圾回收?
java 中会存在内存泄漏吗,请简单描述。
深拷贝和浅拷贝
syatem,gc()和 runtime,gc()会做做什么事情?
finalize 方法什么时候被调用?析构函数(finalizatinon)的目的是什么?
如何对象的引用被置为 null,垃圾收集器是否会立即释放对象占用的内存?
什么是分布式垃圾回收(DGC)?它是如何工作的?
串行(serial)收集器和吞吐量(throughout)收集器的区别是什么?
在 Java 中,对象什么时候可以被垃圾回收?
简述 Java 内存分配与回收策率以及 minor GC 和 majorGC。
jvm 的永久代中会发生垃圾回收吗?
Java 中垃圾收集的方法有哪些?
什么是类加载器,类加载器有哪些?
3.mysql 性能优化整理:

答案解析:

1.spring clond:
什么是 spring cloud?
使用 spring cloud 有什么优势?
服务注册和发现是什么意思?spring cloud 如何实现?
负载平衡的意义什么?
什么是 Hystrix?它如何实现容错?
什么是 hystrix 断路器?他们需要它吗?
什么是 netflix feign?它的优点是什么?
什么是 spring cloud bus?我们需要它吗?
2.spring boot:
什么是 spring boot
spring boot 有哪些优点?
什么是 Java config
如何重新加载 spring boot 上的更改,而无需重新启动服务器?
spring boot 中的监视器是什么?
如何在 spring boot 中禁用 Actuator 端点安全性?
如何在自定义端口上运行 spring boot 应用程序?
什么是 YAML?
如何实现 spring boot 应用程序的安全性?
如何集成 spring boot 和 ActiveMQ?
如何使用 spring boot 实现分页和排序?
什么是 swagger?你用 spring boot 实现了它吗?
什么是 spring profiles
什么是 spring batch
什么是 free marker 模板
如何使用 springboot 实现异常处理?
您使用了哪些 starter maven 依赖项?
什么是 CSRF 攻击?
什么是 websockets?
什么是 AOP?
什么是 apache kafka?
我们如何监视所有 spring boot 微服务?
3,Dubbo 面试整理
dubbo 中 zookeeper 做注册中心,如果注册中心集群都挂掉,发布者和订阅者之间还能通信吗?
dubbo 服务负载均衡策略?
dubbo 在安全机制方面是如何解决的
dubbo 连接注册中心和直连的区别
答案解析:

synchronized 用过吗,其原理是什么?
你刚才提到获取对象的锁,这个锁到底是什么?如何确定对象的锁?
什么是可重入性,为什么说 synchronized 是可重入锁?
jvm 对 Java 的原生锁做了哪些优化?
为什么说 synchronized 是非公平锁?
什么是锁消除和锁粗化?
为什么说 synchronized 是一个悲观锁?乐观锁的实现原理又是什么?
乐观锁一定就是好的吗?
跟 synchronized 相比,可重入锁 reentrantlock 其实现原理有什么不同?
那么请谈谈 AQS 框架是怎么回事儿?
请尽可能详尽地对比下 synchronized 和 reetrantlock 的异同。
reetrantlock 是如何实现可重入性的?
除了 reetrantlock,你还接触过 juc 中哪些并发工具?
请谈谈 resdwritelock 和 stamppeloick
如何让 Java 的线程彼此同步?你了解过哪些同步器?请分别 介绍下。
cyclicbarrier 和 countdownlatch 看起来很相似,请对下呢?
Java 中的线程池是如何实现的?
创建线程池的几个核心构造参数?
线程池中的线程是怎么创建的?是一开始就随着线程池的启动 创建好的吗?
既然提到可以通过配置不同参数创建出不同的线程池,那么 Java 中默认实现好的线程池又有哪些呢,请比较他们的异同。
如何在 Java 线程池中提交线程?
什么是 Java 的内存模型,Java 中各个线程是怎么彼此看到 对方的变量的?
请谈谈 volatile 有什么特点,为什么它能保证变量对所有线程的可见性?
既然 volatile 能保证线程间的变量可见性,是不是就意味 着基于 volatile 变量的运算就是并发安全的?
请对比下 volatile 对比 synchronized 的异同。
请谈谈 threadlocal 是怎么解决并发安全的?
很多人都说要慎用 threadlocal,谈谈你的理解,使用 threalocal 需要注意什么?
答案解析:

1.spring 面试:
什么是 spring 框架?spring 框架有哪些主要模块?
使用 spring 框架能带来哪些好处
什么是控制反转(IOC)?什么是依赖注入?
请解释下 spring 框架中的 ioc?
beanfactory 和 applicationcontext 有什么区别?
spring 有几种配置方式?
如何用基于 XML 配置的方式配置 spring?
如何基于 Java 配置的方式配置 spring?
怎样用注解的方式配置 spring?
请解释 spring bean 的生命周期?
spring bean 的作用域之间有什么区别?
什么是 spring inner beans?
spring 框架中的单例 beans 是线程安全的么?
请举例说明如何在 spring 中注入一个 Java collection?
如何向 spring bean 中注入一个 Java.util.properties?
请解释 spring bean 的自动装置?
请解释自动装配模式的区别?
如何开启基于注解的自动装配?
请举报解释 @Required 注解?
请举例解释 @Autowired 注解?
请举例说明 @Qualifier 注解?
构造方法注入和设值注入有什么区别?请注意一下明显的区别:
spring 框架中有哪些不同类型的事件?
filesystemREsource 和 classpathresource 有何区别?
sping 框架中都用到了哪些涉及模式?
开发中主要使用 spring 的技术?
简述 AOP 和 IOC 概念 AOP:
在 spring 中如何配置 bean?
IOC 容器对 bean 的生命周期:
2.springmvc:
什么是 springmvc
springmvc 的优点
springmvc 的工作原理
springmvc 流程
springmvc 的控制器是不是单例模式,如果是,有什么问题,怎么解决?
如果你也用过 struts.简单介绍下 springmvc 和 struts2 的区别有哪些?
springmvc 中的控制器的注解一般用那个,有没有别注解可以替代?
@requestmapping 注解用在类上面有什么作用?
怎么样吧某个请求映射到特定的方法上面?
如果在拦截请求中,我想拦截 get 方式提交的方法,怎么配置?
怎么样在方法里面得到 request,或者 session?
我想在拦截的方法里面得到从前台传入的参数,怎么得到?
如果前台有很多个参数传入,并且这些参数都是一个对象的,那么怎么样快速得到这个对象?
springmvc 中的函数的返回值是什么?
springmvc 怎么样设定重定向和转发的?
springmvc 用什么对象从后台向前台传递数据的?
springmvc 中有个类把视图和数据都合并的一起的,叫什么?
怎么样吧 modeimaqp 里面的数据放入 session 里面/
springmvc 怎么和 AJAX 相互调用的?
当一个方法向 AJAX 返回特殊对象,比如 object,list 等,需要做什么处理?
springmvc 里面拦截器是怎么写的
讲下 springmvc 的执行流程
3.mybatis:
什么是 mybatis?
讲下 mybatis 的缓存
mybatis 是如何进行分页的?分页插件的原理是什么?
简述 mybatis 的插件运行原理,以及如何编写一个插件?
mybatis 动态 sql 是做什么的?,都有哪些动态 sql?能简述一下动态 sql 的执行原理吗?
#{}和 ${}的区别是做什么
为什么说 mybatis 是半自动 orm 映射工具?它与全自动的区别在哪里?
mybatis 是否支持延迟加载?如果支持,它的实现原理是什么?
mybatis 与 hibernate 有哪些不同?
mybatis 的好处是什么?
简述 mybatis 的 xml 映射文件和 mybatis 内部数据结构之间的映射关系?
什么是 mybatis 的结构绑定,有什么好处?
接口绑定有几种实现方式,分别是怎么实现的?
什么情况下用注解绑定,什么情况下用 xml 绑定?
mybatis 实现一对一有几种方式?具体怎么操作的?
mybatis 能执行一对一,一对多的关联查询吗?都有哪些实现方式,以及他们之间的区别?
mybatis 里面的动态 sql 是怎么设定的?用什么语法?
mybatis 是如何将 sql 执行结果封装为目标对象并返回的?都有哪些映射形式?
xml 映射文件中,出了常见的 select,insert,updae,delete 标签之外,还有哪些标签?
当实体类中的属性名和表中的字段名不一样,如果将查询的结果封装到指定 pojo?
模糊查询 like 语句该怎么写
通常查询 like 语句该怎么写
通常一个 xml 映射文件,都会写一个 dao 接口与之对应,dao 的工作原理,是否可以重载?
mybatis 映射文件中,如果 A 标签通过 include 引用了 B 标签的内容,请问,B 标签能否定义在 A 标签的后面,还是说必须定义在 A 标签的前面?
mybatis 的 xml 映射文件中,不同的 xml 映射文件,id 是否可以重复?
mybatis 中如何执行批处理?
mybatis 都有哪些 Executor 执行器?他们之间的区别是什么?
mybatis 中如何指定使用哪一种 Executor 执行器?
mybatis 执行批量插入,能返回数据库主键列表吗?
mybatis 是否可以映射 Enum 枚举类?
如何获取自动生成的(主)键值?
在 mapper 中如何传递多个参数?
resultType resultmap 的区别?
使用 mybatis 的 mapper 接口调用时有哪些要求?
mybatis 比 ibatis 比较大的几个改进是什么?
ibatis 和 mybatis 在细节上的不同有哪些?
答案解析:

1.分布式限流:
zookeeper 面试专题:
zookeeper 是什么?
zookeerper 提供了什么?
zookeeper 提供了什么?
四种类型的 znode
zookeeper 做了什么?
zk 的命名服务(文件系统)
zk 的配置管理(文件系统,通知机制)
zookeeper 集群管理(文件系统,通知机制)
zookeeper 分布式锁(文件系统,通知机制)
获取分布式锁的流程
zookeeper 队列管理(文件系统,通知机制)
zookeeper 数据复制
zookeeper 工作原理
zookeeper 是如何保证实物的顺序一致性的?
zookeeper 下 server 工作状态
zookeeper 是如何选取主 laeder 的?
zookeeper 同步流程
分布式通知和协调
机器中为什么会有 laeder?
zk 字节宕机如何处理?
zookeeper 负载均衡和 nginx 负载均衡区别
zookeeper watch 机制
nginx 面试专题:
请解释一下什么是 nginx?
请列举 nginx 的一些特性。
请解释 nginx 如何处理 HTTP 请求。
在 nginx 中,如何使用未定义的服务器名称来阻止处理请求?
使用“反向代理服务器”的优点是什么?
请列举 nginx 服务器的最佳用途。
请解释 nginx 服务器上的 master 和 woeker 进程分别是什么?
请解释你如何通过不同于 80 的端口开启 ngunx?
请解释是否有可能将 nginx 的错误替换为 502 错误,503?
在 nginx 中,解释如何在 URL 中保留双斜线?
请解释 ngx_http_upstream_module 的作用是什么?
请解释什么是 c10k 问题?
请陈述 stub_status 和 sub_fifilter 指令的作用是什么
解释 nginx 是否支持将请求压缩到上游?
解释如何在 nginx 中获得当前的时间?
用 nginx 服务器解释—s 的目的是什么?
解释如何在 nginx 服务器添加模块?
2.分布式通讯面试整理
RabbitMQ 中的 broker 是指什么?cluster 又是指什么?
什么是元数据?元数据分为哪些类型?包括哪些内容?与 cluster 相关的元数据有哪些?元数据是如何保存的?元数据在 cluster 中是如何分布的?
RAMnode 和 disk node 的区别?
rabbitMQ 上的一个 queue 中存放的 message 是否有数量限制?
vhost 是什么?起什么作用?
在单 node 系统和多 node 构成的 cluster 系统中声明 queue,exchange,以及进行 binding 会有什么不同?
客户端连接到 cluster 中的任意 node 上是否都能正常工作?
若 cluster 中拥有某个 queue 的 owner node 失效了,且该 queue 被声明具有 durable 属性,是否能够成功从其他 node 上重新声明该 quede?
cluster 中 node 的失效会对 consumer 产生什么影响?若是在 cluster 中创建了 mirrored queue,这时 node 失效会对 consumer 产生什么影响?
能够在地理上分开的不同数据中心使用 rabbitMQ cluster 么?
为什么 heavy RPC 的使用场景下不建议采用 disk node
向不存在的 exchange 发 publish 消息会发生什么?向不存在的 queue 执行 consume 动作会发生什么?
routing_key 和 binding_key 的最大长度是多少
RabbitMQ 允许发送的 message 最大可达多大?
什么情况下 producer 不主动创建 queue 是安全的
“dead letter”queue 的用途?
答案解析:

....博主太懒了字数太多了,不想写了....文章已经做成PDF,有需要的朋友可以私信我免费获取!