面试公司:虾皮
面试岗位:Java后端开发
面试过程:
笔试
1.选择题
10道计算机相关
10道数学相关
2.编程题
用多重背包算法来做
根据给出的数据建二叉搜索树,再返回所有叶子节点
k个一组翻转链表
一面
1.Linux
·进程间的通信方式
·内核空间和用户空间;为啥要这么区分
·什么是分段机制以及分页机制
2.网络
·TCP四次挥手的过程
·TCP 流量控制和拥塞控制
·输入 https://www.shopee.com 以后的过程
·对 websocket 有了解吗
·IO 多路复用的几种系统调用;主要区别
3.数据结构
·什么是红黑树
·介绍一下 B+树、B树
4.线程
·Java 多线程实现方式
5.MySQL
·持久化手段,执行update 语句时,如何保证数据持久化
·ACID
6.Redis
sorted set 底层的数据结构;原理
7.Kafka
·原理
·怎么保证高可用、高性能
二面
1.ConcurrentHashMap
·get、put方法
·为什么插入新节点的时候是用尾插法
2.网络
·web 安全有了解吗
·CSRF
·TCP 的 CLOSE_WAIT 和 TIME_WAIT 状态;CLOSE_WAIT 的作用
3.MySQL
·讲讲 MVCC
4.Kafka
·分区的分配策略
·再平衡原理
5.Linux
·用什么命令看 tcp 的状态信息
6.其他
·你技术方面最大的优势是什么
·职业规划
7.算法
·对一个数组进行排序,元素只有0,1,2,使用那种排序方式;为什么;
·找一个字符串里面最长回文子串
三面(HR面)
·你对自己未来五年的一个规划是什么
·你的某某经历主要是做什么?有什么印象深刻的事情?
·你还有什么是想要了解的吗?



