阿里面试知识点大全:2022年大厂面试题整理
阿里面试知识点大全:2022年大厂面试题整理5. spring的controller是线程安全的吗4. 实体类用什么注解控制1. feign的协议(http)2. spring ioc3. 数据的权限是怎么分类的
大厂一直是很多小伙伴梦寐以求都想进入的地方,但是一般苦于能力以及没有对应的面试资源而分外艰难。
近日抽时间整理了下大厂面试的面试题内容,各位想去面试大厂的可以提前做做准备。
希望对各位将要面试大厂的小伙伴有帮助
大厂包含(阿里、菜鸟、蚂蚁金服、腾讯、咪咕等大厂一面二面三面问题)
1. feign的协议(http)
2. spring ioc
3. 数据的权限是怎么分类的
4. 实体类用什么注解控制
5. spring的controller是线程安全的吗
6. 你们怎么解决线程安全的 我回答的加锁或者sync (同步,volatile,threadlocal)
7. 你们是怎么做一个aop
8.获取request header内容的注解
9.Post请求,为什么会返回403状态码
10.自定义注解不在扫描路径下,怎么能让注解进入容器
11.spring的设计模式
12.领券场景,怎么设计才能达到3k的TPS
13.如果达不到,会是什么地方出现问题?
14.redis的缓存穿透和雪崩
15.AQS的原理,Condition队列有什么作用
16. 线程池的拒绝策略,线程数设计怎么考量
17. spring的controller是线程安全的吗
18. .MQ消息积压
19. MQ数据处理怎么保证数据一致性
20.@Bean注解使用场景
21.索引失效场景
22.mybatis怎么将数据库int字段映射成枚举类
23.创建一个类的方式有多少种
24. ArrayList和linkedList的区别
25. list里线程安全的是哪个
26. 讲讲hashMap,ConcurrentHashMap
27. 负载因子 默认大小 扩容因子 红黑树大小
28. hashmap和ConcurrentHashMap同样new出来 大小一样吗
29. 线程的状态
30. 成员变量怎么保证多线程下的线程安全
31. springboot的特点
32. springboot的常见注解
33. springboot的了解还有哪些
34. @value的默认值怎么设置
35. JVM的整体结构
36. 类的加载过程
37. 垃圾回收机制
38. full gc young gc
39. 双亲委派机制
40. 类加载器的分类 工作中自定义过类加载器没有
41. tomcat怎么破解的双亲委派机制
42. 介绍下rabbitmq
43. 怎么保证数据被消费掉
44. 数据发送过程中mq宕机了数据怎么办
45. 数据是怎么发送到队列中的
46. 你们用的什么模式消费
47. 怎么做延迟队列
48. 讲讲各个部件 生产者 交换机 路由组
49. 介绍下redis
50. redis的数据类型 string set list zset hash 还有吗
51. 讲讲持久化方式
52. 讲讲雪崩
53. 搭过集群吗
54. 讲讲mysql
55. innodb 和myisam的区别
56. char和varchar的区别 什么时候使用
57. 讲讲锁的分类 从使用方面来说
58. 讲讲行锁 表锁 他俩的性能 并发性谁强
59. 讲讲 myisam支持行锁吗 不支持
60. 讲讲mysql的事务分类
61. 讲讲mysql的事务传播方式
62. 用过分库分表吗
63. 讲讲sql优化
64. 讲讲explain的字段意思
65. sql执行最优的时候explain里是什么
66. 讲讲mvcc
67. spring security 做的认证中心 没做oauth2吗
68. 那oauth2的原理是什么
69. 项目启动1g内存 请求来了只有500m了 分析怎么回事
70.SQL没有走最优索引,不改SQL的前提下如何让其走最佳索引
71.怎么保证MQ消息一定被消费
72.redis主从和集群模式的区别,集群模式有什么好处?虚拟槽分区
73.建立索引的规则,SQL调优
74.复合索引和单列索引的区别
75.MQ死信队列,死信队列会出现消息堆积吗?一直堆积会出现什么情况?
76.rabbitmq和kafka如何抉择
77.MySQL主从复制,读写分离
78.Junit单元测试
79.synchronized锁升级过程
80.为什么notify方法要在object类里面
81.线程池原理,各个参数
82.实现线程的方式,继承还是实现比较好
83.前面我说继承适合用在模板方法模式,说了AQS中的应用,开始问我AQS原理
84.保证MQ消息一致性,幂等性
85.@Bean和@Compont的区别
86.如果不用Aop,怎么实现前后增强?
87.mysql 什么是回表?什么是覆盖索引?
88.布隆过滤器的原理
89.RabbitMQ的组成部分
90. 聚簇索引跟非聚簇索引的区别
91. 回表查询
92. b树和b 树的区别
93. explain
94. sql走什么索引 explain字段怎么看
95. possible_keys 和 key的区别
96. 延迟双删策略 保证双写一致性
97. redis的持久化
98. rdb持久化是怎么触发的
99. 缓存雪崩的问题怎么解决
100. 怎么解决数据重复消费。
101. springboot的启动流程
102. 如果对controller进行拦截 应该怎么实现
103. redis在分布式中如何保证他的原子性
104. 有没有对日期加索引
105.介绍项目(问了一大堆,各种限流问题,日志Log4j不够吗?为何搞LogAop等等)
106.线程池创建方式
107.java8哪些特性
108.并发流了解吗
109.linkedList时间复杂度多少
110.你们阻塞队列用什么?
111.mysql主键索引和新字段(1--n也有索引),哪个快?
112.有没有增加,删除,查找都快的数据结构?讲一下,时间复杂度多少(红黑树,平衡树之类的)
113.rabbitMq用过吗?场景是什么,最大支持并发多少?redis数据结构?最大并发多少
114. 表分区了解吗(建表的时候partition)
115. 共享屏幕,手撕 LinkedList源码(增删查)
116. .有什么想问的。。(需要转golang吗?答:三个月培训后看情况,php或者java项目
117. cookie和session的区别
118. 集合有哪些
119. hashMap和treeMap的区别
120. set的使用场景 可以对list去重
121. equals和==的区别
122. mvn 常用命令
123. package和install的区别
124. 前后端分离项目什么注解可以给前端提供接口
125. aop的使用场景。 log日志 拦截器 动态代理
126. hashMap的put操作 详细说说
127. 什么时候会扩容
128. 为什么选红黑树 不去选b 树 二叉树
129. 链表时间复杂度最差多少,红黑树最差多少
130. mysql遇到慢查询吗?怎么遇到的、 怎么解决
131. 索引失效的情况
132. redis缓存机制 (主动去刷新还是哪样 说说)
133. sprigcloud用过哪些
134. 创建5个线程 执行i 怎么保证i最后是5 说了 sync lock 还说有没有 JDK自带的有吗 变量是什么名字
135. 如果是在数据库中 怎么保证是5 我说redis分布式锁 他让我说mysql锁 我说行锁能达到这种效果 让我实现一个乐观锁
136. 缓存雪崩 我说canal 让我说简单的办法 我居然没想到 问了他 他说 过期时间 不要设置一样就行
137. 缓存穿透 除了存一个不存在的值 还有啥办法 应该是布隆过滤器
138. 缓存击穿 存一个不存在的值进去
139. 数据库1w数据 redis 1000 怎么尽量不到数据库中 布隆过滤器
140.MVC怎么把请求要求为post才能访问?
141.怎么查看堆内存?jstat,jconsole。追问除了这些工具之外?说了阿尔萨斯,MAT
142.怎么不使用这些工具就能了解到JVM这些信息?不会。反问他说JMX
143.间隙锁,MVCC
144.大分页怎么处理
145.mybatis的page用过吗?
146.导入100w数据,怎么优化?内存已经有这些数据了,不考虑内存不足。说了多线程和分批次插入,他说要从存储引擎上出发。
147. 看不到日志的情况,怎么排查异常出在哪里?
148. 线程池参数和内部运行逻辑
149. redis数据结构
150. 数据不一致性怎么解决
151. spring aop
152. spring ioc 使用场景 自己用过吗 一定要说用过 日志记录 就这么说
153. 为什么使用索引
154. 索引的原理
155. 索引不生效
156. 用过设计模式吗 代码中 说了装饰者模式
157. 什么是装饰者模式
158. 理解你的想法 工作中有没有遇到问题 并不局限一个答案。
159. 接口和抽象类的区别
160. java有哪些方法保证多线程的安全
161. minor gc 和full gc的区别
162. 垃圾回收算法
163. java8的默认垃圾回收器是什么 parallel
164. ConcurrentHashMap和hashMap的区别
165. 1.8的ConcurrentHashMap怎么加锁的
166. 设计模式 装饰者 单例
167. 懒汉 饿汉模式 两种的使用场景
168. 场景:项目启动时没有请求打过来 用什么模式 饿汉模式 先生成出来
169. 分布式事务
170. @transaction事务 失效的场景有哪些
171. mysql为什么要使用b 树 不用别的结构
172. 场景:低cpu 低内存 http请求进来都是报错的 分析下怎么造成的
173. 高cpu 低内存
174. rabbitmq的使用场景
175. 分布式锁 redis里怎么实现的
176. 为什么setnx可以做到分布式锁 单指令操作
177. 印象特别深的bug 难解决的问题
178. mysql 存储引擎
179. innodb底层的结构
180. myisam和innodb的区别
181. mysql 分别实现一下乐观锁和悲观锁
182. 索引失效的场景
183. abc三个字段 a=3 and b>3 and c=3 命中场景 a>3 order by a b 命中场景
184. redis的使用场景
185. redis的数据类型 各种使用的场景 结合到项目中
186. set和zset的区别 zset怎么保证有序
187. redis持久化机制
188. 运行了5年的redis aof很大 怎么处理
189. redis怎么实现这个分布式锁
190. spring bean对象的创建过程
191. beanPostProcesser before 为什么要做前置处理
192. 怎么解决循环依赖的
193. 三级缓存分别放什么
194. 三级缓存 解决了什么
195. sync加到方法上 类上 代码块上有什么区别
196. cas和sync各自的优缺点
197. 业务上用到了哪些设计模式
198. 怎么sql调优
199. 16台机器都有定时任务 怎么只让一个去工作 说了分布式锁 还有吗 不知道了。。
200. 项目里所有用户的登录天数怎么存储最快或者最小的 bitmap
201. 前端快速点 只能提交一条 刷新可以继续提交这种 怎么实现 他说的先请求token 完成了 把token删了 还有很多要考虑的地方 我说的是塞redis里 不好 让mq来异步处理 也不好
202. ConcurrentHashMap和hashMap的put方法的区别
203. 解释cas和自旋
204. sync加到方法上 类上 代码块上有什么区别
205. 还问看过哪些类的源码
206. 线程池 用过哪些 参数 执行过程 拒绝策略的英文 妈的 我说了中文 英文忘了
207. 怎么解决这个并发冲突呢 多人审批 redis分布式锁 怎么加锁 怎么解锁
208. mysql sql优化
209. 隔离策略
210. 读已提交和可重复读的区别
211. mybatis的插件怎么实现的
212. 复杂的bug 怎么修复的
213. hql说说 区别
214. 文件存哪里了
215. 文件下载怎么一个逻辑 输出流怎么跟mvc绑定到一块的 输出流怎么给前端的
216. 请求超时没有重试直接报错是吧 ?是的。。。
217. springboot启动流程
218. 谈谈ioc
219. 谈谈#和$区别
220. 谈谈sql优化和索引
221. linux常用指令
222. 锁
223. hashtable、hashmap、currenthashmap的区别
224.循环依赖 怎么产生的 解决方案
225.Mybayis缓存
226.Mybatis 里面的session作用 用法
227.Springboot的自动装配
228.docker容器的操作,Nginx/Tomcat配置
229.数据库数据引擎和事务隔离级别
230.Redis(类型 持久化啥的)主要问项目怎么用的
231.线程调度
232.数据库引擎
233.索引 回表
234.约束和索引的区别
235.es分词器
236.个人在项目中使用那些技术,遇到什么问题,怎么解决的
237.HashMap原理,用红黑树的原因
238.IOC和AOP
239.Spring启动流程
240.数据库隔离级别,死锁最容易在哪个级别发生
241.建立索引原则,最左匹配原则,索引数据结构,为什么不用B树和B*树
242.排查CPU100%怎么做
243.场景:给100亿数据,怎么能快速的查询出多条件匹配的数据?ES分词。怎么分词?不会
244.场景:100wQPS,只有一台Redis MySQL,怎么保证系统可用?限流。问怎么限流?Gateway,Nginx,自己写的接口级别令牌桶。问令牌桶实现原理
245. Docker和k8s的常用操作
246. hashmap的put操作
247. currenthashmap
248. spring怎么解决循环依赖
249. ioc aop 项目怎么用的
250. springboot自动装配
251. 常用设计模式 单例 工厂 模板 策略等 怎么实现 解决什么问题
252. 锁 结合项目问的 分布式锁 等
253. thredlocal
254. redis项目中使用场景
255. 聚簇索引和非聚簇索引 原理
256. b树和b 树原理 什么要用b
257. sql优化
258. 数据库隔离级别 分别解决什么问题
259. 线程池
260. cloud 组件
261.项目中分布式锁实现 原理 执行过程中失败怎么不让其他线程拿到失败的锁(能面过主要是吹了分布式锁)
262.项目中使用线程池的场景 线程池中有几把锁
263.redis集群
264.为什么spring要使用三级缓存,明明用二级缓存就能解决问题
265.项目中mq场景 怎么保证消息被消费 消息的幂等性控制
266.mq原理
267.eurker怎么用的 怎么管理心跳
268.feign调用 原理
269.设计表时怎么考虑建索引
270.支付宝和微信支付的调用流程
271.项目中遇到什么问题怎么解决 并发下怎么保证订单提交ok 重复提交 保证支付安全啥的