0227【快手】电商Java日常实习一面
全程50分钟,面试官循循善诱地引导但是感觉问得有点深,不是靠单纯被八股能答出来的,特别是网络那块
【项目】
- 谈谈你的项目用户规模和应用场景
- 你的仿12306项目如何保证库存不超卖
- 如何保证Redis与Mysql数据一致性
- 怎么提高扣减库存时候的系统并发量
- 你提到的了预扣库存,异步下单的思路,怎么保证异步下单一定是成功的呢?如果失败了该怎么处理?
- 12306每个座位只能卖一次是怎么保证的?
- 你的消息或请求存在重复消费问题吗?是怎么解决的?
【八股】
全程只有计算机网络基础,但有些细节抠的比较难受,并且连链路层和物理层的都问了
- 讲一讲网络分层、每一层的职责是什么?
- 为什么要有应用层,如果没有会怎么样?
- 传输层的职责是什么,如果没有传输层会怎么样,可以直接通过ip进行通信吗?
- 如果只通过ip完成通信,主机可以确定进行通信的是哪个进程吗?
- 讲一下TCP报文头部信息
- 网络层的职责是什么?网络接口层的职责是什么?
- IP寻址和MAC寻址有什么不同?有了MAC地址为什么还要IP地址?
- 你对物理层的理解是什么,物理层有什么协议?
- 如何理解TCP的拥塞控制、流量控制,两者有什么区别,分别是为了保护谁的?
【算法】
用O(logn)的复杂度找出一个排序数组中出现次数超过一半的数字,没有则返回-1
思路:看到排序数组和logn就想到二分,先找到N/2位置的元素,这个元素一定是出现超过一半的数组,再利用两次二分找到第一个位置和最后一个位置
更新1 2.28下午约二面
更新2 2.29二面,只问了些项目细节和思考,没有八股和算法,20min结束
更新3 3.1 oc