区别

make和new都是内存的分配(堆上)
make用于slice、map以及channel的初始化(非零值),会返回一个相应类型的
new对象进行内存分配,并且内存置为零,会返回一个相应类型的指针
make返回的是引用类型本身;而new返回的是指向类型的指针。
make是引用类型的初始化方法

Golang的内存模型,为什么小对象多了会造成gc压力。

通常小对象过多会导致GC三色法消耗过多的GPU。优化思路是,减少对象分配

无缓冲 Chan 的发送和接收是否同步?

ch := make(chan int) 无缓冲的channel由于没有缓冲发送和接收需要同步.
ch := make(chan int, 2) 有缓冲channel不要求发送和接收操作同步.
channel无缓冲时,发送阻塞直到数据被接收,接收阻塞直到读到数据。
channel有缓冲时,当缓冲满时发送阻塞,当缓冲空时接收阻塞。
八股