第 1 部分:第 1—80 条
1. 大批量数据入库,你怎么处理,语句怎么写,如果用动态结构化查询语言的遍历循环解决了,但是入库的时候发现有重复数据或者修改的时候,在插入语句中怎么去重,或者发现重复数据了,怎么正确地修改,不会冲突或者避免重复。
2. Oracle 数据库迁移到 openGauss 数据库的时候,具体语法或者数据类型遇到问题,具体是什么问题?
3. Web 层请求进来了,怎么防止跨站脚本攻击(Cross-Site Scripting,XSS)或者结构化查询语言注入攻击,写在哪里,怎么防止这些攻击?
4. 请求过来,对于 JavaScript 对象表示法(JavaScript Object Notation,JSON)或者一些对象的数据,怎么正确接收和转换,比如请求体绑定注解(@RequestBody)等等,接收到后,它是怎么映射处理的,接下来怎么处理?
5. 亚马逊简单存储服务(Amazon Simple Storage Service,Amazon S3)容器。你对一些文件加密上传的时候,用哪些算法,比如RES,加密后的密钥你存在哪里,存在 S3 存储桶里,还是其他地方?
6. 亚马逊简单存储服务(Amazon S3)存储桶,你处理一些文件后,处理了哪些源数据,处理了哪些对象,容器一共有哪些源数据和对象,你又是分别怎么处理的?你是怎么对接并且调用的?
7. 在涉及外部接口时,你要注意哪些算法?有哪些算法可以保证对接安全,不会被攻击?
8. 亚马逊简单存储服务(Amazon S3)存储桶比较核心的要点是什么?
9. 事务失效的方式。
10. Java 虚拟机(Java Virtual Machine,JVM)你是怎么优化的?
11. 事务之间的相互调用。
12. Oracle 数据库迁移到 openGauss 数据库,性能上有什么差异?
13. Nginx 用过吧,怎么用的?
14. 缓存能用在哪些场景?
15. 缓存击穿的原因以及解决办法。
16. 怎么记录线程运行完了,并且都正确提交了,可以继续走接下来的流程?
17. 通知,比如环绕通知、前置通知、后置通知,有哪些具体的应用场景?
18. 生产环境上出现一些问题,比如内存溢出了或者其他问题,除了正常查看日志,你还有哪些分析工具或方式,能定位到具体是代码问题还是结构化查询语言问题?
19. 当数据响应比较慢或者接口比较慢时,你怎么定位是哪一块的原因?
20. 对于团队当中代码能力比较弱的员工,你是怎么管理的?
21. 团队开发当中,你的管理风格是什么?
22. 你会做代码检查吗?具体是什么方式?
23. openGauss 数据库的性能相比 Oracle 数据库还是有些不同,你是怎么迁移和改造的?性能问题你是怎么解决的?
24. 对于接口查询比较慢的情况,从代码上你是怎么定位和解决的?
25. 中央处理器(Central Processing Unit,CPU)这一块容易占用率过高,你是怎么优化的?
26. volatile 关键字用在了哪些地方?synchronized 关键字用在了哪些地方?
27. 前后端怎么交互?
28. 比较并交换(Compare-And-Swap,CAS)是什么?原理是什么?英文全称是什么?
29. synchronized 关键字和 volatile 关键字的区别。
30. 缓存用在了哪些业务上?
31. 索引失效的方式。
32. Redis 怎么保证数据一致性?
33. 有没有做过支付业务?你是如何保证数据一致性的?有没有做过哪些措施?
34. Java 虚拟机(Java Virtual Machine,JVM)优化,你做过哪些?
35. 如果让你重构一个项目,你会怎么考虑?
36. 国产化项目迁移过程中,你遇到了哪些问题?
37. openGauss 数据库、Oracle 数据库、MySQL 数据库,哪个性能更高?
38. 事务隔离级别的作用。
39. 队列和栈的区别。
40. 栈和堆分别有什么作用?
41. 堆涉及的先进后出概念,能举个例子吗?
42. 项目中如何保证数据的一致性?
43. synchronized 关键字和可重入锁的区别。
44. 锁讲一下。
45. 线程池的运行机制讲一下。
46. 项目中你是如何处理加密数据的?对于加密的数据,你是怎么查询的?比如手机号后四位,你怎么查询、做搜索?
47. 提到的 Elasticsearch(分布式搜索与分析引擎,ES),你怎么通过手机号后四位检索到加密数据?
48. Spring Boot 常用注解。
49. 创建线程的几种方式。
50. OpenFeign 远程调用时,A 服务连接 B 服务,B 服务有 1、2、3 三个节点,会连接到哪个节点?
51. 配置用的什么?配置只能发布后才能生效吗?不能实时生效吗?
52. 多线程运行结束后,我怎么知道这几个线程都正确运行结束了?有什么方式?10 个线程执行完了,需要走其他逻辑,我怎么知道这 10 个线程执行完了?
53. openGauss 数据库、Oracle 数据库、MySQL 数据库,哪个性能更高?
54. 讲一下堆和栈的区别,分别存什么?
55. String 字符串存在哪里,堆还是栈?
56. openGauss 数据库和 MySQL 数据库的区别。
57. 国产中间件、国产 PostgreSQL 数据库,有哪些相关技术?
58. 代码运行在 Java 虚拟机(Java Virtual Machine,JVM)的什么地方?
59. 国产 Elasticsearch 检索技术。
60. 没有需求文档,有个东西让你开发,你怎么快速熟悉一个项目?
61. 消息队列怎么保证消息一致性?
62. 用过哪些线程池?有什么区别?怎么分析线程池的一些指标?
63. 用过哪些中间件?
64. Java 虚拟机(Java Virtual Machine,JVM)优化你做过吗?怎么分析和优化?
65. 介绍一下微服务的几个组件。
66. 有没有遇到熔断问题?A 服务调用 B 服务,B 服务卡住了,OpenFeign 远程调用有熔断机制,直接触发熔断并抛出异常,避免服务资源持续占用,导致 A 服务也崩溃。
67. 面向切面编程(Aspect-Oriented Programming,AOP)的机制是什么?哪些地方用到?自动注入(@Autowired)、事务注解(@Transactional)和面向切面编程之间有什么关系?
68. 一个类有两个方法,A 方法有事务,B 方法没有事务,相互调用会有什么情况?
69. 事务的原理和作用、事务传播机制。
70. 服务产生大面积雪崩问题的解决办法。
71. Activiti 工作流。
72. 每秒查询次数(Queries Per Second,QPS)过万的流量接口怎么设计?
73. StringBuilder 和 StringBuffer 的区别。
74. 事务的原理及传播机制。
75. 如何保证数据不丢失,也就是数据一致性?
76. B+ 树、聚簇索引、联合索引。
77. Map 的底层有哪些组成部分?
78. 注册中心和配置中心,你用的都是 Nacos 吗?
79. 消息队列如何保证消息一致性?如何保证数据确实正确写入数据库?
80. 讲一下 ThreadLocal。
第 2 部分:第 81—160 条
81. 事务隔离级别及其可能出现的问题,怎么解决幻读?
82. volatile 关键字讲一下,怎么用?
83. ConcurrentHashMap 为什么是线程安全的?
84. 线程安全的集合有哪些?
85. synchronized 关键字和 Lock 接口的区别。
86. 什么是内存溢出?怎么解决?
87. Java 类加载器有哪些?
88. Java 类加载过程。
89. 面向切面编程(Aspect-Oriented Programming,AOP)通过什么实现?
90. Java 开发工具包 17(Java Development Kit 17,JDK 17)使用的是哪个垃圾回收器?
91. Java 开发工具包 8(Java Development Kit 8,JDK 8)使用的是哪个垃圾回收器?
92. Nacos 使用的是应用程序编程接口(Application Programming Interface,API),还是什么?
93. 实际项目当中,你用面向切面编程(Aspect-Oriented Programming,AOP)做过哪些事情?
94. 实际项目当中,Redis 持久化使用的是数据库快照(Redis Database,RDB)还是仅追加文件(Append Only File,AOF)?
95. 策略模式的概念,以及它和工厂模式的区别。
96. Excel 文件处理,你用的是哪个类库?怎么使用?介绍一种使用方式。另外,Apache POI 和 EasyExcel 有什么区别?什么情况下使用哪个?
97. 面向切面编程(Aspect-Oriented Programming,AOP)中的通知,你是怎么使用的?有哪些业务场景?
98. 业务当中,不同用户的权限你是怎么处理的?代码当中有写过吗?怎么写的?
99. Java 开发工具包 17(Java Development Kit 17,JDK 17)使用的是哪个垃圾回收器?
100. Java 开发工具包 8(Java Development Kit 8,JDK 8)使用的是哪个垃圾回收器?
101. Nacos 使用的是应用程序编程接口(Application Programming Interface,API),还是什么?
102. 实际项目当中,你用面向切面编程(Aspect-Oriented Programming,AOP)做过哪些事情?
103. 实际项目当中,Redis 持久化使用的是数据库快照(Redis Database,RDB)还是仅追加文件(Append Only File,AOF)?
104. 策略模式的概念,以及它和工厂模式的区别。
105. Excel 文件处理,你用的是哪个类库?怎么使用?介绍一种使用方式。另外,Apache POI 和 EasyExcel 有什么区别?什么情况下使用哪个?
106. 面向切面编程(Aspect-Oriented Programming,AOP)中的通知,你是怎么使用的?有哪些业务场景?
107. 哪些地方用了缓存?
108. 国产 openGauss 数据库和 Oracle 数据库的区别。
109. 数据从一个数据库(比如 Oracle 数据库)迁移到另一个数据库(比如 openGauss 数据库),如何保证数据一致性?
110. 用过哪些中间件?用在什么地方?起什么作用?
111. 国产技术迁移过程中遇到哪些问题?或者说,项目开发中遇到过哪些技术难点和问题?
112. Redis 在哪些实际业务中用到了?
113. StringBuffer 和 StringBuilder 的区别。
114. 消息队列如何保证消息不丢失和数据一致性?
115. 慢结构化查询语言(慢 SQL)怎么优化?
116. 缓存穿透、缓存击穿、缓存雪崩的概念及解决办法。
117. 用过哪些国产数据库、国产技术栈?迁移过程中遇到哪些问题?
118. 你用过哪些锁?
119. 用户表和商品表,怎么查询到个人已付款的数据,再加一个消费金额大于 1000 的条件,怎么查询?
120. 消息队列讲一下。
121. 缓存击穿的原理及解决办法。
122. 大批量数据怎么导入、导出?采用分批处理、同步处理还是异步处理?
123. 数据库怎么发现慢结构化查询语言(慢 SQL),以及怎么优化?
124. 事务失效的方式。
125. Redis 分布式锁。
126. 创建线程池的几种方式。
127. MyBatis-Plus。
128. 你用过哪些数据库?Oracle 数据库和 MySQL 数据库,哪个与达梦数据库更接近?
129. 数字人民币解冻付款,怎么处理高并发?
130. 你们的付款拆分是怎么设计的?
131. 什么是幂等性?
132. Redis 分布式锁。
133. 线程池的创建方式。
134. Oracle 数据库和 MySQL 数据库,哪个与达梦数据库更接近?
135. Redis 用在哪些业务中?
136. 默认的事务隔离级别。
137. 大批量数据处理的方式。
138. 消息队列怎么保证一致性?
139. 消息队列怎么保证数据一致性?比如最终消费金额都是 50 元,不会导致问题。
140. 缓存常见问题:缓存击穿、缓存雪崩,还有什么?
141. Oracle 数据库讲一下。
142. 控制反转(Inversion of Control,IoC)和面向切面编程(Aspect-Oriented Programming,AOP)的原理讲一下。
143. 创建对象的几种方式。
144. 如何解决内存溢出?
145. 事务各个隔离级别及其可能出现的问题。
146. Java 类加载过程。
147. ThreadLocal。
148. Java 类加载器。
149. 结构化查询语言(Structured Query Language,SQL)优化方式,主要优化什么?
150. 消息队列用于解耦时,怎么保证业务和数据的一致性?
151. 抽象队列同步器(AbstractQueuedSynchronizer,AQS)。
152. 有一个接口,响应时间突然变长,如何分析和排查?
153. 幂等性。
154. 信创迁移,你做了哪些工作?
155. 遇到过哪些麻烦的技术难点和问题?
156. Integer 缓存机制。
157. 线程池的核心参数。
158. 线程池的执行流程。
159. 高并发接口,每秒查询次数(Queries Per Second,QPS)过万,接口怎么设计?
160. Redis 扣减成功,但是没有写入数据库,怎么处理?
第 3 部分:第 161—239 条
161. Java 虚拟机(Java Virtual Machine,JVM)的运行时数据区。
162. 多版本并发控制(Multi-Version Concurrency Control,MVCC)解决什么问题?
163. 死锁。
164. SELECT … FOR UPDATE 使用了哪些锁?
165. @SpringBootApplication 注解由哪些注解组成?
166. 事务的原理及传播机制。一个类里面有两个方法,一个有事务,一个没有事务,相互调用会有什么情况?
167. 代码运行在 Java 虚拟机(Java Virtual Machine,JVM)的什么地方?
168. 国产中间件、国产 PostgreSQL 数据库,以及有哪些国产化技术?
169. openGauss 数据库和 MySQL 数据库、Oracle 数据库的区别。
170. String 字符串存在哪里,堆还是栈?
171. 讲一下堆和栈的区别,分别存储什么?
172. 达梦数据库、Oracle 数据库、MySQL 数据库,哪个性能更好?
173. openGauss 数据库、Oracle 数据库、MySQL 数据库,哪个性能更高?
174. OpenFeign 远程调用时,A 服务连接 B 服务,B 服务有 1、2、3 三个节点,会连接到哪个节点?
175. 微服务中的配置使用什么?配置只能发布后才能生效吗?不能实时生效吗?
176. 多线程运行结束后,我怎么知道这几个线程都正确运行结束了?有什么方式?10 个线程执行完了,需要走其他逻辑,我怎么知道这 10 个线程执行完了?
177. 怎么知道这 10 个线程执行完了?
178. 线程池的运行流程。
179. 创建线程池的几种方式。
180. Spring Boot 常用注解。
181. 对象存储服务(Object Storage Service,OBS)容器。
182. Linux 操作系统常用命令。
183. Redis 默认使用哪种持久化方式?
184. Redis 怎么保证数据一致性?
185. 国产化项目迁移过程中,你遇到了哪些问题?
186. 如果让你重构一个项目,你会怎么考虑?
187. Java 虚拟机(Java Virtual Machine,JVM)优化,你做过哪些?
188. 有没有做过支付业务?你是如何保证数据一致性的?有没有采取过哪些措施?
189. volatile 关键字用在了哪些地方?synchronized 关键字用在了哪些地方?
190. 索引失效的方式。
191. 缓存用在了哪些业务上?
192. synchronized 关键字和 volatile 关键字的区别。
193. 如何保证数据的一致性?
194. 面向切面编程(Aspect-Oriented Programming,AOP)中的通知,你是怎么使用的?有哪些业务场景?
195. 业务当中,不同用户的权限你是怎么处理的?代码当中有写过吗?怎么写的?
196. 面向切面编程(Aspect-Oriented Programming,AOP)通过什么实现?
197. Java 类加载过程。
198. Java 类加载器有哪些?
199. 什么是内存溢出?怎么解决?
200. synchronized 关键字和 Lock 接口的区别。
201. 线程安全的集合有哪些?
202. ConcurrentHashMap 为什么是线程安全的?
203. volatile 关键字讲一下,怎么用?
204. 事务隔离级别及其可能出现的问题,怎么解决幻读?
205. 事务的原理及传播机制。
206. 策略模式。
207. 技术上做过哪些业务难点?
208. Activiti 工作流。
209. 服务产生大面积雪崩问题的解决办法。
210. 事务的原理和作用、事务传播机制。
211. 一个类有两个方法,A 方法有事务,B 方法没有事务,相互调用会有什么情况?
212. 介绍一下微服务的几个组件。
213. 没有需求文档,有个东西让你开发,你怎么快速熟悉一个项目?
214. 用过哪些线程池?有什么区别?怎么分析线程池的一些指标?
215. 消息队列(Message Queue,MQ)怎么保证消息一致性?
216. 用过哪些中间件?
217. Java 虚拟机(Java Virtual Machine,JVM)优化你做过吗?怎么去分析和优化?
218. 国产中间件。
219. openGauss 数据库和 Oracle 数据库的函数有哪些差异?数据类型有哪些差异?具体哪些数据类型有差异?
220. openGauss 数据库和 MySQL 数据库、Oracle 数据库的区别。
221. 配置使用的是什么?配置只能发布后才能生效吗?不能实时生效吗?
222. 多线程运行结束后,我怎么知道这几个线程都正确运行结束了?有什么方式?10 个线程执行完了,需要走其他逻辑,我怎么知道这 10 个线程执行完了?
223. 提到的 Elasticsearch(分布式搜索与分析引擎,ES),你怎么通过手机号后四位检索到加密数据?
224. 代码中使用了哪些加密算法?
225. 项目中你是如何处理加密数据的?对于加密的数据,你是怎么查询的?比如手机号后四位,你怎么查询、做搜索?
226. 锁讲一下,用过哪几种?
227. synchronized 关键字和可重入锁的区别。
228. 什么是幂等性?
229. 项目中如何保证数据一致性和消息一致性?
230. 栈涉及的先进后出概念,能举个例子吗?
231. 栈和堆分别有什么作用?
232. 队列和栈的区别。
233. 事务隔离级别的作用。
234. 如何保证数据库数据一致性?
235. 索引失效、事务失效的方式。
236. 缓存击穿的原因以及解决办法。
237. 怎么记录线程运行完了,并且都正确提交了,可以继续走接下来的流程?
238. 当数据响应比较慢或者接口比较慢时,你怎么定位是哪一块的原因?
239. 创建线程池的几种方式。
备注:多家累计问题,没有去重,部分词汇可能不正确,看的时候注意甄别一下!