11.19 某一线游戏厂 go实习一面凉经
1、自我介绍
2、项目拷打
3、GMP 模型的调度流程(追问:M 如何与 P 绑定?P 的本地队列满了之后怎么处理?G 的抢占式调度是怎么实现的?)
4、Go 的垃圾回收机制(三色标记法+混合写屏障,GC 的触发条件有哪些?)
5、MySQL 的 redo log、undo log、binlog 的区别与联系(追问:三者的写入时机?崩溃恢复时的执行顺序?binlog 的两种格式(statement/row)区别及适用场景)
6、MTU 的作用,数据包怎么分片(追问:MTU 的默认值(1500)、分片后的数据包如何重组?IP 分片和 TCP 分段的区别?)
7、Protobuf 如何序列化数据,为什么比 JSON、XML 好(追问:Protobuf 的 TLV 编码细节?Varint 编码对负数的处理?proto3 相比 proto2 的优化)
8、容器编排相关(追问:K8s 的核心组件有哪些?Pod 的生命周期及重启策略?Deployment 如何实现滚动更新?K8s 的 Service 与 Ingress 的区别?)
9、Go 的 channel 实现原理(追问:channel 的底层数据结构?无缓冲 channel 和有缓冲 channel 的读写规则?关闭 channel 后读写会发生什么?)
10、分布式一致性协议(Paxos/Raft)的核心思想(追问:Raft 如何解决 Paxos 的复杂性?Leader 选举的流程?日志复制的机制?网络分区后如何恢复?)
11、哈希表的底层实现(追问:Go 中 map 的哈希冲突解决方式?map 的扩容机制?如何实现并发安全的 map?)
12、TCP 的拥塞控制算法(追问:拥塞避免、快速重传的流程?BBR 算法相比 CUBIC 的优势?)
13、分布式链路追踪如何设计
14、数据库索引的底层结构(追问:InnoDB 的 B+ 树索引和哈希索引的区别?聚簇索引和非聚簇索引的区别?索引失效的场景及原因)
15、Go 的接口实现原理(追问:iface 和 eface 的区别?接口断言的底层逻辑?空接口能存储 nil 吗?为什么?)
已经凉了,反问阶段直接放弃了,说没啥想问的,面试官暗示说,不希望你浪费掉这次宝贵的面试机会,有啥想问的就问问吧,G
#go##golang##实习##面经##发面经攒人品#
2、项目拷打
3、GMP 模型的调度流程(追问:M 如何与 P 绑定?P 的本地队列满了之后怎么处理?G 的抢占式调度是怎么实现的?)
4、Go 的垃圾回收机制(三色标记法+混合写屏障,GC 的触发条件有哪些?)
5、MySQL 的 redo log、undo log、binlog 的区别与联系(追问:三者的写入时机?崩溃恢复时的执行顺序?binlog 的两种格式(statement/row)区别及适用场景)
6、MTU 的作用,数据包怎么分片(追问:MTU 的默认值(1500)、分片后的数据包如何重组?IP 分片和 TCP 分段的区别?)
7、Protobuf 如何序列化数据,为什么比 JSON、XML 好(追问:Protobuf 的 TLV 编码细节?Varint 编码对负数的处理?proto3 相比 proto2 的优化)
8、容器编排相关(追问:K8s 的核心组件有哪些?Pod 的生命周期及重启策略?Deployment 如何实现滚动更新?K8s 的 Service 与 Ingress 的区别?)
9、Go 的 channel 实现原理(追问:channel 的底层数据结构?无缓冲 channel 和有缓冲 channel 的读写规则?关闭 channel 后读写会发生什么?)
10、分布式一致性协议(Paxos/Raft)的核心思想(追问:Raft 如何解决 Paxos 的复杂性?Leader 选举的流程?日志复制的机制?网络分区后如何恢复?)
11、哈希表的底层实现(追问:Go 中 map 的哈希冲突解决方式?map 的扩容机制?如何实现并发安全的 map?)
12、TCP 的拥塞控制算法(追问:拥塞避免、快速重传的流程?BBR 算法相比 CUBIC 的优势?)
13、分布式链路追踪如何设计
14、数据库索引的底层结构(追问:InnoDB 的 B+ 树索引和哈希索引的区别?聚簇索引和非聚簇索引的区别?索引失效的场景及原因)
15、Go 的接口实现原理(追问:iface 和 eface 的区别?接口断言的底层逻辑?空接口能存储 nil 吗?为什么?)
已经凉了,反问阶段直接放弃了,说没啥想问的,面试官暗示说,不希望你浪费掉这次宝贵的面试机会,有啥想问的就问问吧,G
#go##golang##实习##面经##发面经攒人品#
全部评论
哪个厂啊 这么难 避雷了
相关推荐
查看23道真题和解析