洛凯云享(一面,面试好多八股文,尤其是网络和mysql,40+min,30min八股文)   (面试官竟然还看了我的博客)    更新:好家伙,面试完一小时就收到了感谢信。  1.自我介绍 2.介绍一下项目有哪些模块(webserver)   3.如何利用正则与状态机解析 HTTP 请求报文?(解析报文)get与post区别?       4.epoll与select,poll区别(poll比select的文件描述符数量更多)?ET和LT用途场景?           epoll是基于事件驱动实现的,加入一个新的fd,会调用epoll_ctr函数为该fd注册一个回调函数,然后将该fd结点注册到内核中的epoll红黑树中,当IO事件发生时,就会调用回调函数,将该fd结点放到就绪链表中,epoll_wait函数实际上就是从这个就绪链表中获取这些fd。          水平触发:只要可读,就一直触发读事件,只要可写,就一直触发写事件 边缘触发:从不可读变为可读,从可读变为不可读,从不可写变为可写,从可写变为不可写,都只触发一次       使用场景:            大数据处理:因为大数据的数据量比较多,因此一次可能处理不完,可以使用水平触发,来多次处理数据             小数据处理:小数据调用边缘触发即可,一次处理完就行             服务器的监听套接字:使用水平触发。当有客户端连接时如果这次不处理,可以放到下一次来处理。但是如果使用边缘触发,本次不处理,下次再处理就消失了,从而失去了这个客户端的连接          面试冲刺:38---epoll在LT和ET模式下的区别是什么?使用时有什么注意事项吗? - 代码先锋网 (codeleading.com)   5.进程与线程区别                进程是运行中的程序,线程是进程的内部的一个执行序列             进程是资源分配的单元,线程是执行行单元             进程间切换代价大,线程间切换代价小             进程拥有资源多,线程拥有资源少             多个线程共享进程的资源            6.tcp四次挥手,timewait状态是哪一方的(发起方),为什么还有这个状态?(2Msl,确保被断开方能接收到最后一次ack,正好一个报文段来回的时间)           1.允许老的重复报文分组在网络中消逝。          2.保证TCP全双工连接的正确关闭。          第一个理由是假如我们在192.168.1.1:5000和39.106.170.184:6000建立一个TCP连接,一段时间后我们关闭这个连接,再基于相同插口建立一个新的TCP连接,这个新的连接称为前一个连接的化身。老的报文很有可能由于某些原因迟到了,那么新的TCP连接很有可能会将这个迟到的报文认为是新的连接的报文,而导致数据错乱。为了防止这种情况的发生TCP连接必须让TIME_WAIT状态持续2MSL,在此期间将不能基于这个插口建立新的化身,让它有足够的时间使迟到的报文段被丢弃。       第二个理由是因为如果主动关闭方最终的ACK丢失,那么服务器将会重新发送那个FIN,以允许主动关闭方重新发送那个ACK。要是主动关闭方不维护2MSL状态,那么主动关闭将会不得不响应一个RST报文段,而服务器将会把它解释为一个错误,导致TCP连接没有办法完成全双工的关闭,而进入半关闭状态。     TCP的TIME_WAIT状态 - 知乎 (zhihu.com)   7.如果kill掉服务器,会发生什么?(客户端断开)    在 kill 掉进程后,服务端会发送 FIN 报文,与客户端进行四次挥手   TCP 异常断开连接分析-云社区-华为云 (huaweicloud.com)   服务器进程先终止会发生什么? - 知乎 (zhihu.com)  为什么?(涉及到内核态和用户态转换) 8.http与https(非对称与对称加密)?为什么需要有非对称加密?   9.慢启动(拥塞控制算法)    慢开始,拥塞避免,快重传,快恢复  10.移动窗口法有什么用?(流量控制,解决发送速率过快导致接收方不能接受的问题) 11.B+树和B树区别?为何B+快?   12.mysql如何执行一条SQL?(懵逼)    MySQL - 一条 SQL 的执行过程详解 | Java 全栈知识体系 (pdai.tech)  13.如何解决幻读?(可串行化读) 14.数据库隔离级别?未提交读是啥? 15.如何对mysql进行性能优化? 16.回表是啥?(索引相关)如何解决回表问题?(联合索引)联合索引最重要的原则?(最左匹配原则)最左匹配原则原理?(索引是有序的,例如AC跨过B就会导致索引失效) 17.悲观锁和乐观锁 18.联合索引 19.日志(bin,undo,redo)?都是啥?分布在引擎层中的innodb还是myisam?(懵逼) 20.算法题:******** 215. 数组中第 K 大的元素(快排,不用全部排,acm模式) 21.反问(业务,主要用java和go)
点赞 0
评论 1
全部评论

相关推荐

但我还是会继续秋招的
投递京东等公司10个岗位
点赞 评论 收藏
分享
06-10 18:55
已编辑
西安电子科技大学 Java
只管努力就好:恭喜恭喜恭喜,我都没有面试机会,上周被压力炸了,今天中午看页面显示被捞进入评估结果下午就没了
京东三面373人在聊
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务