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是怎么做的 | 

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号