昨晚视频面试,效果不是很理想,记录一下问题,转转运。
面试官上来就让手写代码,手写内容大致如下
1.用一行代码来实现两个数组合并,且保证合并后的数组有序。
2.手写插入排序
3.手写二分法查找,循环和递归分别写一个。
4.mysql相关,创建一个表,存在组合索引,然后列举了一些sql,判断哪些sql用到索引。
5.读取一个文本文件,文件有标题行,标题行下对应具体内容,大致有二十多列,要求根据文件内容写一个方法,方法传入某行的ip信息,返回对应行的省份信息。
6.手写单链表,并实现链表反转。
尼玛,一个视频面试上来就让我写代码,内心很是拒绝,但人在屋檐下不得不低头。经过了十几分钟也没写完,面试官不是很满意。。。
接下来就是正式问题了
ps:这种面试方式略去了自我介绍环节,给我整的有点不会了。
1.读取文件的几种方式?
字节流 字符流 按行读取 随机读取
2.字节流和字符流的区别?
不会
3.mysql不等于走不走索引?
需要看索引是组合索引还是聚簇索引
4.mysql索引为什么采用最左原则?为什么不是最右原则?
尼玛???当时是处于懵逼的状态。
事后想想应该是和索引排序有关
5.redis集群模式?
哨兵主从和cluster
6.redis集群模式下某个主节点以及对应从节点都挂掉后如何快速恢复?
我答的是通过rdb或者aof恢复。但面试官说这种存在等待时间,线上问题需要快速解决,这种不行。7.一致性哈希?
8.lucene原理,ik分词器原理(我项目中有用到)。
9.在线编辑word或者excel如何实现?
总结:感觉问题不难,但就是不会。。。。