(面后感受:OKEx问的区块链的底层不多,大多是Golang开发的底层)

  • 进程、线程、Goroutine的比较

  • GMP模型

  • Golang Map底层

  • 如何实现Map的有序查找(利用一个辅助slice)

  • sync包了解吗

  • Mutex与RWMutex

  • 怎么实现Map的并发安全(sync.Map,底层实际上用了一个Map缓存)

  • Golang的channel底层

  • defer函数的使用场景(延迟Close、recover panic)

  • 简介所知的区块链的共识算法(PoW,PoS,DPoS,PBFT,Raft)

  • PBFT与Raft的区别(拜占庭容错与崩溃容错)

  • 场景题:实现一个接口C在指定时间内最大次数并发调用接口A与接口B

  • MySQL的B+树

  • 简单问了下Solidity、项目

  • 反问部门业务

  • 简单聊了下项目与毕设

  • PBFT算法底层(核心三阶段,preprepare、prepare、commit)

  • Raft算法底层(领导者选举、日志复制)

  • Golang GC(三色标记法,插入屏障、删除屏障、混合写屏障)

  • Map可以用数组作为Key吗(数组可以,切片不可以)

  • Channel的阻塞和非阻塞(顺带问了select用法)

  • 介绍除了单例与工厂模式外的设计模式(消费者模式)

  • Redis为什么快(内存数据库,单线程IO多路复用)

  • 介绍Bloom filter特点

  • 区块链里的MT与MPT

  • 以太坊智能合约如何执行,介绍EVM底层

  • 算法:手撕快排

  • 聊区块链行业

  • 反问

本篇面经中涉及面试题已收录到GOLANG ROADMAP社区-企业题库版块,并提供对应解析和讨论区。

网址:https://www.golangroadmap.com/ 邀请码:golang roadmap