go面试题
|
字节 |
1 |
go channel close后读的问题 |
2 |
Linux grep命令查找日志文件相关内容 |
3 |
B+树结构 and 为什么 |
4 |
io多路复用,epoll和select的区别 |
5 |
计网七层协议、线程进程区别 |
6 |
线程怎么调度 |
7 |
进程通信方法 |
8 |
tcp 保证可靠性 |
9 |
go slice 和 array 区别 https://www.jianshu.com/p/10d23e9ffc36
|
10 |
GMP 模型 调度相关的四个基本单元是g、m、p、schedt。g是协程任务信息单元,m实际执行体,p是本地资源池和g任务池,schedt是全局资源池和任务池。这里的m对应一个os线程,所以整个执行逻辑简单来说就是"某个os线程m不断尝试拿资源p并找任务g执行,没有可执行g则睡眠,等待唤醒并重复此过程",这个执行逻辑加上sysmon系统线程的定时抢占逻辑实际上就是整个宏观的调度逻辑了(其中穿插了很多唤醒m、system goroutine等等复杂的细节),而找协程任务g的过程占据了其中大部分。g的主要来源有本地队列、全局队列、其他p的本地队列、poller(net和file),以及一些system goroutine比如timerproc、bgsweeper、gcMarkWorker、runfinq、forcegchelper等。 |
11 |
分布式缓存框架,singleflight 并发,深挖,一直挖到sync.WaitGroup |
12 |
缓存击穿 缓存雪崩 |
13 |
sync.WaitGroup |
14 |
cookie session |
15 |
设计学生成绩数据库,并写出查询语文成绩top3的人。 url输入全过程 。从此引出后端除了响应请求还有什么。 |
16 |
什么是分布式系统 |
17 |
由上面分布式系统 引出负载均衡 |
18 |
负载均衡算法有哪些 |
19 |
一致性哈希算法 深挖。一致性哈希与普通哈希的区别。 |
20 |
GMP模型 |
21 |
手撕代码 LRU |
22 |
手撕代码 生产者消费者模型 |
23 |
手撕代码 反转连表 |
24 |
算法题:三数之和 |
25 |
session如何存储 |
26 |
多台服务器session存储怎么设计。 |
27 |
除了存redis 还能怎么存( |
28 |
http 和 https区别 |
29 |
https详细过程 |
30 |
get post区别。还有什么其他方法。分别说说是做什么的。 |
31 |
web安全问题。 |
32 |
设计一个短链接服务。如何抗住大qps, 抗大流量 。url 哈希函数怎么设计(怎么存,怎么统计qps) |
|
腾讯 |
1 |
tcp和udp的特性,tcp三次握手、四次挥手 |
2 |
http2.0了解吗?和http1.1的差距? |
3 |
反爬了解吗?反爬的几项技术在项目里面怎么实现的? |
4 |
项目部署的服务器是单机的,请问如果是大流量高并发请求服务器怎么处理? |
5 |
数据结构:常用排序算法,快排、堆排的原理和实现。 |
6 |
算法:topK,时间复杂度 |
7 |
如果是亿级数据怎么处理? |
8 |
b树 b+树区别 |
9 |
tcp 可靠性,然后问十六位校验和怎么实现的 |
10 |
TCP 粘包 |
11 |
进程 协程 线程 |
12 |
跳表怎么实现 |
13 |
go的调度 |
14 |
go struct能不能比较? |
15 |
go defer(for defer) |
16 |
select可以用于什么? |
17 |
context包的用途? |
18 |
client如何实现长连接? |
19 |
主协程如何等其余协程完再操作 |
20 |
slice,len,cap,共享,扩容 |
21 |
map如何顺序读取? |
22 |
实现set |
23 |
实现消息队列(多生产者,多消费者) |
24 |
大文件排序 |
25 |
基本排序,哪些是稳定的 |
26 |
http get跟head |
27 |
http 401,403 |
28 |
http keep-alive |
29 |
http能不能一次连接多次请求,不等后端返回 |
30 |
tcp与udp区别,udp优点,适用场景 |
31 |
time-wait的作用 |
32 |
数据库如何建索引 |
33 |
孤儿进程,僵尸进程 |
34 |
死锁条件,如何避免 |
35 |
linux命令,查看端口占用,cpu负载,内存占用,如何发送信号给一个进程 |
36 |
git文件版本,使用顺序,merge跟rebase |
37 |
项目实现爬虫的流程 |
38 |
爬虫如何做的鉴权吗? |
39 |
怎么实现的分布式爬虫 |
40 |
电商系统图片多会造成带宽过高,如何解决? |
41 |
micro服务发现 |
42 |
mysql底层有哪几种实现方式 |
43 |
channel底层实现 |
44 |
java nio和go 区别 |
45 |
读写锁底层是怎么实现的? |
46 |
go-micro 微服务架构怎么实现水平部署的,代码怎么实现? |
47 |
micro怎么用 |
48 |
怎么做服务发现的 |
49 |
mysql索引为什么要用B+树? |
50 |
mysql语句性能评测? |
51 |
服务发现有哪些机制 |
52 |
raft算法是那种一致性算法 |
53 |
raft有什么特点 |
54 |
当go服务部署到线上了,发现有内存泄露,该怎么处理 |
55 |
https 握手,为什么需要 非对称加密 和 对称加密 |
|
金山wps |
1 |
PHP-FPM |
2 |
CGI 是一个 Web Server 与 CGI 程序之间进行数据传输的协议,保证传递的是标准数据 |
3 |
PHP-CGI 是 PHP 解析器(CGI 程序) |
4 |
FastCGI 是用来提高 CGI 程序性能的方案/协议。FastCGI 会先启动一个 master,解析配置文件,初始化执行环境,然后再启动多个 worker。当请求过来时,master 会传递给一个 worker,然后立即可以接收下一个请求,避免重复劳动,提高效率 |
5 |
PHP-FPM 是实现 FastCGI 的程序 |
6 |
PHP 和 Go 对比 |
7 |
MVC 模式 |
8 |
MySQL 优化(索引、分表分库) |
9 |
浏览器地址栏输入网址整个过程 |
10 |
TCP 三次握手和四次挥手 |
11 |
Linux 相关(介绍了一下基本操作命令) |
12 |
Docker 相关 |
13 |
Git 相关 |
14 |
开发环境(Windows、Linux) |
15 |
CI / CD 发布流程 |
16 |
HTTP 长连接(HTTP 1.1 版本) |
17 |
腾讯音乐 |
18 |
TCP 拥塞控制(快速恢复、快速重传) |
19 |
从面向连接的特性回答 |
20 |
UDP 实现可靠连接 |
21 |
从 TCP 可靠连接特性回答 |
22 |
四、MySQL 数据库 |
23 |
MySQL 索引数据结构 |
24 |
索引为什么使用 B+ 树 |
26 |
为什么不使用 Hash 结构 |
27 |
like 模糊查询 |
28 |
范围查询 |
29 |
结合事务隔离级别 |
30 |
Go 语言相关 |
31 |
slice 和 array 区别 |
32 |
向为 nil 的 channel 发送数据会怎么样 |
33 |
map 取一个 key,然后修改这个值,原 map 数据的值会不会变化 |
34 |
根据 map 存储的类型回答 |
35 |
for 循环遍历 slice 有什么问题 |
36 |
Go 闭包 |
37 |
进程、线程、协程区别 |
38 |
技术相关 |
39 |
输入 URL 发生的整个网络过程 |
40 |
Redis 怎么保证数据一致性 |
41 |
TCP 流量控制、拥塞控制 |
42 |
TCP 半连接队列 |
43 |
TCP 半关闭状态 |
44 |
TCP TIME_WAIT 状态 |
45 |
内核态、用户态 |
46 |
Hash 实现、冲突解决、应用 |
47 |
快速排序 |
48 |
堆排序 |
49 |
大小堆 |
51 |
100 枚硬币,其中有一枚硬币重量不一样,用天平秤怎么快速找到这一枚硬币 |
|
跟谁学 |
1 |
说一下Redis中HashMap的实现(双table,渐进式rehash,扩容条件,缩容条件,bgsave,CopyOnWrite机制) |
2 |
扩容过程中有新的请求流程 |
3 |
Redis其他的数据结构(SDS,RAW,INTSET,ZIPLIST,SKIPLIST,QUICKLIST) |
4 |
跳表的实现? |
5 |
Redis的定时任务怎么实现的? |
6 |
订单服务过期是怎么设计的(RabbitMQ死信队列) |
|
百度 |
1 |
数据库问题,给你10个数据库服务器,每个只能接500的qps,现在要实现4000qps,要怎么做?说用负载均衡,使用binlog保证10个服务器的数据一致性 |
2 |
如果有有读有写,如何实现高并发,数据库读写分离 |
3 |
对于两个写库,两个请求向分别打到两个写库中,他们互相向对方同步,会不会出现不一致, |
4 |
哈希的实现有哪几种,如何取hashcode,冲突检测几种方法 |
5 |
用过go,那么进程,协程,线程各自的优缺点 |
6 |
算法题 z遍历二叉树,循环有序数组找指定值, |
7 |
1.事务是怎么实现的?(undo_log,MVCC) |
8 |
mongodb和redis的区别 |
9 |
请你说说golang的CSP思想 |
10 |
go 内存逃逸分析(分析了栈帧,讲五种例子,描述堆栈优缺点,点头) |
11 |
是否有逃逸分析过 |
12 |
defer recover 的问题 |
13 |
mysql 索引慢分析(线上开启slowlog,提取慢查询,然后仔细分析explain 中 tye字段以及extra字段,发生的具体场景及mysql是怎么做的 |