字节跳动面经整理

非科班,经历了无数场秋招,现将面试字节的题目记录如下:

一面:

1.IM系统用户登录怎么实现的?

2.登录状态是怎么保存的?session是怎么获取的?sessionid是怎么识别的?整个流程是什么样的?有没有考虑分布式session?

3.Redis的数据类型

4.Redis数据类型的底层数据结构

5.三次握手、四次挥手

6.Redis持久化机制

7.MySQL的InnoDB索引数据结构

8.哪些SQL的关键字会让索引失效

9.队列、栈、数组、链表

10.算法题:leetcode 92题

二面:

1.讲讲爬虫的构成

2.爬虫抓到的数据不清洗吗?不去重吗?

3.对爬虫有什么更多的了解吗?

4.Linux进程间通信机制

5.进程和线程的区别

6.线程私有的数据有哪些?(不是Java线程)

7.讲一下堆排序,每次调整的时间复杂度?堆排序是稳定的吗?(一开始说错了,应该是不稳定的,后面面试官问稳定的定义是什么)

8.哈希表的原理,怎么减小哈希表的冲突,怎么保证哈希表的并行读写

9.Kafka用过吗?说说Kafka的原理?怎么保证Kafka的高可用?Kafka怎么保证消息有序?

10.项目里的set实现点赞,zset实现关注,为什么?

11.zset底层实现?说一下跳表?节点的高度是多少?怎么决定节点的高度?

12.https了解吗?

13.中间人攻击知道吗?怎么做https的抓包?https怎么篡改?

14.虚拟地址到物理地址的映射过程

15.算法题:给一个数组,建一颗最小高度的二叉树(递归和非递归)

三面:

  1. 自我介绍
  2. 项目
  3. volatile原理和作用
  4. 什么是指令重排序,举个例子
  5. AQS原理
  6. JVM内存模型
  7. 类加载过程
  8. 双亲委派机制
  9. 介绍代理模式
  10. redis数据结构
  11. HTTP状态码,header
  12. MVCC原理
  13. 算法:
  • 买股票无限次
  • 买股票只买一次
  • 买股票有手续费
  • 买股票最多买两次

四面

1.介绍一下做过的项目,哪些挑战性比较大,比较有难度的

2.IM项目怎么用Netty的,为什么要用Netty,长连接交互是怎样的

3.消息怎么存储,怎么发送,怎么知道消息已读和未读的

4.读了5条消息、又来5条消息,你是怎么去更新的,你的消息是幂等的吗?

5.项目里怎么用ES的,ES怎么支持搜索的

6.技术论坛网站的评论是怎么存储的

7.查询评论是在DB里扫表查询吗?怎么展示所有的评论?性能如何?想要查询更快可以做哪些优化?

8.结合缓存和DB的时候会出现哪些问题?要怎么解决?

9.快排了解吗?介绍一下快排?时间复杂度是多少?为什么会退化成O(n^2)?单链表可以做快排吗?快排最核心的逻辑是什么?写一下单链表快排

本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~********

如果访问不了Github,可以访问****

#java#
全部评论
求问下是哪个部门呀
点赞 回复 分享
发布于 2024-01-03 21:35 北京
链接被屏蔽了,不过可以点击
点赞 回复 分享
发布于 2023-05-26 21:59 广东

相关推荐

买蜜雪也用卷:我觉得应该没有哪个人敢说自己熟练使用git,代码分支一复杂还是得慢慢寻思一下的,不过基本的拉代码提交代码还有分支什么的是应该会
点赞 评论 收藏
分享
评论
5
43
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务