一共三面
两轮技术 一轮hr
技术面试大概1小时,范围比较全,从数据库、缓存、操作系统、网络、项目都有问到,算法题相对简单
一面:
1、自我介绍+项目介绍
2、项目里,消费者,队列消费失败的处理方式
3、6月份到现在,在做做什么?
4、进程、线程的区别:说
5、协程的实现
6、怎么估算进程的使用情况,开多少个进程,占多少内存、用什么工具
7、打开一个页面特别的缓慢,怎么排查问题
8、数据库的连接猛增,是什么情况
9、缓存失效怎么定位和处理、什么情况会出现缓存击穿
10、大量用户去查某一条热点数据,应该怎么处理、怎么做优化
11、慢查询的mysql explain 怎么分解和处理慢查询sql
12、一般怎么设置索引比较合理
13、联合索引(a、b、c),(a、b)查的时候可以用到吗,(b、c可以用到吗),(a、c呢)
14、数据库一般存字符串,用什么来存
15、varchar 和char一般怎么考虑,用什么
16、取某一段时间的记录,怎么去设计sql
17、缓存+db,我们一般怎么更新缓存数据
18、n个型号、n个尺码,我想看一段时间内,最热销量的型号的数据(mysql怎么做、redis怎么做)
19、400w消息,发优化卷,不能有太大耗时,又不能对db有太大写的压力
20、统计一个总数,最高价格,从mysql读出来的,数据延迟,导致写到redis数据是错的,可以接受一段数据的不一致
21、crontab 怎么在每月最后一天去统计数据
22、想买一个商品,a、b、c三个型号,主要是考虑什么场景需要拆分mysql表结构吧
23、分库分表一般是按照什么纬度划分的
1.在牛客网上点开视频链接
2.先自我介绍
3.问项目,遇到了什么困难如何解决
4.一些算法题
5.一些基础知识题
讲一个你做的项目中遇到的某个技术难点,怎么发现怎么攻克的,要很详细
手撕代码:中序遍历非递归
后序遍历非递归
你哪门课学的比较好?计算机网络
讲一下四次挥手的各个状态
为什么需要TIME_WAIT?
如果TIME_WAIT的进程太多会怎么样,这种状态会导致什么具体的后果?blablablabla如果想要再bind这个port会失败(他说的)
怎么样避免TIME_WAIT太多?
拥塞控制是怎么实现的?
进程间是怎么通信的?
操作系统学的怎么样?一般吧
页和段讲一下
算法学的怎么样?一般吧
15亿人发红包,用O(N)实现找出发的红包最多的N个人
coredump知道吗?
User mode 和 kernel mode的区别
有什么情况会让进程在user mode 和kernel mode 之间转换
自己在官网上申请的实习生岗位,申请了差不多五六天后就收到了面试邀请了,接到邀请的两天后早上十点面试,视频面试的方式,因为自己准备的不周到,很多问题其实不难,但是没回答出来,草草面试了二十分钟面试官就说好了,然后等了半个小时左右面试状态就变成不通过。
面试官问的面试题: 1.自我介绍
2.你的项目是自己做的还是上线的
3.Redis数据库和Mysql数据库的区别
4.你的项目用到了Redis数据库,那么Redis数据库用来干嘛了
5.了解Redis数据库的底层吗
6.问到mysql数据库的innoDB引擎和另一个引擎,知道他们的区别吗
7.你学习数据库方向是学什么?
8.c++语言怎么样?
9.new和malloc有什么区别
*.进程和线程的区别是什么?
10.java的线程同步是怎么实现的?
11.java的一些原理知识
*说说java中的垃圾回收机制?
12.问了现在研究生的方向
13.还有什么问题吗?