第 1 轮(数据结构和算法):自我介绍(5 分钟)
之后,他们问了下面的
- 找到出现多次的元素(https://www.geeksforgeeks.org/array-elements-that-appear-more-than-once/)
- 查找数组中出现次数超过 n/k 次的所有元素。(https://www.geeksforgeeks.org/print-all-array-elements-appearing-more-than-nk-times/)
- 给定 2 个节点,使用父指针查找 LCA。我给出了一个基于 HashMap 的解决方案来存储所有路径,直到从根开始的 2 个节点。他们想要一个空间优化的版本,所以跟踪父指针并检查祖先。类似于链表的交点(https://www.geeksforgeeks.org/lowest-common-ancestor-in-a-binary-tree-set-2-using-parent-pointer/)
第 2 轮(系统设计和 DSA):对当前项目架构的深入描述。需要进行各种权衡。
- 解释断路器模式: https : //microservices.io/patterns/reliability/circuit-breaker.html
- HashMap 的内部实现: https : //www.geeksforgeeks.org/internal-working-of-hashmap-java/
- HashMap、HashTable 的区别。哪个是线程安全的,为什么?
- Spring 与 Spring 引导框架(如我的简历中提到的)
- Completable future、lamba 表达式、 Java 8+ 中的流
建议:在回答这些问题时要非常谨慎,面试官有很多深入的知识。
第 3 轮(管理轮):这是一场艰难的比赛。从当前项目开始,并在我的设计中进行了各种权衡。为什么我们在这里的代码中使用这种设计模式。底层架构有什么优势(我们用过:Hexagonal Architecture)
- 合并 K 个排序列表。 (https://www.geeksforgeeks.org/merge-k-sorted-linked-lists/)
- 讨论minHeap和maxHeap的内部结构
- 最快的排序算法 (https://medium.com/javarevisited/sorting-algorithms-slowest-to-fastest-a9f0e30937b9)
- 给定具有不同元素的多个文件,如何将它们分类为一个文件(不使用额外空间)。 https://www.geeksforgeeks.org/external-sorting/
- 设计一个可以有效执行 CRUD 操作的 RESTFul Web 服务
- @Controller 和 @RestController 的区别
- WebService 与 REST API
- Spring Boot 如何解决 Spring 无法解决的问题
提示:不要尝试直接跳转到代码。先和面试官商量。不要虚张声势,因为他们是知识渊博的人。
第 4 轮(人力资源和文化契合度):
- 工作地点,抱负,抱负。薪酬与福利。
判决:选择