这段时间,不少公司的校招薪资都开讲了,例如深信服、贝壳、vivo。
字节也在这两天开奖了,分享一下北京后端和测开岗位的薪资(薪资数据来源于 offershow+社区讨论贴+读者分享):
后端开发(白菜):26*15,1w 签字费 后端开发(SP):(28~30)*15,1w~3w 签字费(可 a) 后端开发(小 SSP):32*15,1w~13w 签字费(可 a) 后端开发(SSP):(33~35)*15,1w~3w 签字费(可 a) 测开(白菜):23*15 + 1w 签字费 测开(SP):25*15,1w~3w 签字费(可 a)
这个签字费需要待满一年才能拿到,考虑到字节的流动性比较大,会有一部分同学拿不到。另外,二线城市对应的薪资会降低 3k 左右。
由于京东今年开的太多(不一定能拿满),导致很多人觉得字节开的不多。其实,综合来看,字节今年给的也还行,也算是头一档了。不过,我发现身边有一些拿到字节的读者,由于有其他薪资更高的 offer 或者担心工作压力太大,直接就给拒了。
下面,给大家分享一位球友面试字节后端岗位的 OC 面经,大家感受一下难度。
下面是正文!
xdm,拿到字节跳动的 offer 了!虽然又要转 Go 了,从 Go 跳到 Java,又从 Java 跳回 Go,反复横跳,感觉都没学深入。
以下是我的面试经历,分享给大家,希望能有所帮助!
一、算法题:
给定一个字符串,例如 "abcdabgh",以及一个字符 'a',要求随机返回 'a' 的下标(例如这里是 0 和 4),要求返回的概率必须相同。空间复杂度要求 O(1),即不能开辟任何空间存储下标,并且只能遍历一次字符串。 给定 n 个骰子,求和为 k 的概率,不能使用回溯算法。 给定一个数字,例如 234,以及一个有序数组,例如 {2, 3, 7},找出第一个不大于 234 的数,例如这里是 233。(题目描述似乎缺少一些限定条件,例如能否使用数组中的数字组成新的数字)
二、基础八股(可能不全,部分问题已经忘了,可能比较简单)
数据结构:
堆和树的区别?应用场景? 二叉搜索树是什么?
操作系统:
进程间的通信方式?如何写一个死锁的例子?如何解决死锁? 操作系统内存满了怎么办?如何回收内存?内存回收机制有什么影响? 什么是僵尸进程?应该如何处理僵尸进程? 为什么会有线程安全问题?如何解决线程安全问题? 解释一下乐观锁和悲观锁。什么是 CAS?什么是 ABA 问题?如何解决 ABA 问题?
MySQL:
索引的构成?(B+ 树)索引优化?给定一个 SQL 语句,判断其是否会走索引。 什么是慢 SQL?如何查找慢 SQL?如何优化慢 SQL? MySQL 的三大日志(redo log、binlog、undo log)。redo log 写进去了,但 binlog 没写进去该怎么办?(细节记不清了,当时没答好)write 和 flush 的区别?redo log 的刷盘时机?三大日志的执行顺序? MySQL 的事务隔离级别?各个隔离级别分别解决了什么问题?MVCC 的流程。
Redis:
zset 的底层数据结构?为什么不用红黑树?(这是我自己引申的,当时说了一句没用红黑树,用的是跳表) Redis 中的命令,例如 setnx
、setex
以及 zset 相关命令。Redis 的 key 有大小限制吗?key 过大会有什么影响?如何解决? Redis 的内存淘汰策略?(面试时一直想不起来,背了半天旁路缓存,以为要凉了) 根据 score 查询 member 的时间复杂度?反过来,根据 member 查询 score 的时间复杂度?
计算机网络:
一次完整的 HTTP 请求所经的步骤 HTTP 常见的请求方法和状态码有哪些?502 错误是什么?如何排查 502 错误?解释一下反向代理。 HTTPS 的安全性体现在什么方面?(本质还是在问 HTTPS 原理)
场景设计题:
设计一个敏感词库,要求支持对敏感词的增删改查。敏感词文本匹配,敏感词数量约 1 万个,文本长度 20-10000。
(我提到了 Trie 树等方案,以及多线程处理。持久化存储方案被面试官否定了,说是我的方案一天宕机几分钟是不可接受的。)
三、项目和实习:
微信扫码登录的流程?背后的原理?(准备了很久的 OAuth 2.0 总算用上了)什么是 CSRF 攻击?如何解决 CSRF 攻击? 项目难点:(之前登录日志是同步写入数据库的,后来为了提升效率加入了消息队列,先写入队列再异步消费入库,实现解耦。但是队列使用了同步操作,有一次消息队列挂了,导致登录服务不可用,这是不可接受的。记日志不能影响登录,所以将队列操作改为了异步方式。) 订单 30 分钟自动取消的实现,延时消息机制。(这部分是我自己引申的,包装了一下,讲了 MQ 的 18 个队列,以及 Kafka 的时间轮。) 实习中使用的语言?Go 协程中出现 panic 怎么办?解释一下 defer
。了解 GMP 模型吗?
参考答案:
上面的面试问题几乎都可以在《Java 面试指北》 和 JavaGuide 这两份资料中找到
希望对大家有一些帮助,冲!
📌Java 后端技术面试准备强烈推荐《Java 面试指北》 和 JavaGuide ,400 多人参与维护完善,质量非常高。另外,目前的面试趋势是场景题变多,可以参考《后端面试高频系统设计&场景题》(20+高频系统设计&场景面试题)进行准备!
⭐面经合集:《Java 后端面经精选》
秋招结束,我拿到了华为小奖状! 毕业两年,成功跳槽! 百度毕业后拿到京东offer,总包 51w! 24届校招,入职杭州某股份制银行! 大厂四年,2024 阿里、字节、蚂蚁、小红书面试经历分享 焦虑选手成功上岸美团了! 双非本+无实习,圆梦快手! 面试了南京的两家小公司
专属面试小册/一对一交流/简历修改/专属求职指南,欢迎加入我的知识星球 ,和 3w+球友一起准备面试!