768 字
4 分钟
go面试题大全-2022
  1. make 和 new 的区别﹖

  2. 了解过golang的内存管理吗?

  3. 调用函数传入结构体时,应该传值还是指针﹖说出你的理由?

  4. 线程有几种模型?Goroutine的原理了解过吗,讲一下实现和优势?

  5. Goroutine什么时候会发生阻塞?

  6. PMG模型中Goroutine有哪几种状态?

  7. 每个线程/协程占用多少内存知道吗?

  8. 如果Goroutine—直占用资源怎么办,PMG模型怎么解决的这个问题?

  9. 如果若干线程中一个线程OOM,会发生什么?如果是Goroutine 呢? 项目中出现过OOM吗,怎么解决的?

  10. 项目中错误处理是怎么做的?

  11. 如果若干个Goroutine,其中有一个panic,会发生什么?

  12. defer可以捕获到其Goroutine的子Goroutine 的panic吗?

  13. 开发用Gin框架吗?Gin怎么做参数校验?

  14. 中间件使用过吗?怎么使用的。Gin的错误处理使用过吗?Gin中自定义校验规则知道怎么做吗?自定义校验器的返回值呢?

  15. golang中解析tag是怎么实现的?反射原理是什么?通过反射调用函数

  16. golang的锁机制了解过吗? Mutex的锁有哪几种模式,分别介绍一下? Mutex锁底层如何实现了解过吗?

  17. channel、channel使用中需要注意的地方?

  18. 数据库用的什么?数据库锁有了解吗?mysql锁机制讲一下。mysql分库分表。

  19. 讲一下redis分布式锁?redis主从模式和集群模式的区别了解过吗?redis的数据类型有哪些?redis持久化怎么做的?

  20. 编程题:你了解的负载均衡算法有什么?实现一个负载均衡算法。

  21. 自我介绍

  22. 代码效率分析,考察局部性原理

  23. 多核CPU场景下,cache如何保持一致、不冲突?

  24. uint类型溢出

  25. 介绍rune类型

  26. 编程题:3个函数分别打印cat、dog、fish,要求每个函数都要起一个goroutine,按照cat、dog、fish顺序打印在屏幕上100次。

  27. 介绍一下channel,无缓冲和有缓冲区别

  28. 是否了解channel底层实现,比如实现channel的数据结构是什么?

  29. channel是否线程安全?

  30. Mutex是悲观锁还是乐观锁?悲观锁、乐观锁是什么?

  31. Mutex几种模式?

  32. Mutex可以做自旋锁吗?

  33. 介绍一下RWMutex

  34. 项目中用过的锁?

  35. 介绍一下线程安全的共享内存方式

  36. 介绍一下goroutine

  37. goroutine自旋占用cpu如何解决(go调用、gmp)

  38. 介绍linux系统信号

  39. goroutine抢占时机(gc 栈扫描)

  40. Gc触发时机

  41. 是否了解其他gc机制

  42. Go内存管理方式

  43. Channel分配在栈上还是堆上?哪些对象分配在堆上,哪些对象分配在栈上?

  44. 介绍一下大对象小对象,为什么小对象多了会造成gc压力?

  45. 项目中遇到的oom情况?

  46. 项目中使用go遇到的坑?

  47. 工作遇到的难题、有挑战的事情,如何解决?

  48. 如何指定指令执行顺序?

go面试题大全-2022
https://blog.zhequtao.com/posts/golang/go-new/interview/go面试题大全-2022/
作者
阿俊
发布于
2022-01-22
许可协议
CC BY-NC-SA 4.0

相关阅读