📜  高盛面试经历 | Set 23(2 年以上Java开发人员角色经验)

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

高盛面试经历 | Set 23(2 年以上Java开发人员角色经验)

我在 Goldman Sachs 的班加罗尔办公室接受了Java开发人员职位的面试,我想与您分享我的经验,以帮助每个人通过并做好准备。
报到时间是上午 9 点 30 分,我提前到达那里,得到了一个临时身份证,并在上午 11 点左右开始轮次。

第 1 轮(书面:1 小时)
我们都收到了包含 3 个问题的试卷和 1 小时的答题纸。
1. 编写一个将数字(范围:0 到 90 亿)转换为字符串字面量量的方法,例如示例输入:12345,示例输出:12345。
2. 将两个数组列表合并为一个而不使用内置函数,映射和设置,从合并列表中删除所有重复项,并打印重复项数。
3. 给了两张表,一张表与另一张表有外键关系,给出了2个场景,需要在两张表之间写SQL连接,聚合运算符等并得到结果。

在这之后半个小时就宣布了结果,然后我就接到了下一轮的电话。

第 2 轮(F2F:约 40 分钟)
两个人参加了这一轮
1.询问我们目前的工作、工作、构建过程和我们使用的测试过程等。
2. 很多问题来自Java集合,Comparable,Comparator,同步hashmap,equals(),hashcode(),hashMap内部工作等。
3. 一些使用joins、group by、have、count等的SQL查询
4.多线程场景,生产者消费者问题,编写2线程死锁程序,锁定对象等。
5. 找到链表的中间元素,找到链表的最后第n个元素。
6. tribonacci 系列程序。
7.java8特性。

这一轮很顺利,我对大部分问题都给出了优化的答案。在此之后,我在下一轮电话之前等了大约 3 小时,中间吃了午饭。

第三轮(F2F:约 20-25 分钟)
两位女士参加了这一轮比赛
1.详细询问了我目前的项目,给了我各种场景,在你当前的项目中这将如何发生,逐步解释,涉及的数据库表,数据将如何持久化等。
2. 给我一些假设的场景,告诉我为它设计一个应用程序(使用 DB 模型或 Object 模型)并解释它。

我很好地解释了一切,并为第二个问题创造了良好的设计。这一轮后等了15分钟左右,下一轮

第 4 轮(F2F:约 20-25 分钟)
1.详细询问完整的项目,目前的组织,变更原因等。
2.编写程序以使用不超过2个堆栈实现队列
3. 为equals()方法编写一个程序来比较2个对象的内容,我使用instanceOf运算符来验证类类型,但他要求我改变它,使所有子类对象(具有相同内容)在比较时也返回false使用 equals() 方法,所以我使用 getClass() 方法而不是 instanceOf 来比较对象类型。

这轮面试后面试官印象很深,大约5分钟后,就接到了下一轮的电话。


第 5 轮(F2F:约 20-25 分钟)

面试官是Java的技术负责人

1. 给出了一些与Java中类型擦除相关的场景,并问我预期的输出/错误,我对此不太了解,首先我给出了错误的答案,然后他解释了我什么是类型擦除,我能够回答更多问题对此。
2.关于字符串常量池的一些问题,我答对了。
3.你不喜欢Java的什么/缺点? java8中的新特性。
4.然后他给了我以下场景并告诉我编写程序,
编写一个以列表为输入的方法,并从列表中返回任何随机值作为输出,列表中所有元素的返回概率应该相同,您将获得一个辅助随机函数,其值从 0.0000 到 0.9999999(考虑这些数字是高度精确的,我们不必担心精度)。我无法想出等概率的方法,所以最后他给出了一些线索,我得到了答案。
令 x 为 random 方法返回的随机值,n 为输入列表的大小。
x 可以在 0.000 到 0.999 之间变化
我们想要返回从 0 到 n-1 的列表索引。
这么简单的答案,将 x 与 n 相乘,得到从 0 到 n-1 的索引,并从列表中返回相应的值。

5. 然后他改变了上面的问题随机方法,并告诉它可以给出这些值中的任何一个 0,1,2,3,4,5,6,7,8 或 9,现在解决了同样的问题,我尝试了很多方法但是未能得到满意的答复。
后来,面试结束后,我想了想,用下面的方法得到了答案
令 x 为 random 方法返回的随机值,n 为输入列表的大小。
x 可以在 0 到 9 之间变化。
获取 n 中的位数(列表大小),假设列表大小为 230,因此它有 3 位。
现在我们需要将 x 从 0 – 9 转换为 0.000 – 0.999
为此,我们可以调用随机方法 3 次,假设它返回 3 个随机值 x1、x2、x3(所有值位于 0、1、2、3、4、5、6、7、8、9 中)
现在我们可以做 0.1*x1 + 0.01*x2 + 0.001*x3 得到一个从 0.000 到 0.999 的随机数。现在使用问题 4 中的方法,我们可以得到答案。
我希望我能在采访中想到这一点。

我的面试是在周六进行的,他们告诉我他们将在周一回来,我认为我之前的几轮比赛进行得很好,他们可能会弥补上一轮的一些失误,但不幸的是事实并非如此,周一他们告诉我他们可以不要让我的候选资格前进。我觉得我以很小的差距错过了一个非常大的机会。 🙁
我希望这篇文章对所有参加高盛采访的人有所帮助,祝大家一切顺利。 🙂

高盛的所有实践问题!