📜  多商品交易所(MCX)面试经验

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

多商品交易所(MCX)面试经验

第一轮:电话面试

  • 描述你自己——你目前的角色是什么,你在当前公司从事的项目以及使用的技术。
  • 他问我是否知道Java。我说没有专业经验,但对Java核心有一定的了解。
  • 讲述一些Java 8 的特性——我说的是 Streams 并试图解释它。接下来我讲述了接口中的默认方法。
  • 他问我是否知道 Streams 在内部是如何工作的。我说我不知道。
  • 关于 lambda 函数,它们是什么——我告诉过它们是匿名函数,当我们不想创建一个不会被多次使用的单独函数时使用它们。举了一个例子,并说明 lambda函数是函数式编程的一个概念(我不太了解)。
  • 解释运行时和编译时多态性。
  • 解释什么是 OOPS 中的封装。
  • 抽象是什么意思?抽象类和接口的区别。
  • 您在公司中使用过多线程吗?举一个你用过的例子(他想要我在当前公司工作的项目的例子)。
  • 给定一个奇数长度的单链表,找到其中的中点,即找到列表中间的节点。他说我不能使用超过1个循环。
    我的解决方案(效率低,但只使用一个循环):
    int getMiddleValue(Node head) {
        Node p = head;
        int cnt = 0, i = 0;
        boolean flag = false;
        while (true) {
            if (!flag && p != null) {
               p = p.next;
               cnt++;
            }
            else if (p == NULL) {
              p = head;
              flag = true;
            }
            else if (flag) {
              if (i < cnt / 2) p = p.next;
              else return p.val;
            }
       }
    }

    最佳解决方案:使用两个指针,一个指针跳转距离为1,另一个指针跳转距离为2。当另一个指针到达链表末尾时,第一个将在中间。

  • 在不使用模数、除法或乘法运算符的情况下检查一个数是否为素数。允许任意数量的循环。
    提示:除法只是一系列减法。解决方法:通过反复减法求余数。当数字变为负数时,除数 - 数字是余数。
    public int getRemainder(int number, int divisor) {
        while (number >= 0) {
            number -= divisor;
        }
        return divisor - number;
    }
  • 解释递归。使用递归时需要注意什么?突破递归的基本情况。递归使用什么数据结构?堆。给定一个带有单个参数 n 的函数显示。使用递归打印从 1 到 n 的数字。提示:堆栈。
    public void display(int n) {
        if (n == 0) return;
        display(n - 1);
        System.out.println(n);
    }

第二轮:面对面面试

  • 描述你自己。
  • 关于简历、在当前公司工作、使用的技术的问题。我曾经使用过 C++,所以他们问我是否对Java感到满意。
  • 关于一些项目的问题。在一个项目中,我说我使用了朴素贝叶斯,他们让我写公式。
  • 你在项目中使用了接口/继承吗?我说不也不继承。
  • 什么是封装?你知道多线程吗?我说是的,因为我在 C++ 中使用过多线程,并且说在Java中这并不困难。
  • Array 和 ArrayList 的区别。
  • 以反向或逆时针方向移动给定移位值的数组。
  • 我是否知道 SQL 以及我知道多少。
  • 他们问我是否愿意编写涉及过程、连接等的复杂查询。
  • 你对人有多好?在团队中工作?你喜欢挑战并且可以应对吗?无论您是喜欢挑战的人还是只是将其视为负担的人。我说我两者都有,他们笑了。
  • 您是否愿意从头开始从事项目?我说我可能需要一些帮助。

面试持续了不到30分钟。

第三轮:面对面面试

  • 首先,与小屋中的一个人进行了互动。她询问了有关教育、工作经验、工作项目的问题。她询问当前和预期的 CTC。他们说如果我没有按时获得当年的加薪,他们会考虑我最近一次更新的工资。我听了之后有点不高兴。
  • 然后,她带我去了另一个已经有四个面试官的小屋。
  • 首先他们问我工作经验。由于我使用过 C++,他们从头到尾询问了我的编译过程。
  • 他们说这个角色是Java ,所以让我从 1 到 10 给我的知识打分。我给 7 分,所以他们问为什么,我说我知道核心Java ,但可能还有很多我不知道的概念。
  • 他们问我在哪里使用过Java,我在一个项目中说,偶尔在竞争性编程中。
  • 他们询问了套接字编程和步骤。正如我在讲述这些步骤时,他们询问了有关文件描述符和套接字的一些信息。我从未在Java中使用文件描述符和套接字。后来我发现在Java SE 中有一个单独的类 FileDescriptor。
  • 他们问我是否有任何 UI 经验,我说曾在 Netbeans 上使用过Java Swing。他们问我是否有 Angular JS 经验,我说没有,但知道基本的 Web 技术。
  • 他们说我可以离开那一天。

再次,采访持续了不到30分钟。

第四轮:电话面试

  • 描述你自己并描述你的工作。
  • 在公司的项目中如何确保低延迟?
  • C++ 和Java中的 OOPS 之间的区别。
  • 为什么要找工作变动?

几天后收到offer。