golang开发工程师面试题

1. redis部分

  1. redis是什么
  2. redis常用数据结构 -
  3. 什么是hash,怎么解决hash冲突
  4. redis的zset怎么实现的
  5. redis的过期删除策略 -
  6. redis的内存淘汰策略 -
  7. redis缓存穿透是什么,怎么解决 -
  8. redis缓存击穿是什么,怎么解决
  9. redis缓存雪崩是什么,怎么解决
  10. 布隆过滤器 -
  11. redis持久化机制 - -
  12. redis部署模式 - -
  13. redis分布式锁实现 -
  14. 缓存-db一致性问题 -

2. 网络部分

  1. http与https区别,http过程,https过程 -
  2. tcp三次握手、四次挥手过程、连接队列 - -
  3. tcp、udp区别 -
  4. tcp粘包 -
  5. tcp ip 模型
  6. 应用层协议
  7. http websocket和rpc - -

3. golang部分

  1. go的垃圾回收、三色标记法 - -
  2. GMP调度 -
  3. go内存分配 -
  4. go协程怎么通信
  5. go协程怎么等待结束
  6. 协程相关的包
  7. 子协程运行报错,怎么传递给主协程
  8. waitGroup怎么用,底层原理,Done方法怎么实现的 -
  9. ErrorGroup -
  10. new和make区别 -
  11. go基础数据类型底层原理 - -
  12. channel -
  13. 数组和切片的区别 -
  14. 并发请求map有什么影响,怎么解决 -
  15. go 指针、与C++区别 - -
  16. go defer的使用 -
  17. 逃逸分析 - -
  18. context,底层原理,有哪些context,context设置定时后怎么通知当前goroutine退出,context作用 - - -
  19. go读写文件 - -
  20. 怎么分析go程序CPU占用 -
  21. 常用代码包、框架
  22. gin框架实现 -
  23. protobuf -
  24. rpc grpc rpcx - - -
  25. 一致性哈希 -
  26. map底层原理-哈希表-扩容 - - -
  27. go切片截取与扩容 - - -
  28. jwt,token,session,cookie -
  29. channel底层原理 -
  30. mutex底层原理 -
  31. select用法 -

4. mysql部分

  1. innodb和myisam,memory,区别 - -
  2. 事务是什么,特性,隔离级别 - -
  3. mysql不可重复读、脏读和幻读,如何解决 -
  4. MVCC -
  5. 什么是索引,索引的种类,聚簇索引和非聚簇索引,索引的作用 - -
  6. 平衡二叉树、B树、B+树 -
  7. 什么是回表,索引覆盖、索引下推 -
  8. 索引最左前缀匹配原则 - -
  9. mysql中的锁 -
  10. select * 和 selcet 1 的区别 -
  11. 如何优化sql -
  12. 分库分表 - -
  13. 集群中的主键方案 -
  14. mysql主从复制原理 -
  15. char varchar区别 -

5. 操作系统部分

  1. 线程、进程同步方式 - -
  2. Linux每个页多大 -
  3. 进程线程协程 -
  4. linux怎么配置yum源
  5. 内存对齐-

6. 软件工程部分

  1. 设计模式 - -

7. 参考blog

-
-
-

posted @ 2024-04-26 11:37  BrandonV  阅读(63)  评论(0)    收藏  举报