Paytm 面试经验(Java后端开发人员)
第1轮:
有一个由 4 个部分组成的在线回合,需要在 70 分钟内完成。
- 数据结构问题:找到字符串中相邻字符之间的最小交换次数以转换为回文。如果回文不可能,则返回 -1,如果字符串已经是回文,则返回 0。 https://stackoverflow.com/questions/51796237/minimum-number-of-swaps-to-convert-a-string-to-回文
- 数据结构 MCQ:13 个基于堆、队列、b+ 树、排序算法的问题。有几个问题
- B+ 树的叶子节点什么时候会指向兄弟节点?
- 红黑树的哪个性质是正确的?
- 假设堆栈是用两个队列实现的,并且给出了一些推送和弹出操作,那么总共完成了多少入队和双端队列操作?
- 关于 MinHeap 和 MaxHeap 的问题。
- Java Based MCQs:主要提出了与线程、类、异常相关的 13 个问题。有几个问题
- 以下哪个是/是有效的线程构造函数。
- 创建了两个线程并运行包含一个循环运行 1000 次的函数。在循环内部,同步打印两个变量。打印预期输出。
- 在 try 块中提到了算术运算 = 25/0 的一个 try/catch 问题,紧随其后的是 finally,然后是具有 ArithmeticException 处理的 catch 块和 catch 之后的一条语句。打印预期输出。
- 多态性问题,其中创建了三个具有相同名称但参数不同的函数,例如字符串、 Object 和 arraylist ,并使用 NULL 参数进行了函数调用。我们需要打印预期的输出。
- 基于线程的屈服和连接函数的两个问题。
- SQL 查询 MCQ:13 个基于插入操作的查询,使用 JOIN(自然连接、左连接、右连接)选择查询和回滚数据点。
第 2 轮:
这一轮混合了数据结构和低级设计问题。
- 数据结构问题:
- https://www.geeksforgeeks.org/check-for-balanced-parentheses-in-an-expression/
- https://www.geeksforgeeks.org/zigzag-tree-traversal/
- 不使用“*”和重复的“+”运算符将两个数字相乘。(https://www.geeksforgeeks.org/russian-peasant-multiply-two-numbers-using-bitwise-operators/)
- https://cs.stackexchange.com/questions/43073/fit-stack-of-stone-of-varying-length-into-a-well-of-varying-length
- 设计问题:
- 设计由具有三个缓存(C1、C2、C3)的 DataService 类组成的系统的低级图。此类将有一个函数getData(id) 将在内部调用 C1。如果在 C1 中找不到数据,则调用 C2,如果丢失,则依次调用 C3。期望我在设计模式中使用责任链。
- 为什么我们将(Spring boot)Beans定义为返回接口而不是实现。由于该接口的多个策略实现,我给出了答案。战略模式。
- 什么是外观模式。举例说明。
- 什么是继承、抽象、本地工件、pom.xml、maven、分片等问题。
- Java中队列的peek()和poll()方法的区别
第三轮:
这一轮主要围绕设计进行。面试官让我用Java编写类。
- 设计记录器类。他们正在寻找单例设计模式在这堂课中的应用。
- 设计一个使用互斥锁解决读写器问题的类,其中允许多个读取操作和单个写入操作。
- 问我关于 Thread 类的 wait() 和 sleep() 方法的区别。
- 如果你有一个服务说A,它依赖于服务B。由于某种原因,B服务出现故障,你会在服务A中做什么来应对这种情况。
- 什么是 hashCode函数以及我们为什么需要它。这个函数属于哪个类。
- 什么是Java中的序列化和反序列化。
- 使用 Spring Boot 框架Java创建自定义注解。
- 还询问了一种数据结构。 https://www.geeksforgeeks.org/anagram-substring-search-search-permutations/