-
如何知道一个对象是分配在栈上还是堆上?
-
go slice是怎么扩容的?
-
为什么有协程泄露(Goroutine Leak)?
-
Go 可以限制运行时操作系统线程的数量吗? 常见的goroutine操作函数有哪些?
-
如何控制协程数目。
-
请你讲一下Go面向对象是如何实现的?
-
Golang 中 make 和 new 的区别?
-
不同类型的变量,其零值是什么?
-
数组和切片的区别?
-
for range 的时候它的地址会发生变化么?for 循环遍历 slice 有什么问题?
-
go defer,多个 defer 的顺序,defer 在什么时机会修改返回值?
-
golang协程为什么比线程轻量?
-
Golang中数组与切片比较?
-
make和new的区别? go语言中的引用类型包含哪些?
-
uint,int区别?
-
说说go语言的channel特性?
-
线程模型有哪些?为什么 Go Scheduler 需要实现 M:N 的方案?Go Scheduler 由哪些元素构成呢?
-
……
-
……
-
……
-
sync.WaitGroup的Wait()方法在所有Done()调用后,是否会重置计数?
-
os.Signal的Notify方法如何捕获系统信号?如何优雅处理程序退出?
-
reflect.Select的作用是什么?与select语句有何区别?
-
go vet检测到 “loop variable i captured by func literal” 是什么问题?如何修复?
-
net/http的Client默认超时时间是多少?如何设置全局超时?
-
math/rand和crypto/rand的随机数有何区别?分别适用于什么场景?
-
channel的len和cap在发送 / 接收操作后如何变化?
-
go build的-race选项会对程序性能产生什么影响?
-
interface{}能否存储nil值?如何判断interface{}存储的是nil?
-
time.Format的参考时间为什么是2006-01-02 15:04:05?
-
sync.Mutex的Lock和Unlock能否在不同的 goroutine 中调用?
-
bytes.Compare和==比较两个[]byte有什么区别?
-
go mod vendor的作用是什么?在什么场景下使用?
-
runtime.NumGoroutine()返回的数量包含哪些类型的 goroutine?
-
json.Unmarshal如何处理未知的 JSON 字段?如何忽略未知字段?
-
io.ReaderFrom和io.WriterTo接口的作用是什么?如何提高 IO 效率?
-
context的Value方法是线程安全的吗?多次调用WithValue会如何处理相同 key?
-
map的make函数指定容量(如make(map[int]int, 100))和不指定容量,性能有何差异?
-
如何优化 Go 程序的启动速度?
-
go vet和golint的作用是什么?它们有什么区别?
-
如何检测 goroutine 泄漏?有哪些工具可用?
-
如何实现一个限流器(rate limiter)?Go 标准库中有相关实现吗?
-
如何实现一个简单的连接池?需要注意哪些问题?
-
单例模式在 Go 中如何实现?如何保证线程安全和懒加载?
-
如何实现一个简单的生产者 - 消费者模型?
-
……
-
……
-
……
-
如何通过 channel 进行 goroutine 之间的通信?
-
channel 有哪些类型?
-
如何关闭 channel?关闭后的 channel 有什么特点?
-
什么是 select 语句?它有什么作用?
-
如何使用 waitgroup 等待多个 goroutine 完成?
-
什么是互斥锁?如何使用?
-
读写锁与互斥锁有什么区别?
-
Go 语言中的原子操作有什么作用?
-
什么是上下文(context)?它有什么用途?
-
如何使用 context 控制 goroutine 的生命周期?
-
说说Go的unsafe包?
-
如何使指针指向任意类型,类似于C/C++中的void?
-
什么是标记清除法?
-
说说Go的三色标记法?
-
为什么说三色标记法是一个假阴性的算法?
-
什么是写屏障?
-
Go的垃圾回收机制(GC)分为几步?
-
STW是否会导致服务不可用?
-
什么是GMP调度模型?
-
Go原生和GORM在连接MySQL上的差别?
-
Gin框架有什么优势?
-
GRPC是怎么连接的?
-
GRPC和HTTP的区别?
👇👇👇答案详解及更多精彩内容,进入小程序体验更佳👇👇👇

👇👇👇程序部分截图👇👇👇