三连面,完全没准备,一脸懵的面完。
状态:已拿offer
如何判断链表是否有环?
答:快慢指针
介绍一下堆这种数据结构
答:大根小根堆,递归定义,实现,空间复杂度,各种操作的时间复杂度,真实写二叉树和数组模拟。
排序知道哪些
答:全知道,全会写,然后只说了冒泡的所有思路和优化就被叫停了。
nginx怎么用
答:说到了反向代理、负载均衡、session一致性等等怎么用。
项目中的交互(点赞评论关注)
答:redis的常规操作。验证码和登陆凭证等一些信息暂时存放redis,存session坏处(一致性不好解决)
关注列表如何有序(比如按时间)?
答:首先消息是kafka发的,通知是有序的。其次redis有有序列表,底层跳表实现说了一下。
如何减小分数计算排名对服务器的压力?
答:用redis和Quartz实现定时计算分数和排名;(csdn也是一周一更)
索引一般在哪建,原理?
答:常见使用,原理b+树一套
博客内容用什么存的。图片base64,类型text。
用户密码怎么存的?
答:密码+盐然后md5加密
怎么部署到云服务器的。
答:所有组件的情况和linux常用命令。
还有什么要问的?
答:省略
评价和建议:基础较好
自我感觉:面试官nice
项目做的早,忘了一些,然后注意细节。面试要多准备。
线程进程区别
答:说了一些答案,但是答的不好。(千万不要背答案,会很尬,我其实答案知道一些,但是没有全说,因为不了解的答案真的说出来特别尴尬)
输入网址到看到网页的过程
答:(能多细就多细,你背答案估计就死了,要理解)域名解析 --> TCP3次握手 --> 发http请求 --> 响应http请求,浏览器得到html代码 --> 浏览器解析代码,请求html代码中的资源(js、css、图片等) --> 浏览器对页面进行渲染呈现给用户
网络几层?三次握手?
答:按五层的介绍一遍功能和协议。
http协议的结构?
答:把知道的参数全说了一遍,如
项目有哪些模块
答:巴拉巴拉巴拉。
帖子回复里,层套层(评论下的评论等等)怎么存的,怎么优化?
答:说了半天才明白要问啥,貌似说的不好。
es原理?(我忘了一面还是二面问的了)
倒排索引,字典树等等。
字典树各种操作时间空间复杂度?
答:完全没准备,但是基本没想就会了。
日常生活中最印象深刻的数据结构或算法?
答:(从来没准备)数据结构:AVL树、红黑树、B树、跳表
算法:说了一个斐波那契变形(电话里说的有点乱)(如果兔子会死该怎么办)
操作系统?
常见算法的实现。(老哥说实际上的知识和场景可能完全不一样)
评价和建议:经历和基础可以。多扩展视野,看看别人的实现,见多识广等等。
自我感觉:二面老哥也打acm,而且很有耐心,不断地解释问题,很nice。
自己很菜,主要是自己的项目自己有时候都记不清了,年代有点久远。所以要多熟悉项目。而且眼界窄,见的实际情况少。