📜  高盛面试经历 |第 19 集

📅  最后修改于: 2022-05-13 01:58:24.581000             🧑  作者: Mango

高盛面试经历 |第 19 集


我在班加罗尔的办公室接受了 GS 的采访。我有 4 年使用Java进行全栈开发的经验。我接到了一位顾问的电话。

  • 第1轮
    1. 在Java中你对哪些概念感到满意?我说收藏。他问你用过哪些收集类?我说的是 HashMap、ArrayList 和 HashSet。
    2. 你什么时候使用 Set 什么时候使用列表?我说 Set 支持唯一的非空元素,而 List 没有那个约束。所以,如果我想要独特的元素,我会使用 Set。他问还有什么考虑吗?我说的是要对集合执行的查询类型。喜欢搜索。他问有什么例子吗?我说——员工数据库。员工必须是唯一的,因此我们可以使用 List 并通过二分搜索或类似技术进行搜索,因为通常它们按某种顺序排序。但我认为他一直在期待 O(1) 查找时间的答案或设置。我解释了 HashMap 和 HashSet 的工作原理,以及这将如何帮助开发人员轻松实现元素的唯一性,但面试官并不相信我对他最初问题的回答。
    3. equals() 和 hashCode() 的合约是什么?如果一个被覆盖但另一个没有被覆盖怎么办?
    4. 在给定数组中找到第二个最小值。
    5. 在排序和旋转的数组中找到枢轴点。
    6. 有什么问题要问我吗?
  • 第二轮
    1. 简单介绍一下你的工作经历。
    2. 概述您最近的项目设计。
    3. 假设我有一个 UI,其中有一个项目列表或表格,每个项目都有利润属性、折扣属性等。如何确保多个用户不会使任何项目的状态不一致。用户可以更新属性或其他一些 Web 服务也可以这样做。我建议同步 item 的 setter 方法。他问如何对物品进行分类。我说这些项目将驻留在数组列表中并实现了 Comparable 接口。他要求提供工作代码。当我在 compareTo() 方法中编写表达式时,他说设计不灵活,因为存在排序标准的硬编码。他说,当有人想按另一个属性排序时,管理这么多重复的对象是不可能的。我说我们可以用工厂方法模式来做到这一点。至此,他有效地结束了这轮面试。介于两者之间,他提到了 Comparator 界面,我向他解释了它是如何工作的。我说如果不想修改现有类,这是一个不错的选择。我认为他期待 compare() 方法的实现,因为这不需要重复的对象,并且可以通过在不同的类中简单地实现 Comparator 来完成不同标准的排序,每个排序标准一个类,然后调用 sort()具有该 Comparator 实现的 Collections 类的方法。
    4. 有什么问题要问我吗?

    被告知要离开一天。建议:尽量不要提出设计模式,除非被要求这样做或者你有解决设计模式问题的经验。听面试官的话,保持警惕。他们提供提示。在第 1 轮中,我在旋转数组问题中也犯了一个错误。他给出了一个测试用例,我的代码会失败。我纠正了错误。面试前要保证充足的睡眠。

    高盛的所有实践问题!