Undeerstanding channels.pdf
Golang_常见面试题目解析.pdf

东方财富

  1. golang的垃圾回收
  2. GPM模型(go 有什么特殊的办法防止 协程长期抢占一个 m)
  3. channel相关、有无缓存的channel区别
  4. 处理海量数据,假设内存无限制,用什么数据结构存储比较,要考虑频繁查找和插入删除
  5. mysql索引相关
  6. docker的具体操作
  7. 非关系型的数据库了解那些?
  8. Redis的原理?什么时候更新缓存数据
  9. 如何配置Redis,是用单机还是用集群,用什么数据类型
  10. 中间件的了解,具体描述
  11. 红黑树的旋转
  12. Raft算法(一致性算法)
  13. Coding:对字符串进行格式化处理,下划线后第一个字母变为大写,删去下划线。

    深信服

  14. defer相关知识考察(读代码题)

  15. Coding:剑指 Offer 26. 树的子结构
  16. Go的panic和recover的原理,panic的是什么?
  17. panic 可以 被其他 recover 捕获吗?
  18. map的数据结构,及一些相关的机制
  19. go map 线程安全吗?
  20. goroutine的开销小,为什么这么小?
  21. channel的结构,同步和异步,同步的实现原理
  22. Go的锁机制
  23. 流量控制、拥塞控制、滑动窗口有几个?
  24. https
  25. TCP/IP 的三次握手四次挥手,四次挥手为什么要time_wait,为什么是2 MSL
  26. websocket
  27. tcp和http分别在那一层,讲讲为什么是http?
  28. 有些rpc的实现,使用的是私有协议,为什么不用http?
  29. 二进制和基于文本协议的区别,他们底层不应该都是二进制吗?
  30. 操作系统的僵尸进程与孤儿进程;
  31. 僵尸进程过多会怎样;
  32. Linux的文件系统
  33. Linux的内存管理
  34. Linux的进程调度机制
  35. 死锁、死锁产生的条件
  36. Mysql的隔离级别和实现机制
  37. MVVC怎么实现
  38. mysql的锁怎么实现?
  39. 索引、结构、区别、为什么?
  40. 事务是怎么实现的
  41. 框架和库的区别
  42. gin框架
  43. 了解那些Nosql
  44. docker和k8s
  45. pod deployment service 都讲讲
  46. 为什么deployment 不用pod
  47. 保活机制
  48. orm 了解多少

    华尔街见闻

  49. 是否能胜任我们这样一份有压力的工作?

  50. 能不能快速掌握一门语言?
  51. 涉及到双向链表的题。

    Hortor Games

  52. 考察对游戏的理解;

  53. 我对区块链的看法;
  54. 点go的特性,垃圾回收,反射等;
  55. Hr面就是性格怎么样,有什么优缺点;

    网易游戏

  56. 操作系统中子进程继承父进程那些资源、虚拟内存

  57. 网络(https通信过程、tcp参数调优)
  58. 分布式系统(高可用、数据一致性、hash环)
  59. 数据库(索引原理、比较)
  60. 数据结构(B tree/ B+ tree、如何实现LRU页面置换算法)
  61. 手写希尔排序、快速排序
  62. 聊项目(架构、负责的部分、难点、解决方案)

    今日头条

  63. mongodb和mysql的区别,考察sql语句的书写

  64. docker原理和dockerfile
  65. 判断完全二叉树
  66. 排序算法的深入
  67. 两个stack实现队列

    shopee

  68. 反转二叉树左右节点

  69. mysql回表
  70. b树和b+树的区别,四种隔离策略,可重复读解决了什么问题
  71. golang GC 的不同版本
  72. 什么是协程?好处是什么?有没有创建限制
  73. tcp中的time_wait1,time_wait2,close_wait都是什么时候的状态
  74. go设计模式
  75. redis、消息队列
  76. etcd的选举,raft算法
  77. https是如何进行加密的

    字节跳动

  78. go channel close后读的问题

  79. Linux grep命令查找日志文件相关内容
  80. B+树结构 and 为什么
  81. io多路复用,epoll和select的区别
  82. 计网七层协议、线程进程区别
  83. 线程怎么调度
  84. 进程通信方法
  85. tcp 保证可靠性
  86. go slice 和 array 区别
  87. GMP 模型
  88. 分布式缓存框架,singleflight 并发,深挖,一直挖到sync.WaitGroup
  89. 缓存击穿 缓存雪崩
  90. sync.WaitGroup
  91. cookie session
  92. 设计学生成绩数据库,并写出查询语文成绩top3的人。 url输入全过程 。从此引出后端除了响应请求还有什么。
  93. 什么是分布式系统
  94. 由上面分布式系统 引出负载均衡
  95. 负载均衡算法有哪些
  96. 一致性哈希算法 深挖。一致性哈希与普通哈希的区别。
  97. 手撕代码 LRU
  98. 手撕代码 生产者消费者模型
  99. 手撕代码 反转连表
  100. 算法题:三数之和
  101. session如何存储
  102. 多台服务器session存储怎么设计。
  103. 除了存redis 还能怎么存
  104. http 和 https区别
  105. https详细过程
  106. get post区别。还有什么其他方法。分别说说是做什么的。
  107. web安全问题。
  108. 设计一个短链接服务。如何抗住大qps, 抗大流量 。url 哈希函数怎么设计(怎么存,怎么统计qps)

    腾讯

  109. tcp和udp的特性,tcp三次握手、四次挥手

  110. http2.0了解吗?和http1.1的差距?
  111. 反爬了解吗?反爬的几项技术在项目里面怎么实现的?
  112. 项目部署的服务器是单机的,请问如果是大流量高并发请求服务器怎么处理?
  113. 数据结构:常用排序算法,快排、堆排的原理和实现。
  114. 算法:topK,时间复杂度
  115. 如果是亿级数据怎么处理
  116. b树 b+树区别
  117. tcp 可靠性,然后问十六位校验和怎么实现的
  118. TCP 粘包
  119. 跳表怎么实现
  120. go的调度
  121. go struct能不能比较?
  122. go defer(for defer)
  123. select可以用于什么?
  124. context包的用途?
  125. client如何实现长连接?
  126. 主协程如何等其余协程完再操作
  127. slice,len,cap,共享,扩容
  128. map如何顺序读取?
  129. 实现set
  130. 实现消息队列(多生产者,多消费者)
  131. 大文件排序
  132. 基本排序,哪些是稳定的
  133. http get跟head
  134. http 401,403
  135. http keep-alive
  136. http能不能一次连接多次请求,不等后端返回
  137. tcp与udp区别,udp优点,适用场景
  138. time-wait的作用
  139. 数据库如何建索引
  140. 孤儿进程,僵尸进程
  141. 死锁条件,如何避免
  142. linux命令,查看端口占用,cpu负载,内存占用,如何发送信号给一个进程
  143. git文件版本,使用顺序,merge跟rebase
  144. 项目实现爬虫的流程
  145. 爬虫如何做的鉴权吗?
  146. 怎么实现的分布式爬虫
  147. 电商系统图片多会造成带宽过高,如何解决?
  148. micro服务发现
  149. mysql底层有哪几种实现方式
  150. channel底层实现
  151. java nio和go 区别
  152. 读写锁底层是怎么实现的?
  153. go-micro 微服务架构怎么实现水平部署的,代码怎么实现?
  154. micro怎么用
  155. 怎么做服务发现的
  156. mysql索引为什么要用B+树?
  157. mysql语句性能评测?
  158. 服务发现有哪些机制
  159. raft算法是那种一致性算法
  160. raft有什么特点
  161. 当go服务部署到线上了,发现有内存泄露,该怎么处理
  162. https 握手,为什么需要 非对称加密 和 对称加密

    金山WPS

  163. PHP-FPM

  164. CGI 是一个 Web Server 与 CGI 程序之间进行数据传输的协议,保证传递的是标准数据
  165. PHP-CGI 是 PHP 解析器(CGI 程序)
  166. FastCGI 是用来提高 CGI 程序性能的方案/协议。FastCGI 会先启动一个 master,解析配置文件,初始化执行环境,然后再启动多个 worker。当请求过来时,master 会传递给一个 worker,然后立即可以接收下一个请求,避免重复劳动,提高效率
  167. PHP-FPM 是实现 FastCGI 的程序
  168. PHP 和 Go 对比
  169. MVC 模式
  170. MySQL 优化(索引、分表分库)
  171. 浏览器地址栏输入网址整个过程
  172. Linux 相关(介绍了一下基本操作命令)
  173. Docker 相关
  174. Git 相关
  175. CI / CD 发布流程
  176. HTTP 长连接(HTTP 1.1 版本)

    腾讯音乐

  177. TCP 拥塞控制(快速恢复、快速重传)

  178. 从面向连接的特性回答
  179. UDP 实现可靠连接
  180. 从 TCP 可靠连接特性回答
  181. MySQL 索引数据结构
  182. 索引为什么使用 B+ 树
  183. 为什么不使用 Hash 结构
  184. like模糊查询
  185. 范围查询
  186. 结合事务隔离级别
  187. slice 和 array 区别
  188. 向为 nil 的 channel 发送数据会怎么样
  189. map 取一个 key,然后修改这个值,原 map 数据的值会不会变化
  190. 根据 map 存储的类型回答
  191. for 循环遍历 slice 有什么问题
  192. Go 闭包
  193. GMP
  194. Redis 怎么保证数据一致性
  195. TCP 流量控制、拥塞控制
  196. TCP 半连接队列
  197. TCP 半关闭状态
  198. TCP TIME_WAIT 状态
  199. 内核态、用户态
  200. Hash 实现、冲突解决、应用
  201. 快排、堆排
  202. 大小堆
  203. 100 枚硬币,其中有一枚硬币重量不一样,用天平秤怎么快速找到这一枚硬币

    跟谁学

  204. 说一下Redis中HashMap的实现(双table,渐进式rehash,扩容条件,缩容条件,bgsave,CopyOnWrite机制)

  205. 扩容过程中有新的请求流程
  206. Redis其他的数据结构(SDS,RAW,INTSET,ZIPLIST,SKIPLIST,QUICKLIST)
  207. 跳表的实现
  208. Redis的定时任务怎么实现的?
  209. 订单服务过期是怎么设计的(RabbitMQ死信队列)

    百度

  210. 数据库问题,给你10个数据库服务器,每个只能接500的qps,现在要实现4000qps,要怎么做?说用负载均衡,使用binlog保证10个服务器的数据一致性

  211. 如果有读有写,如何实现高并发,数据库读写分离
  212. 对于两个写库,两个请求向分别打到两个写库中,他们互相向对方同步,会不会出现不一致
  213. 哈希的实现有哪几种,如何取hashcode,冲突检测几种方法
  214. 用过go,那么进程,协程,线程各自的优缺点
  215. 算法题 z遍历二叉树,循环有序数组找指定值,
  216. mongodb和redis的区别
  217. 事务是怎么实现的?(undo_log,MVCC)
  218. 请你说说golang的CSP思想
  219. go 内存逃逸分析(分析了栈帧,讲五种例子,描述堆栈优缺点)
  220. 是否有逃逸分析过
  221. defer recover 的问题
  222. mysql 索引慢分析(线上开启slowlog,提取慢查询,然后仔细分析explain 中 tye字段以及extra字段,发生的具体场景及mysql是怎么做的