奇安信的年终奖,出乎了所有人意料!
来吃个瓜
昨天上网冲浪,看到了这么一条热搜消息,号称网安一哥的大厂奇安信官宣 “全员无年终奖”!
不知道这算不算刷新了记录。一些顶级游戏开发团队能拿到长达百月的年终奖金,而这个时候网安领域的领军企业却宣布全员颗粒无收。同在大型企业工作,这薪酬差异简直是天壤之别。
设身处地想想,如果我是奇安信的一份子,我肯定也是愤慨至极。真心希望这些大公司能够重整旗鼓,让我们国内的环境能够回暖一些。
聊到这里,其实我也想做个简单的调查:对于刚刚步入职场的新人,你们更倾向于选择薪资优厚但规模较小的公司,还是那些规模宏大、技术前沿的大企业呢?
如果让我来选择,刚毕业的话肯定还是想进大厂,因为说句实话,很多小公司的技术部门就是在打杂,能学到的东西是很有限的,就算薪资高也不一定能长久的干下去,而且有句话说的好:打铁还需自身硬。所以有这个机会的话还是得冲击大厂。
下面就为你整理了一些大厂的最新面经,帮助你冲击大厂!
字节跳动
1.介绍一下业务表的字段
2.定时任务刷新字段, 是怎么实现的?
3.分布式锁? 分布式死锁如何解决? 看门狗机制? 如何避免当前线程加的锁, 被其它线程解锁?
4.乐观锁和悲观锁的区别? 写多读少的情况, 应该使用乐观锁还是悲观锁?
5.分布式场景下, 如何实现乐观锁?
6.kafka的幂等性? 如何避免消息被重复消费?
7.两个线程, 同时向mysql中插入一条数据?
8.kafka如何保证消息不丢失
9.sql优化场景:
select id,name,balance from account where update_time > '2020-09-19' limit 100000, 10
该语句为什么查询慢? 有什么优化思路?
算法题: 子集
360
1.协程池的作用?
2.内存逃逸分析?
3.go的内存回收什么条件会触发? go的GC能够手动触发吗?
4.channel的底层实现? 有缓冲的,无缓冲的channel, 如果管道已经关闭了, 读取会不会发生错误?
5.切片使用的时候需要注意什么?
6.go中的参数传递是值传递还是引用传递?
7.defer的执行顺序?
8.100G的文件, 统计出所有英文字母, 按照字母表顺序输出
9.linux如何分割文件?
10.接口性能如何优化?
11.什么情况会全表扫描?
12.主丛同步的原理? mysql还有什么相关的log文件?
13.分布式锁的原理?
酷狗音乐
1.mysql存储引擎?
2.mysql隔离级别? 分别解决了什么问题?
3.2pc, 3pc 算法
4.10亿个数据获取前100个最大数据?
5.单个表到达多大要进行拆分? 为什么需要拆表?
6.redis哪些使用场景?
7.服务的熔断降级?
8.平时如何提升和学习?
9.TCP和UDP可以绑定同一个端口吗?
10.linux如何查看cpu, 内存负载?
11.进程间通信有哪些方式?
12.redis的数据类型?
13.redis和mysql的一致性问题?
5.索引失效场景?
6.mysql如何解决的幻读?
select ... for update: 保证当前事务中查询的范围加锁, 不被其它事务修改
7.做索引优化, 如何减少回表次数--索引下推
索引下推: 指将上层(服务层)负责的事情, 交给下层(引擎层)处理.
不使用索引下推: 根据索引中的主键值, 定位并读取完整的行记录, 然后将记录交给server层去检测该记录是否满足where条件
使用索引下推: 获取索引, 判断索引是否符合条件范围, 如果满足, 再进行对应的回表查询获取主键, 如果不满足, 直接过滤掉
8.分布式事务, 二阶段提交, 三阶段提交的区别?
9.linux查看网络io的命令? netstat
10.如果出现大量time-wait状态, 如何处理?
11.网络的拥塞控制?
酷狗音乐(二面)
1.项目中涉及到哪些监控? prometheus
2.队列出现消息积压, 如何处理?
3.消息幂等性?
4.一个sql语句, 已经建立了索引, 但是突然查询很慢, 如何排查?
5.索引失效场景?
6.mysql如何解决的幻读?
select ... for update: 保证当前事务中查询的范围加锁, 不被其它事务修改
7.做索引优化, 如何减少回表次数--索引下推
索引下推: 指将上层(服务层)负责的事情, 交给下层(引擎层)处理.
不使用索引下推: 根据索引中的主键值, 定位并读取完整的行记录, 然后将记录交给server层去检测该记录是否满足where条件
使用索引下推: 获取索引, 判断索引是否符合条件范围, 如果满足, 再进行对应的回表查询获取主键, 如果不满足, 直接过滤掉
8.分布式事务, 二阶段提交, 三阶段提交的区别?
9.linux查看网络io的命令? netstat
10.如果出现大量time-wait状态, 如何处理?
11.网络的拥塞控制?
好未来
1.为什么要自己实现大顶堆? 大顶堆和小顶堆的使用场景?
2.如何利用堆, 获取第k大的元素? 堆如何删除某一个特定的节点? 大顶堆如何转换为一个小顶堆?
3.引入mq, 实现异步提速, 如何理解?
4.协程池使用的是第三方包吗? 如果自己实现一个协程池, 描述你的思路?
5.recover能捕获到其它协程的panic吗?
6.说一下对grpc的理解? grpc互相调用, 如何实现互相的权限验证和授权?
7.http2.0 的tsl三次握手过程?
8.grpc中, 如果客户端需要向服务端发送大文件, 如何实现? (使用客户端流模式)
9.http2.0的相关特性? 其中的多路复用为了解决什么问题? (解决对头阻塞问题)
10.grpc中的deadLine和timeout, 应该怎么用? grpc的流控是如何处理的? 滑动窗口控制发送和接收速速率?
11.go-zero中的服务熔断和限流是怎么做的?
12.以下两个代码片段输出的结果:
func test() int {
result := 1
defer func() {
result++
}
return 0
}
func test() (result int) {
result = 1
defer func() {
result++
}
return 0
}
好未来(二面)
1.限流算法
2.redis的集群和分片
3.cap理论
b站外包
旋转数组
mysql索引相关。
B+树有什么特点? 为什么不用B树(查询的速度差不多,因为b+树数据都在叶子节点)。 非聚簇索引和聚簇索引的区别。 索引为什么要用id不用字符
Linux相关命令和场景
docker和k8s
早日上岸!
我们搞了一个免费的面试真题共享群,互通有无,一起刷题进步。
没准能让你能刷到自己意向公司的最新面试题呢。
感兴趣的朋友们可以加我微信:wangzhongyang1993,备注:面试群。
本文首发在我的同名公众号:王中阳Go,未经授权禁止转载。
点击阅读原文,看看他们是怎么找到好工作的!