凉呀。
1. 自我介绍
2. 开始问项目,讲讲怎么“削峰”?你对“削峰”的理解是什么?业界的普遍解决方案?(blablabla讲了一通)
3. 你觉得什么场景都能使用这个解决方案吗?用户体验会怎么样?(不好)
4. 令牌桶算法和漏桶算法,能讲一下吗?(不能,不会)
5. Redis能抗的住那么高的流量吗?它自己怎么能保证高性能的?(主从同步master读,slave写)
6. 除此之外呢?(基于内存;单线程无上下文切换;多路复用IO,无阻塞))
7. 讲讲单线程和多路复用可能会产生什么问题?它的前提条件是什么?(不知道他要问什么,于是他继续引导)
8. 讲讲IO多路复用是怎么实现的?(select poll epoll乱讲一通)
9. 你说epoll可以直接就找到和事件关联的线程,是怎么找到的,你觉得是用什么数据结构存的?(类似于hashmap?)
10. 好,那你说说hashmap里都存它的什么?(token?不是。PCB?不是)
换个问题,建立一个socket连接,用什么来标识他?(我:socket头?有这个东西吗? 面试官(笑):怎么是我来回答问题了?)
11. 回到刚刚的问题,操作系统中之所以有多路复用,是因为有多个进程短暂频繁切换对吧。那你说说redis单线程和IO多路复用的条件是什么?(我终于开窍了,哦,不能放太大的数据,长连接会影响性能!)
12. 再问个难一点的。你写一个main函数,里面就写一句,int i = 1。从你写完,到它执行完,经历了什么?(我完全慌了)
怎么编译的?
没学过编译原理啊…那假设现在已经编译好了,怎么装载类的?
13. (失望)那聊一下常用的东西吧。mysql的引擎是什么数据结构?
14. B+树具体是什么样子的?
15. B+树的层数是怎么计算的?(看过,忘了)
算法题,二叉树最近的公共祖先。
最后Q&A环节。我问了一些技术栈,业务,部门有多少人之类的,反正也没听太懂
给我反馈:
1. CS的知识理解深度不够
2. 简历上写的项目理解深度不够
3. 写了一个深度学习的项目他不懂所以没问,我会有点吃亏
4. 代码写太慢了
我觉得虾皮的面试官真的都很好,虽然我真的很凉,但是我仍然respect。问题都是一步步引导,就算不会他也会不停提醒(但我脑子里真的空空如也)
球球给个机会吧!!!
全部评论
(6) 回帖