一面 1h
自我介绍
主要使用语言:Golang、C++ or Java
Golang 和 C++ 的区别(GC、编译快)
为什么 golang 的依赖分析简单?(类似拓扑排序,每个文件只需打包一次)
Golang 是怎么管理内存的?(线程缓存,搜一下 tcmalloc)
内存回收是怎么找到垃圾、怎么回收?(分代回收、标记-清除等)
Java map
底层结构(拉链法,扩容时转红黑树)
map 什么时候扩容?负载因子是多少?
Java map 的线程安全实现(锁、分段锁、计数器)
计数器变量本身是不是有安全问题?volatile 的原理
分段锁底层是怎么加锁的?
锁的方式有很多种,了解吗?(不了解)
了解指令重排序吗?(硬件层面 CPU 流水线、Java 语言层面)
Golang 会不会有内存泄露问题?为什么&