拼多多服务端研发工程师一面二面
(代替同门发的面经)
拼多多服务端研发工程师一面
- 自我介绍
- 面向对象和面向过程的区别是什么?
- 面向对象编程的三大特点是什么?请分别解释这些特点。
- 在面向对象编程中,多态可以分为哪几类?请解释它们的区别。
- 请简述TCP/IP协议中的三次握手过程,为什么需要三次?
- 在TCP通信中,客户端如何确认收到的是服务端的响应?
- 服务端与客户端的监听过程是如何创建的?能否描述完整的过程?
- 服务端可以处理的最大连接数是由哪个参数决定的?如何配置这个参数?
- 假设你需要查找一个日期为xxx、文件大小不小于10M的文件,请写出相应的shell命令。
- 如何通过shell命令查看某个进程的CPU占用情况?
- 你对我们的公司文化了解吗?公司的办公地点(base)在哪里,工作作息如何?
- 你未来希望从事哪些方向的工作?有怎样的职业规划?
- 在你参与过的项目中,你的具体分工是什么?能否分享一下相关细节?
- 手撕: 给一堆区间,找到这些区间的最大值,往前推最大连续区间(简单题)
----------
服务端研发工程师二面
- 在你参与的项目中,是否遇到过什么技术难点?你是如何解决这些问题的?
- 计算机在请求一个URL时,经历了哪些步骤?涉及到哪些协议?请简述整个过程。
- TCP的连接建立过程是怎样的?
- 请详细解释TCP协议中的三次握手和四次挥手的过程及它们的意义。
- 为什么TCP在断开连接时需要等待2MSL(Maximum Segment Lifetime)?有什么作用?
- TCP如何确保数据传输的完整性和可靠性?
- TCP在保证可靠性的同时,如何提高数据传输的效率?
- 进程与线程有什么区别?请解释两者在资源分配和执行中的不同。
- 用户线程和内核线程的区别是什么?这两种线程是如何实现的?
- 为什么操作系统需要区分内核态和用户态?它们分别解决了什么问题?
- 系统调用在计算机中经历了哪些步骤?操作系统如何处理系统调用?
- new/delete的底层实现原理是什么?它们与malloc/free的区别有哪些?
- 哈希表是如何在底层实现的?请简要描述其工作原理。
- 当哈希冲突发生时,通常有哪些解决方案?
- 请介绍几种常见的排序算法及其时间复杂度,并指出哪些是稳定的排序算法。
- MySQL中的索引是如何实现的?它使用了什么数据结构?
- MySQL是如何实现事务隔离的?有哪些常见的隔离级别?
- 手撕:链表头部插入元素,尾部插入元素,删除链表(需要自己建立链表)