入职字节跳动那一天,我哭了(蘑菇街被裁,java 中异常处理机制的原理和应用
环节二:实施计划,准备实战
=============
前期准备的这些需要一步一步行动起来了,但除了以上肯定是远远不够的,面试官除了技术相关的问题,必问的就是项目相关的内容,那项目相关内容需要怎么来准备呢?除了自己的实战经验的积累以外,其实我们还是可以阅读一些技术大牛写出来的实战经验及笔记。如:Redis 笔记、SpringBoot 技术笔记等。
![入职字节跳动那一天,我哭了(蘑菇街被裁,奋战 7 个月拿下 offer)](https://img-service.csdnimg.cn/img_c
onvert/a19ff72738bdaf3bcd277bad5f3ee566.png)
Redis 笔记
SpringBoot 技术笔记
更多实战书籍下载,关注我+私信口令「实战」即可:
环节三:制定简历,投递简历
=============
简历对于程序员来说是非常重要的一个环节,一份优秀的简历往往能够帮助我们敲开一线互联网大厂的大门,简历部分我就不做过多的赘述。可以参考《程序员找工作指南》,另外我可以提供 18 种优秀的简历模板。
下载好之后,根据模板来制定自己的简历,接下来就可以顺利投递啦!投递简历一定要参考好匹配值,建议最好找熟人内推。
简历范本
环节四:字节跳动面试经历,真实记录还原
===================
字节跳动一面:
第一面我觉得应该是基础面,重点考察的是自己技术的广度 和一些技术的掌握情况,一面小哥哥也没有深究于某个特定的点,面试时间大约 1 个小时。
自我介绍
怎么打算投递后台岗位的,没有考虑契合自己研究方向的工作?
有了解过 OAuth2.0 么,说说你对 OAuth2.0 的理解
蘑菇博客开发过程中,有了解或学习其它的开源框架吗?
蘑菇博客文章发布的流程是怎么样的,是多人博客系统吗?
对其它的一些博客框架有了解吗?比如 hexo
hexo 和蘑菇博客相比有什么区别呢?蘑菇博客多了哪些功能和优势?
看你蘑菇博客用到了 RabbitMQ,那谈谈为什么引入 RabbitMQ?
RabbitMQ 和其它消息队列,比如 ActiveMQ,RocketMQ,Kafka 有什么区别?
Redis 在你博客项目中的使用,为什么引入 Redis?
Redis 中存储的是热门文章,是通过什么来得到的?这样做会有什么问题么?
有听过长尾效应么?你通过推荐字段设置的推荐等级,这样会让这些文章一直保持在较高的点击量,而且热度和点击量也不会随着时间而降低,有什么解决方案么?
我看到你有用到 JustAuth 这个登录授权?说说它会存在账号泄漏的问题么?
下面谈谈 Redis,它会存在线程切换的问题么?
谈谈 Redis 单线程模型和 IO 多路复用
Redis 的大 Key 的问题,如果有个 Value 的大小是 2M,会有什么问题么?最大支持的 Value 大小是多少?
谈谈 Redis 集群 Redis Cluster,以及主从复制原理?
说说 Redis 中的哨兵,即 Redis Sentinel
下面来聊聊 Linux,你知道 Linux 怎么查看当前的负载情况么?
你还知道其它的一些 Linux 命令么?
cat、tail、vi、vim 命令的区别,分别说一说?
如果 Linux 下需要打开或者查看大文件,你会怎么做?
下面聊聊 Http Code,你知道 3XX 状态码 对应的是什么?
谈谈你知道的其它一些状态码,4XX 和 5XX?
算法题:
(1)# 给定一些数组,例如下面的格式,他们都表示一个区间,然后你需要将区间进行合并
[1,2],[2,4],[3,7],[8,11]
# 如上所示, [1,2] 和 [2,4] = [1,4]
# 然后 [1,4] 和 [3,7] = [1,7]
# 最后 [1,7] 和 [8,11] 无法合并,所以最后结果应该返回 [1,7],[8,11]
(2)# 给定一个数组,例如 [1,1,2,2,2,3,3,3,3]这样的,里面的数组不一定连续并且有序,假设我输入 2,这个 2 表示出现次数最高的两个
# 那么你需要给我返回 2,3
字节跳动二面:
自我介绍
博客已经开源了么,用的什么开源协议,博客的用户多么?
看你博客中用到了 Solr 和 ElasticSearch,谈谈它们的原理,以及倒排索引?
对于 Solr 或者 ES 里面用到的一些中文分词器有了解过么?
谈谈那些技术栈,你比较熟悉的是那些,mysql 和 redis?
聊聊 MySQL 的底层索引结构,InnoDB 里面的 B+Tree?
B Tree 和 B+ Tree 的区别
聊聊 MySQL 索引的发展过程?是一来就是 B+Tree 的么?从 没有索引、hash、二叉排序树、AVL 树、B 树、B+树 聊。
谈谈 MySQL 里面的事务,说说什么是事务?
MySQL 里面有哪些事务级别,并且不同的事务级别会出现什么问题?
谈谈可重复读和幻读的区别?
MySQL 中如果使用 like 进行模糊匹配的时候,是否会使用索引?一定不会用么?
谈谈 Redis 吧,在你项目中的具体使用?
谈谈 Redis 如何实现分布式锁?
蘑菇博客是否存在缓存不一致的情况,你是如何解决的?
谈谈 Redis 中缓存穿透的问题,以及解决的方法?
还有其它解决缓存穿透的方法么?布隆过滤器有了解过么?
Redis 中大面积的缓存失效,然后请求全部打到数据库,有什么解决方法?
如果出现一些热点数据,比如明星之间的新闻,造成大量的吃瓜用户涌入后台,但是服务器还没有缓存对应的数据,这样可能造成数据库宕机,如何避免这样的情况?
聊聊 JVM 的组成结构?
谈谈垃圾收集原理?以及垃圾收集算法
复制算法 和 标记整理算法?
为什么不在新生代使用标记整理算法?或者在老年代使用复制算法?
有了解过 Volatile 么?谈谈你对 Volatile 的理解
Volatile 如何保证可见性的?以及如何实现可见性的机制。
如果大量的使用 Volatile 存在什么问题?
谈谈操作系统的线程,以及它的状态
线程和进程的区别?
为什么提出多线程应用,而不是多进程应用呢?
Linux 你平时都有用到什么命令呢?
如果我需要查看端口号或者进程号,你会使用什么命令?
谈谈你做的另外一个项目吧?稍微介绍一下
来吧,写个题目试试
# 链表的两两翻转 # 给定链表: 1->2->3->4->5->6->7 # 返回结果: 2->1->4->3->6->5->7
字节跳动第三面:
自我介绍
好奇一下,用码/云的人应该不多吧,为什么没有用 Github?
你英文水平怎么样?
聊聊开源项目吧?我看这项目已经有 800 多赞了,你在这开源项目主要做了什么工作?
我们找些点来聊聊吧?先从 ES 和 Solr 开始,你们这两个都有在用么?
SQL 的方式实现搜索,你是怎么做的呢?
使用 like 匹配的时候,会不会查询非常慢呢?
ES 和 Solr 的底层都用了 lunce,谈谈你对 lunce 的理解?
lunce 里面也有用到分词器,比如一些新的词 “新冠肺炎” ,它能不能做到很好的划分呢?
除了人为的维护词库,来解决最新词语的分割,你还有知道其它什么更好的方法么?
你有了解过其它什么开源的分词库么?
谈谈字典树?
Solr 和 ES 底层都用了 Lunce,那他们两者有什么区别呢?
Solr 所谓的集群环境 和 ES 所谓的分布式环境,它们之间有什么区别呢?
上面你有提到微服务,你有了解过微服务是个什么样的理念么?
你现在的微服务,也是打包成多个 jar 包,部署在一个服务器上,如果服务器出现问题了,也会造成服务不可用,有没有好的解决方法呢?
聊聊服务的注册与发现?
服务的注册和发现,其实依赖于一个注册中心的概念,会不会出现注册中心挂掉,而导致整个服务不可用,有没有什么好的解决方法呢?
有了解过 Zookeeper 整个的选举过程么?
谈谈 Zookeeper 的分布式一致性协议?
聊聊索引,我给你写个表,看看下面的查询语句,走了那些索引?
create table 'tb' (
id int,
name varchar(64),
status int,
createtime timestamp,
PRIMARY KEY (`id`)
)
评论