📜  高级 MTS 的 VMWare 面试经验

📅  最后修改于: 2021-11-21 06:16:15             🧑  作者: Mango

我有机会在 2020 年 10 月接受 VMWare 采访。这是一次完全不同且令人难以置信的经历。这是我申请的高级开发人员简介。我是通过公司网站、职业门户网站申请的。一切都非常顺利。招聘人员非常友好。我被告知这将是一个 3 小时的背靠背面试,每个 1 小时针对不同的专业领域。我的面试持续了大约 3 小时 45 分钟。

以下是我被问到的问题清单,每一轮都有不同的面试官:

我获得了 Hackerrank 登录名,并共享了一个屏幕以检查我的编码技能。

第一轮(更多关于 Core Java):

  1. 给定一个单词列表,以某种方式排列它,就好像它们以字母方式出现在字典中一样,并从这些单词中向我提供字典中出现的最后一个单词。猫、蝙蝠、老鼠、国王、王后、智者、长、变焦、VMware
  2. 为 IT 园区设计停车场。您将公开哪些 API?你会使用什么设计模式?
  3. 给定一个类中的字符串列表。以类的客户端无法修改数组的方式定义 getter,但您可以在类中修改它。如果我们把它改成一个字符串数组,你会怎么做?
  4. 您将在上述问题中应用哪种排序算法,为什么?你将如何在不使用 API 排序方法的情况下迭代它?
  5. 什么是深拷贝,什么是浅拷贝?何时何地使用?

第二轮

  1. 什么是微服务,我们为什么需要它们?微服务的用例是什么?使用它们的优缺点是什么?什么时候垂直缩放,什么时候水平缩放?
  2. 什么是可扩展性,为什么需要它?高可用性和可扩展性之间有什么区别?
  3. 如果一个服务,比如说一个微服务,部署在一个集群的 3 个不同的节点上,它们会相互通信吗?如果是,那么如何?他们交流会是一个很好的设计,因为它是相同的服务吗?是否会制作数据库副本/将有多少个数据库实例..
  4. 什么是并发?什么是用例?线程如何通信?他们有哪些不同的跑步方式?
  5. 什么是同步?它是如何实现的,有例子..
  6. 我们如何创建一个线程……扩展线程,实现 Runnable?哪个更好?为什么?
  7. 什么是阻塞队列?如果满/空,它如何阻塞线程?
  8. 什么是并发集合?它们如何实现并发?
  9. 并发哈希映射的内部工作?什么是并发修改异常?
  10. 什么是流 API?它是干什么用的?
  11. 给定一份员工名单。我需要根据他们的名字/姓氏/年龄等搜索他们。但我的搜索应该被包含在内。应该使用哪些数据结构?我将如何搜索?

第三轮

  1. 反转链表
  2. 设计一个锁,其中有两个函数acquire() 和release() 并且两个线程必须使用它。你将如何为它编写代码?
  3. 设计一个 URL 缩短算法。 I/P 是一个带有用户参数的长 URL,您必须在他的电子邮件中向用户提供一个短 URL。单击短 URL 时,它会打开带有相应参数的长 URL。你将如何设计这个?
  4. 什么是依赖注入?
  5. 什么是里氏替换原则?
  6. 什么是MVC模式?为什么我们需要它?

总的来说,这是一次很棒的体验。