前言
春节假期结束了想必大家都开始上班了吧,不知道今年金三银四大家有没有面试跳槽的打算,今天趁着这个机会我想向大家分享一下我去年面试字节跳动的经验,希望能帮助到打算面试跳槽的朋友。
我是去年9月份向字节投的简历,期间也经历了几番折腾,一度以为要挂掉了,但反而塞翁失马焉知非福,反而base在了一个更合适的团队中
也不得不说,可能自己的潜在的一些底层思考方式上还是与“字节范”有一点相符,一路上聊过的面试官也都聊的很开心很投缘,也觉得能够加入这样的团队,工作起来也会很开心
好了,碎碎念说完,那就开始切入主题——
【主题背景】:
30岁、5年外包工作经验、重点本科
【面试岗位】:
字节Java岗
【面试时间】:
2个月,3轮面试
进入正题
一面
1、介绍一下自己, 为什么选择出来看看机会
2、聊项目, 警报怎么做的, 统一接入监控项怎么做的
3、聊项目, 配置中心项目, 问实时配置推送怎么做
4、讨论为什么选择所有的组件依赖放在配置中心中控制
5、我现在要做一个限流功能, 怎么做?这个限流要做成分布式的, 怎么做?
6、怎么抢锁?锁怎么释放?
7、加了超时之后有没有可能在没有释放的情况下, 被人抢走锁?怎么解决?
8、不用 zk 的心跳, 可以怎么解决这个问题呢?
9、假如这个限流希望做成可配置的, 需要有一个后台管理系统随意对某个 api 配置全局流量, 怎么做?
10、某一个业务中现在需要生成全局唯一的递增 ID, 并发量非常大, 怎么做
11、算法题:M*N 横向纵向均递增的矩阵找指定数
12、有什么想问我的?
二面
1、平时用的工具链和技术栈是什么?
2、golang 踩过坑吗?这段 golang 代码有没有 bug?
3、Java 中 HashMap 的存储, 冲突, 扩容, 并发访问分别是怎么解决的?
4、拉链法中链表过长时变形为红黑树有什么优缺点?
5、HashMap 的并发不安全体现在哪?
6、HashMap 在扩容时, 对读写操作有什么特殊处理?
7、ConcurrentHashMap 是怎么做到并发安全的?
8、Java 有哪些锁机制, 分别有什么特点?
9、知道 CAS 吗? Java 中 CAS 是怎么实现的?
10、MySQL 的存储引擎用的是什么?(InnoDB)为什么选 InnoDB?
11、MySQL 的聚簇索引和非聚簇索引有什么区别?