最近收到字节面试通过的通知,把自己当中碰到的一些面试问题、复盘分享出来,祝大家求职顺利。
比较多放一个不太合适,按照123面这样一个一个具体说。当中有一些我的思考可能回答的点大家也可以参考。
个人自我介绍【略过】
其实比较大众化的问题,基本上是往着数据结构B+树角度去谈,为什么是B+。
比如可以聊hash表、二叉树、多叉树等等,各自的优缺点;
同时基础更好的同学可以围绕着 io ,page,innodb,b树b+树区别上聊,可以说很多。
首先是要回答出,聚簇索引、非聚簇索引的区别,以及各自的存储引擎 是否涉及聚簇索引这个事情。然后才是存什么。
概括上来说,跟数据绑定在一起的,就是聚簇索引;没有绑定在一起的就是非聚簇索引。
可以接着延伸,回表,覆盖索引等等。
描述每一个层,大概干什么作用,有什么协议即可。同理可以扩展5层,5层是把哪些合并了等等。
当时复习没注意这个点,网络层传输层还说反了,答得不是很好。
这个建议好好读计算机网络自顶向下,说的挺清楚的。
最起码的有链接无连接,tcp的一些特性(可靠数据传输、拥塞机制、流量控制),比如应用场景 实时通信,比如报文头区别等等,可以涉及很多。
效率更高这个我无从下手,当时就说 咱们评判效率标准是什么?比如我是追求传输的快?还是追求质量?按照我的框架下给出对应的答案。
这个问题就是顺着我说的质量,接着往下问的。应用层上可以做到的,书上也会讲到。
这个是因为我的简历上有go语言,协程,所以问了这个问题。
本科老师教授过openmp和mpi,我就按照这两个的区别回答了一下。其实网上面经回答应该也挺好的,没有固定答案,可能是看个人思考吧。
比如多个之间如何合作,共享变量怎么办,消息通信等等。java的也可以聊聊thread local,锁啊,进程通信(ip+port)等等。
最大栈,最大队列。和剑指offer的题目应该类似吧。
最大栈就是新建一个额外的栈,保存最大值;最大队列这样干的不是最好,得有一些操作,反正当时是没想到。
然后灵机一动,讨了个巧,用两个栈 实现一个队列,原来o(n),用两个栈的话最多也就o(2n)=o(n),符合要求,实现出来了。
欢迎收藏点赞~有问题可以评论区指出哈
#字节面试##字节##23届秋招笔面经##校招#