golang面试分析
1.1. 说一下make和new,是不是使用new的话,内存就一定分配在堆上... 1
1.10. go什么情况下会发生goroutine泄漏... 2
1.13. golang的channel与共享内存... 2
1.16. worker池中的worker如果发生异常,导致可用的worker越来越少,怎么解决... 2
2.1.4. http能不能一次连接多次请求,不等后端返回... 2
2.1.6. 一次HTTP请求的全过程,包括域名解析、定位主机等... 2
2.1.7. http1, http1.1, http2区别... 2
2.3. 计算机网络OSI7层模型(TCP4层)每层的协议... 3
3.2.3. 什么情况下考虑使用缓存 ,redix有多少种缓存策略,简述redis分片... 3
3.2.4. 缓存框架,例如Redis、Memcached之间的区别,优劣势比较... 3
3.3.3. MySQL事务是什么?四大特性,四大隔离级别... 3
3.3.10. MySQL与MongoDB的区别,海量数据的存储... 4
3.3.11. 数据库的锁(行锁,表锁,页级锁,意向锁,读锁,写锁,悲观锁,乐观锁,以及加锁的select sql方式)... 4
3.3.12. Nosql与KV存储(redis,hbase,mongodb,memcached等)... 4
4.4. 分布式存储系统(GFS、HDFS、fastDFS) 存储模型(skipList、LSM等)... 4
- golang语言基础
1.1. 说一下make和new,是不是使用new的话,内存就一定分配在堆上
1.2. CSP并发模型
1.3. MVC模型
1.4. defer原理
1.5. 怎么理解go的interface
1.6. interface底层实现
1.7. goroutine与线程的区别
1.8. goroutine调度原理
1.9. gc原理
1.10. go什么情况下会发生goroutine泄漏
1.11. pprof使用与内存泄漏
1.12. select实现机制
1.13. golang的channel与共享内存
1.14. channel底层原理
1.15. 互斥锁、读写锁,原子使用场景,底层原理
1.16. worker池中的worker如果发生异常,导致可用的worker越来越少,怎么解决
- 网络协议
2.1. HTTP
2.1.1. http get跟head
2.1.2. http 常用状态码说明
2.1.3. http keep-alive
2.1.4. http能不能一次连接多次请求,不等后端返回
2.1.5. cookie和session
2.1.6. 一次HTTP请求的全过程,包括域名解析、定位主机等
2.1.7. http1, http1.1, http2区别
2.2. TCP/IP
2.2.1. tcp与udp区别,udp优点,适用场景
2.2.2. tcp三次握手
2.3. 计算机网络OSI7层模型(TCP4层)每层的协议
- 数据库
3.1. 什么是主键
3.2. redis
3.2.1. Redis基本数据结构
3.2.2. redis容灾,备份,扩容
3.2.3. 什么情况下考虑使用缓存 ,redix有多少种缓存策略,简述redis分片
3.2.4. 缓存框架,例如Redis、Memcached之间的区别,优劣势比较
3.3. mysql
3.3.1. Mysql的索引有几种
3.3.2. mysql高可用的方案
3.3.3. MySQL事务是什么?四大特性,四大隔离级别
3.3.4. 分库分表,主从复制,读写分离。
3.3.5. InnoDb是表锁还是行锁
3.3.6. 建立索引要注意什么
3.3.7. 慢查询
3.3.8. SQL慢查询的优化方案
3.3.9. 索引和表的优化方案
3.3.10. MySQL与MongoDB的区别,海量数据的存储
3.3.11. 数据库的锁(行锁,表锁,页级锁,意向锁,读锁,写锁,悲观锁,乐观锁,以及加锁的select sql方式)
3.3.12. Nosql与KV存储(redis,hbase,mongodb,memcached等)
- 分布式
4.1. 缓存淘汰算法与实现
4.2. 请描述一致hash算法
4.3. CAP原理和BASE理论
4.4. 分布式存储系统(GFS、HDFS、fastDFS) 存储模型(skipList、LSM等)
4.5. 分布式事务、分布式锁
4.6. consul etcd区别
4.7. lvs与nginx区别
4.8. lvs负载均衡原理
4.9. 冥等操作
- 项目介绍
5.1. 项目背景
5.2. 技术框架
5.3. 自己负责的模块
- 浮动主题
有疑问加站长微信联系(非本文作者)