球友们好,今天给大家分享一份牛客上的优质面经,收录在《Java 面试指南》的优质面经模块下,包括一面+二面+三面+HR 面,同时,把答案贴出来供大家参考,目标是大厂的球友们注意了,知道重心在哪里。
一面|1h
- 自我介绍
- select、poll、epoll?
- epoll的两种触发模式?
- TCP三次握手过程,有什么状态,状态机如何变化?
- TCP握手的目的有哪些?
- 什么是 TIME_WAIT 状态,为什么需要 TIME_WAIT 状态?时间是多久,为什么?
- TCP 和 UDP 的区别?
- TCP 拥塞控制?慢启动的时候窗口在什么情况下会增长?为什么会呈指数增长?
- Linux 中一个进程的虚拟内存分布长什么样?内核空间+用户空间(6 种不同的内存段)。
- 为什么要用虚拟内存?
- 虚拟地址映射为物理地址的过程?
- 进程和线程的区别?哪些资源是线程共享的,哪些是线程独占的?
- 使用线程有哪些好处?
- 使用线程有哪些坏处?
- 进程有哪些同步的机制?
- 协程的实现原理?无栈协程和有栈协程?独立栈和共享栈?
- 什么是稳定排序?
- 聊项目,难点,怎么解决?
- 手撕:189.数组循环右移。将一个长度为 n 的数组,循环右移 k 位,要求时间复杂度为 O(n) 空间复杂度为 O(1) 。
大约 22 分钟