面经
一、火星石科技
1、make和new的区别
2、有缓冲channel和无缓冲channel的区别,如何判断channel是否关闭
3、描述一下GC
4、defer return 和函数返回值的顺序
5、多个defer的执行顺序
6、两个不同长度的数组是一个类型吗
7、数组和切片有什么区别,讲一下切片的扩容,切片扩容之后地址一定会改变吗(不一定)
8、go是面向对象的语言吗
9、数据库调优有做过吗
10、云原生和docker有了解吗
11、计算机网络模型
12、http和https的区别,描述一下https的过程
三个手撕代码
1、入参是int,判断该字符串是否回文
2、生成斐波那契数列,入参是数列的长度 1 1 2 3 5
3、生产者消费者模型:拆分时间段查询,起10个协程查询,按顺序返回结果,把时间 异步查询,按时间顺序组合 使用channel实现
建议 channel goroutine使用,云原生和docker学习
二、天云融创数据科技
1、自我介绍
2、diff测试
3、协程和线程的区别
4、协程为什么是轻量级的
5、讲一下锁
6、项目中哪些地方用了哪些框架
7、发的论文讲了什么
8、讲一下动态规划(动态规划三要素)ea00.png)
三、心想科技(外包)
问项目经历比较多
1、gorm框架使用中遇到过哪些问题
2、gin框架的底层使用http协议的哪部分实现的
3、参与过项目的重构吗
4、微服务有没有用过
5、项目中用过哪些设计模式
6、mysql的引擎
7、使用过docker吗
四、深圳铂数
1、http有哪些状态码,301和302有什么区别
2、设计一个秒杀系统应该怎么设计(加锁和缓存被面试官否决)
3、用基本的数据结构设计一个读写锁
4、有哪些印象深刻的bug
5、如果让你来公司做测试愿意吗
五、北京金万维
1、make和new的区别
2、进程、线程、协程的区别
3、channel使用要注意什么,会产生死锁吗
4、讲一下死锁
5、讲一下互斥锁
6、数据库的索引,讲一下 innodb
7、redis的使用场景(回答做缓存)
8、tcp udp分别在什么场景下使用
9、为什么要使用三次握手和四次挥手
总监后续提问
1、监控项目有什么难点
2、自动化的测试怎么落地
六、美的集团(golang开发sdn方向)
1、讲一下GMP模型
2、有哪些解决并发问题的方式
3、channel关闭后再发送数据会出现什么情况(panic)
4、哈希碰撞算法(开放寻址法,再哈希法,拉链法),讲一下map的底层实现
5、数据库查询很慢的时候,应该怎么排查
没有加索引。如果没有加索引的话,会导致全表扫描的。因此,应考虑在where的条件列,建立索引,尽量避免全表扫描
6、数据库引擎底层使用的什么数据结构
7、Linux怎样查看占用cpu(top) 和 内存(free)
8、设计一个redis集群,redis 主从模式,主机挂了后,怎么选主机
9、redis的持久化方式,常用redis的哪个数据结构
10、TCP的拥塞控制机制
11、模块间底层通信使用的协议有了解吗
12、参与Nginx优化,怎么优化的
七、富途
1、协程什么情况下会产生内存泄漏,
2、哪些数据结构是原子的,也就是哪些是并发安全的
3、 channel没关闭就会产生内存泄漏吗
4、写单例模式
5、 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。 注意:你不能在买入股票前卖出股票。
6、给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。
7、还问我10亿个数,从中取出最小的前100个数
8、逻辑题 戴黑帽子的人数
9、两根香,一根香烧完60分钟,如何取15分钟
八、字节测试
一面:
1、项目
2、遇到过什么问题
3、测试痛点
4、讲一下协程,相比线程、进程
5、http和https
6、https的过程
7、手撕代码:将一个数插入一个有序数组中,给出时间复杂度
二面:
1、主要是聊业务
2、测试过程中发现哪些问题
3、你有哪些优点和缺点
九、作业帮
1、返回数组中第k大的数
2、一个server,多个client,server发送一个数据,所有client都能收到,任意client发送数据,server都能收到,请用channel,goroutine实现
3、多个select条件同时满足,会执行哪一个
4、return value和defer的返回顺序
i的输出值是多少
package main
import"fmt"funcmain(){
fmt.Println(test())}functest()int{
i :=0deferfunc(i int){
i = i +1}(i)return i
}
二轮面试
1、http状态码500的含义,是客户端问题还是服务端问题
2、Linux查看隐藏文件,Linux的正则匹配
3、切片的底层结构
4、redis的使用,除了string还使用什么数据结构
5、讲一下建mysql索引的原则
6、问项目
7、init函数使用过吗,怎么用的,和main函数的调用顺序是什么样的
8、存储金额用mysql的什么数据类型
9、需求从发布到上线的全流程
10、手撕代码,二叉树前序遍历,写一下非递归的实现
三轮
1、聊项目,项目难点
2、为什么来武汉
3、离职原因
十、奇瑞汽车(大数据开发)
1、讲一下gmp模型,P最大的数量是多少
2、goroutine会自己退出吗,如果协程内部是一个死循环,协程会自己退出吗
3、channel的底层
4、redis 主要用哪个数据结构
5、redis的map的底层,产生冲突的话再hash的过程是否了解
6、redis的线上部署是集群部署还是主从
7、怎么处理缓存和数据库的数据一致性问题
8、mysql主从模式同步过程
9、听说过回表吗
10、主键索引和非主键索引存储的区别
11、mysql的日志
12、mysql优化explain字段有哪些
13、init函数执行顺序
14、金额用什么mysql的什么数据类型存储
15、手撕代码,最长公共前缀
十一、小米sre工程师
1、多个api检测可用性,有可能是http,tcp,udp,30秒检测一次,应该怎么做
2、讲一下红黑树
3、B+树的时间复杂度,空间复杂度
4、为什么要进行压测
5、讲一下mysql和redis
十二、快手-本地生活 测试
1、讲项目
2、讲一下mysql的索引,除了innodb和myisam还有什么索引
3、mysql的事务,隔离级别,讲一下不可重复度
4、讲一下左前缀匹配法则
5、redis的数据结构,基本操作,set的操作是什么
6、缓存击穿和缓存雪崩
7、讲一下幂等,mysql事务的幂等
8、接口测试的方法
9、压测查看的指标
10、sql语句: 查询平均工资最高的部门的manager的详细信息
11、手撕代码:数组 奇数位正序,偶数位倒序,要求整体排成正序,不能用简单排序算法,空间复杂度没要求,时间复杂度越小越好
十三、途游游戏
两道并发编程的题目
1、找出这段代码的问题,并改错
funcmain(){var wg sync.WaitGroup
wg.Add(10)for i :=0; i <10; i++{gofunc(){
fmt.Println(i)
wg.Done()}()}
wg.Wait()}
2、使用并发编程找到第一个为素数的的数,并返回
版权归原作者 时鲟、时倾 所有, 如有侵权,请联系我们删除。