自我介绍完,面试官问我怎么才大四,我说不就应该是大四吗,他说之前面的都是研究生。
因为是Java岗,问我了不了解Java,我说不会。差不多总共是半个小时的样子。
首先是问了下两段实习的内容,分别都做了什么;
其他的主要问的是MySQL、Redis、计网
1.在有限的内存下,长度为一亿的数组,选其中最大的1000个数字?
建立容量为1000的最小堆,时间复杂度为nlogk
2.介绍一下TCP、UDP
TCP:三次握手、四次挥手、拥塞控制、流量控制、超时重传、
UDP:面向无连接、不保证可靠
3.介绍Redis的数据结构
String(字符串),Hash(哈希),List(列表),Set(集合)、Zset(有序集合)、BitMap、GEO、Stream
4.熟悉Zset吗?使用场景是什么?
Zset 类型:排序场景,比如排行榜、电话和姓名排序等。
5.Zset的底层是什么?讲一讲跳表
跳表的时间复杂度、插入删除操作
6.熟悉MySQL吗?介绍一下B+树
介绍B+树、插入删除
7.为什么不适用红黑树存储索引?
红黑树是个二叉树、会导致在大量数据下、树的高度很高?
8.为什么树的高度越高会导致磁盘IO越多?
由于树是存储在磁盘中的,一个节点对应一页,读取每个节点都对应一次磁盘I/O 操作,也就是说树的高度就等于每次查询数据时磁盘IO 操作的次数,所以树的高度越高,就会影响查询性能。
最后是反问
不一定正确,都是个人理解,有错的希望能指正,谢谢。
#携程#