一面
项目聊了20***要问到用的技术栈、中间件
Java 知识:
1. 异常体系设计
2. GC 过程,调优过程、死锁处理
3. 线程池设计,线程数量如何配置选择(高低并发、任务执行时间长以及短的各
种场景)
4. synchonized 和 lock 的实现,synchonized 底层实现、锁升级
操作系统:
1. 基础知识八股文,进程、线程的区别,线程同步、进程通信
2. 常用的 linux 命令
回答有用过ping、ssh,由此引发到计算机网络部分,ping、ssh 分别属于哪一
层,实现方式
计算机网络:
1. 三次握手和四次挥手
2. 为什么握手是 3 次,两次可以吗,4 次呢
如果server 端没有收到第三次 ack,但是收到了 client 端发送的数据,server端会怎么处理
3. 为什么挥手需要 4 次
4. 介绍一下 tcp,如何保证可靠传输
5. http 1/1.1/2 的区别
主要回答了连接复用、长连接等方面
6. https 相关问题
算法:
1. 手写单例模式
2. 反转链表 leetcode 206
二面
项目经历聊了大概20min,比较关注项目经历中有难度、挑战的事情
算法:
1. 手写无锁队列
2. 遍历二叉树(非递归) leetcode 144
数据库:
1. 索引的实现方式
2. hash、B+、B 树实现的优劣对比(Mysql MongoDB 分别是怎么实现的)
3. 数据库的事务、隔离级别、实现方式
开源社区: 日常工作中有没有参与经历过开源项目,看过什么源码,对该技术的理解
聊到了redis、kafka; redis 性能高效的原因(重新实现了数据结构、IO 多路复
用、多路复现的底层实现epoll,单线程基于内存)
持久化方式rdb、aof
全部评论
(3) 回帖