这是一个开发专家(Java,JAVASCRIPT)职位(4-6 岁)。这是一个很长的过程,但非常棒!!!
第 1 轮(电话)[ > 1 小时]
1) 为什么Java的main 方法是无效的?
2) main 方法中的字符串参数是必需的吗?什么时候读取参数?
3)睡眠和等待的区别
4)yield vs join的区别
5)已检查和未检查异常。
6) 并发哈希映射。
7) isInstance 和 Instance of 的区别
8)什么时候使用反射并举几个方法?
9)快速失败与安全失败迭代器
10) JVM JRE 和 JDK。rt.jar 包含什么?
11)什么时候使用LinkedHash Map和Tree map?插入、删除和搜索哪个更好?
12)什么是静态方法?静态变量存放在内存的什么地方?
13) Java内存模型。
14) Java垃圾回收过程。什么是survivor space?
15) 何时重写 toString() 方法?
16) 设计一个执行以下操作的 DS:
1)插入,2)删除,3)以 O(1) 复杂度搜索。
关于我以前的经验、爱好等的一般性问题很少
3-4 小时后,我收到更新,说我已通过电话筛选,必须参加 F2F。
第 2 轮 F2F(90 分钟)
介绍完之后, Java的问题很少,然后他开始问一些编码问题。
1)编写一个递归程序来查找二叉树中2个节点之间的距离。
修改它以了解 parent 和 root 之间的区别。
2) 编写程序“isPerfectSquare”,不使用 SQRT、* 和 /运算符。
3)为双向链表写一个无限栈。
4)如何设计棋盘? ->讨论持续了将近30分钟。解决方案是渐进式改进,面试官似乎很满意。
第 3 轮 F2F(90 分钟)
1)什么是策略模式?解释并实施它。
2)什么是依赖注入?哪种模式支持它?
3)用一个例子来解释堆排序的端到端。为它实现可执行代码。
4)死锁,竞争条件,互斥。
5)写一个Java程序来实现死锁,也解决。
第 4 轮 F2F(60 分钟)
这是纯粹的设计回合,非常具有挑战性。
1)如何为作业调度程序创建REST API?
2)什么时候用IS-A,什么时候用HAS-A关系?组合、聚合、关联、专业化、实现、泛化之间的区别。
3) 为购物车中的结账选项设计 REST API 以及用于生成订单 ID 的 API 是什么
4) SQL 中的 1 个 JOIN 查询。
第 5 轮 F2F(90 分钟)
1) 编写 SQL 查询以删除表中的重复行。
2)为FILE/FOLDER结构画一个UML类图。
3) 使用 Conditional 运算符实现 OR 和 AND运算。
4)在二叉搜索树中找到第n大的元素(Sol :Traverse inorder n 次)
5) 不使用栈构造中缀表达式的二叉树。
第 6 轮(90 分钟)(技术管理轮 -F2F)
1)一些谜题
2)解释项目。关于它的一些深入问题。
3)quora是如何实现其架构的。
4) Facebook 中好友的好友功能是如何实现的?
5)设计REST API的最佳方法是什么?
6)关于背景,SAP等的一些细节
第 7 轮(45 分钟)(技术管理轮 – 电话)
1) Java的哈希映射是如何实现的?
2)为什么要发展面向列的数据库?解释一下。
3)关于Java的更多问题。
4)一些行为问题给出假设情况(棘手)
5)迄今为止我在技术上完成的最大挑战任务。
第 8 轮(人力资源 – 电话)
1)你的优点和缺点是什么?
2)为什么是SAP?
3) 通知期。
4) 预期薪水。
提示:
1)这家公司的问题不像亚马逊和其他公司那么难,但涵盖的主题比其他公司问的要广泛。(不限于DS和Algo)
2)即使你精通简历中提到的许多主题/技术,面试官会给你一个选项来选择你所选择的主题。
3)没有就是完美的!!!所有面试官都非常乐于助人,并在解决问题的过程中提供提示/线索。请询问您是否需要有关问题的更多详细信息,而不是保持沉默。所有最好的人 🙂