B站交易相关前端三面
1.项目
2.mysql的底层为什么是B+树而不是二叉树?
最根本的原因是为了最大限度地减少磁盘 I/O 次数,从而提高查询效率。
二叉树最多只有两个子节点,高度太高;B+树多路分支,极大降低了树的高度,每一个节点可以正好将大小设计成恰好接近一个页的大小,这样每读取一个结点就是一次完整的磁盘I/O;
此外,B+树所有数据都存储在叶子结点,查询性能稳定;各个叶子结点也形成了有序的双向链表,极大地提高了范围查询的效率
3.http协议的建立连接的过程具体是怎样的,交换机和路由器哪个离主机更近?dns的解析过程是怎样的?
HTTP协议依靠底层的TCP连接来建立连接;交换机离主机更近,交换机在数据链路层,路由器在网络层,具体地:
交换机:用于组件局域网,能够识别MAC地址,负责同一个网络内部的通信;
路由器:用于连接不同的网络,能够识别IP地址;负责不同网络之间的通信
4.同步非阻塞、异步非阻塞的概念
5.git中reset revert和rebase的区别,rebase有什么风险?
rebase要保证只在本地私有分支使用;其核心风险就是会重写提交历史;
6.git中远程分支和本地分支之间的版本是如何更新的?
7.如何进行构建工具的技术选型
8.docker中container和pod的区别
可以类比进程和线程;pod类似进程,container类似线程;pod中的资源共享,container之间默认强隔离;Container的生命周期是独立的,而pod的生命周期的统一的,所有pod里的容器会被视为一个整体。
对于功能紧密耦合,需要共享资源的场景,一般会使用多容器pod
9.了解什么AI技术