Undeerstanding channels.pdf
Golang_常见面试题目解析.pdf
东方财富
- golang的垃圾回收
- GPM模型(go 有什么特殊的办法防止 协程长期抢占一个 m)
- channel相关、有无缓存的channel区别
- 处理海量数据,假设内存无限制,用什么数据结构存储比较,要考虑频繁查找和插入删除
- mysql索引相关
- docker的具体操作
- 非关系型的数据库了解那些?
- Redis的原理?什么时候更新缓存数据
- 如何配置Redis,是用单机还是用集群,用什么数据类型
- 中间件的了解,具体描述
- 红黑树的旋转
- Raft算法(一致性算法)
Coding:对字符串进行格式化处理,下划线后第一个字母变为大写,删去下划线。
深信服
defer相关知识考察(读代码题)
- Coding:剑指 Offer 26. 树的子结构
- Go的panic和recover的原理,panic的是什么?
- panic 可以 被其他 recover 捕获吗?
- map的数据结构,及一些相关的机制
- go map 线程安全吗?
- goroutine的开销小,为什么这么小?
- channel的结构,同步和异步,同步的实现原理
- Go的锁机制
- 流量控制、拥塞控制、滑动窗口有几个?
- https
- TCP/IP 的三次握手四次挥手,四次挥手为什么要
time_wait
,为什么是2 MSL - websocket
- tcp和http分别在那一层,讲讲为什么是http?
- 有些rpc的实现,使用的是私有协议,为什么不用http?
- 二进制和基于文本协议的区别,他们底层不应该都是二进制吗?
- 操作系统的僵尸进程与孤儿进程;
- 僵尸进程过多会怎样;
- Linux的文件系统
- Linux的内存管理
- Linux的进程调度机制
- 死锁、死锁产生的条件
- Mysql的隔离级别和实现机制
MVVC
怎么实现- mysql的锁怎么实现?
- 索引、结构、区别、为什么?
- 事务是怎么实现的
- 框架和库的区别
- gin框架
- 了解那些Nosql
- docker和k8s
- pod deployment service 都讲讲
- 为什么deployment 不用pod
- 保活机制
-
华尔街见闻
是否能胜任我们这样一份有压力的工作?
- 能不能快速掌握一门语言?
-
Hortor Games
考察对游戏的理解;
- 我对区块链的看法;
- 点go的特性,垃圾回收,反射等;
-
网易游戏
操作系统中子进程继承父进程那些资源、虚拟内存
- 网络(https通信过程、tcp参数调优)
- 分布式系统(高可用、数据一致性、hash环)
- 数据库(索引原理、比较)
- 数据结构(B tree/ B+ tree、如何实现LRU页面置换算法)
- 手写希尔排序、快速排序
-
今日头条
mongodb和mysql的区别,考察sql语句的书写
- docker原理和dockerfile
- 判断完全二叉树
- 排序算法的深入
-
shopee
反转二叉树左右节点
- mysql回表
- b树和b+树的区别,四种隔离策略,可重复读解决了什么问题
- golang GC 的不同版本
- 什么是协程?好处是什么?有没有创建限制
- tcp中的time_wait1,time_wait2,close_wait都是什么时候的状态
- go设计模式
- redis、消息队列
- etcd的选举,raft算法
-
字节跳动
go channel close后读的问题
- Linux grep命令查找日志文件相关内容
- B+树结构 and 为什么
- io多路复用,epoll和select的区别
- 计网七层协议、线程进程区别
- 线程怎么调度
- 进程通信方法
- tcp 保证可靠性
- go slice 和 array 区别
- GMP 模型
- 分布式缓存框架,singleflight 并发,深挖,一直挖到sync.WaitGroup
- 缓存击穿 缓存雪崩
- sync.WaitGroup
- cookie session
- 设计学生成绩数据库,并写出查询语文成绩top3的人。 url输入全过程 。从此引出后端除了响应请求还有什么。
- 什么是分布式系统
- 由上面分布式系统 引出负载均衡
- 负载均衡算法有哪些
- 一致性哈希算法 深挖。一致性哈希与普通哈希的区别。
- 手撕代码 LRU
- 手撕代码 生产者消费者模型
- 手撕代码 反转连表
- 算法题:三数之和
- session如何存储
- 多台服务器session存储怎么设计。
- 除了存redis 还能怎么存
- http 和 https区别
- https详细过程
- get post区别。还有什么其他方法。分别说说是做什么的。
- web安全问题。
设计一个短链接服务。如何抗住大qps, 抗大流量 。url 哈希函数怎么设计(怎么存,怎么统计qps)
腾讯
tcp和udp的特性,tcp三次握手、四次挥手
- http2.0了解吗?和http1.1的差距?
- 反爬了解吗?反爬的几项技术在项目里面怎么实现的?
- 项目部署的服务器是单机的,请问如果是大流量高并发请求服务器怎么处理?
- 数据结构:常用排序算法,快排、堆排的原理和实现。
- 算法:topK,时间复杂度
- 如果是亿级数据怎么处理
- b树 b+树区别
- tcp 可靠性,然后问十六位校验和怎么实现的
- TCP 粘包
- 跳表怎么实现
- go的调度
- go struct能不能比较?
- go defer(for defer)
- select可以用于什么?
- context包的用途?
- client如何实现长连接?
- 主协程如何等其余协程完再操作
- slice,len,cap,共享,扩容
- map如何顺序读取?
- 实现set
- 实现消息队列(多生产者,多消费者)
- 大文件排序
- 基本排序,哪些是稳定的
- http get跟head
- http 401,403
- http keep-alive
- http能不能一次连接多次请求,不等后端返回
- tcp与udp区别,udp优点,适用场景
- time-wait的作用
- 数据库如何建索引
- 孤儿进程,僵尸进程
- 死锁条件,如何避免
- linux命令,查看端口占用,cpu负载,内存占用,如何发送信号给一个进程
- git文件版本,使用顺序,merge跟rebase
- 项目实现爬虫的流程
- 爬虫如何做的鉴权吗?
- 怎么实现的分布式爬虫
- 电商系统图片多会造成带宽过高,如何解决?
- micro服务发现
- mysql底层有哪几种实现方式
- channel底层实现
- java nio和go 区别
- 读写锁底层是怎么实现的?
- go-micro 微服务架构怎么实现水平部署的,代码怎么实现?
- micro怎么用
- 怎么做服务发现的
- mysql索引为什么要用B+树?
- mysql语句性能评测?
- 服务发现有哪些机制
- raft算法是那种一致性算法
- raft有什么特点
- 当go服务部署到线上了,发现有内存泄露,该怎么处理
-
金山WPS
PHP-FPM
- CGI 是一个 Web Server 与 CGI 程序之间进行数据传输的协议,保证传递的是标准数据
- PHP-CGI 是 PHP 解析器(CGI 程序)
- FastCGI 是用来提高 CGI 程序性能的方案/协议。FastCGI 会先启动一个 master,解析配置文件,初始化执行环境,然后再启动多个 worker。当请求过来时,master 会传递给一个 worker,然后立即可以接收下一个请求,避免重复劳动,提高效率
- PHP-FPM 是实现 FastCGI 的程序
- PHP 和 Go 对比
- MVC 模式
- MySQL 优化(索引、分表分库)
- 浏览器地址栏输入网址整个过程
- Linux 相关(介绍了一下基本操作命令)
- Docker 相关
- Git 相关
- CI / CD 发布流程
-
腾讯音乐
TCP 拥塞控制(快速恢复、快速重传)
- 从面向连接的特性回答
- UDP 实现可靠连接
- 从 TCP 可靠连接特性回答
- MySQL 索引数据结构
- 索引为什么使用 B+ 树
- 为什么不使用 Hash 结构
- like模糊查询
- 范围查询
- 结合事务隔离级别
- slice 和 array 区别
- 向为 nil 的 channel 发送数据会怎么样
- map 取一个 key,然后修改这个值,原 map 数据的值会不会变化
- 根据 map 存储的类型回答
- for 循环遍历 slice 有什么问题
- Go 闭包
- GMP
- Redis 怎么保证数据一致性
- TCP 流量控制、拥塞控制
- TCP 半连接队列
- TCP 半关闭状态
- TCP TIME_WAIT 状态
- 内核态、用户态
- Hash 实现、冲突解决、应用
- 快排、堆排
- 大小堆
100 枚硬币,其中有一枚硬币重量不一样,用天平秤怎么快速找到这一枚硬币
跟谁学
说一下Redis中HashMap的实现(双table,渐进式rehash,扩容条件,缩容条件,bgsave,CopyOnWrite机制)
- 扩容过程中有新的请求流程
- Redis其他的数据结构(SDS,RAW,INTSET,ZIPLIST,SKIPLIST,QUICKLIST)
- 跳表的实现
- Redis的定时任务怎么实现的?
-
百度
数据库问题,给你10个数据库服务器,每个只能接500的qps,现在要实现4000qps,要怎么做?说用负载均衡,使用binlog保证10个服务器的数据一致性
- 如果有读有写,如何实现高并发,数据库读写分离
- 对于两个写库,两个请求向分别打到两个写库中,他们互相向对方同步,会不会出现不一致
- 哈希的实现有哪几种,如何取hashcode,冲突检测几种方法
- 用过go,那么进程,协程,线程各自的优缺点
- 算法题 z遍历二叉树,循环有序数组找指定值,
- mongodb和redis的区别
- 事务是怎么实现的?(undo_log,MVCC)
- 请你说说golang的CSP思想
- go 内存逃逸分析(分析了栈帧,讲五种例子,描述堆栈优缺点)
- 是否有逃逸分析过
- defer recover 的问题
- mysql 索引慢分析(线上开启slowlog,提取慢查询,然后仔细分析explain 中 tye字段以及extra字段,发生的具体场景及mysql是怎么做的