入职字节跳动那一天,我哭了(蘑菇街被裁,java 中异常处理机制的原理和应用
 
 环节二:实施计划,准备实战
=============
前期准备的这些需要一步一步行动起来了,但除了以上肯定是远远不够的,面试官除了技术相关的问题,必问的就是项目相关的内容,那项目相关内容需要怎么来准备呢?除了自己的实战经验的积累以外,其实我们还是可以阅读一些技术大牛写出来的实战经验及笔记。如:Redis 笔记、SpringBoot 技术笔记等。

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`)
)











 
    
评论