这是摩根士丹利为其孟买办事处招聘经验丰富的Java开发人员的活动。
第 1 轮:笔/纸
第一轮由10个问题,Java核心的8个问题(包含2个编码问题https://www.geeksforgeeks.org/rearrange-positive-and-negative-numbers/和检查字符串的左半部分具有相同的字符权half) 和 2 用于 SQL 查询。
对于两个编码问题,一个是对数字进行排序(使用没有额外空间的稳定排序),另一个是基于字符串的问题(时间复杂度应为 O(n) 的约束)。我能够解决除 SQL 查询之外的所有问题。
第 2 轮:采访 F2F 第 1 轮
面试官问的问题几乎涉及Java 的所有方面。
面试官讨论了以下主题:
- OOP的概念
- 集合、HashMap 和 ConcurrentHashMap 使用它们之间的区别。
- 多线程,绿色线程, Java是否使用绿色线程。
- JVM、类加载器的不同类型及其层次结构和类加载机制、堆空间和堆栈。
- 字符串,不可变类
我能够回答所有问题,面试官似乎很满意。这一轮持续了大约一个小时。
第 3 轮:采访 F2F 第 2 轮
这一轮涵盖了设计模式及其应用以及最后提出的难题。
- 设计一个停车场系统,可以容纳三种不同类型的车辆,卡、卡车和自行车。系统应该能够为车辆分配最近的可用停车位,当车辆退房时,应根据车辆类型和占用停车场的时间向它们收取费用。
- 假设两条密度不均匀的绳子在六十分钟内完全燃烧,你怎么能测量四十五分钟。
- 给定一个后端和一个前端,前端向后端(后端 A)提供一堆数据,后端然后将该数据发送到另一个后端(后端 B)。 Backend A和Backend B通信可以使用什么机制。(面试官想知道我是否熟悉后端之间通信的REST APIs、SOAP APIs和JMS以及在什么场景下使用什么)
我被困在绳索难题上,但能够想出一个面试官似乎满意的解决方案。
第 4 轮:采访 F2F 第 3 轮
这一轮是由我被招募的团队的团队负责人进行的。他问了非常有趣的问题。
- 给定一个由开发人员及其经理在地图中组成的树层次结构,以另一个地图的形式提供输出,其中键是员工的姓名(开发人员或经理),值是在他们之下工作的人数。(使用递归想出一个答案)
- 他告诉我优化笔/纸轮中提出的字符串问题。现在的约束是空间复杂度应该是恒定的。(我提供了一个改变原始字符串的解决方案,他很满意)。
第 5 轮:管理轮
这轮是我被聘用的部门主管主持的,问题主要是你为什么想离开你现在的组织,不能用纸笔回答SQL问题的原因以及我解决的任何问题在我以前使用设计模式的组织中。
第 6 轮:人力资源轮
这一轮从离开现组织的原因开始,然后是行为问题,最后是工资谈判。
总的来说,这是一次了不起的经历。