近两年,字节跳动的发展越来越快,导致想要进入字节跳动的应届生越来越多,竞争越来越大,所以字节跳动的面试也越来越难。对于普通本科出身的我,不得不说是一项挑战,而这项挑战能否成功的关键,就在于是否能够坚持,是否做好了充足的准备。毕竟,对于技术人员来说,技能水平远远比学历水平更重要。

在投字节跳动简历前,知道自己的短板,所以制定好了完整的计划开始恶补。最终在面试中,惊险通过,“挤进”了字节跳动抖音事业部。

字节跳动面试题

  • Http协议
  • cookie session介绍一下
  • session表结构怎么设计,储存在哪里?
    -你们的session cookie在项目里运用到哪里?
  • 算法题:[删除链表中重复的节点]在一个排序的链表中,存在重复的节点,请删除该链表中重复的节点,重复的节点不保留,返回链表头指针.例如,链表1-2-3-3-4-4-5处理后为1-2-5
  • TCP/UDP的区别介绍一下
  • TCP如何保证传输的有效性。
  • TCP的拥塞控制
  • TCP建立连接的三次握手
  • TCP四次挥手断开连接
  • Java的锁机制
  • 死锁产生的原因
  • 三次握手和四次挥手,time_wait是什么状态
  • B树 B+树区别说一下
  • 数据库平时用到过什么 咱们先问MySQL MySQL索引原理知道吗,问了两种索引的区别
  • 索引的分类和优缺点
  • innodb和myisam的区别
  • 乐观锁悲的的区别说一下
  • 数据库四种隔离状态 分别有什么问题
  • redis的数据结构
  • sortset底层,原理,怎么保证有序
  • 冯诺依曼计算机的结构
  • 操作系统的虚拟内存
  • 进程的调度
  • 进程间的通讯方式
  • 线程间的同步方式
  • 进程和线程的区别
  • 常见的排序算法

Java 核心面试知识整理,点击此处获取完整版

这份Java 核心面试知识整理得非常详细,涉及到的知识点非常多,包括一些基础类的、进阶类的等等。JAVA基础、Spring 原理、数据库、分布式缓存等各个方面知识点都有详解。



我的学习笔记

Redis 学习笔记:

  • redis简介
  • 为什么要用redis /为什么要用缓存
  • 为什么要用redis而不用map/guava做缓存?
  • redis和memcached的区别
  • redis常见数据结构以及使用场景分析
  • redis设置过期时间
  • redis 内存淘汰机制(MySQL里有2000w数据,Redis中只存20w的数据,如何保证Redis中的数据都是热点数据?)
  • redis 持久化机制(怎么保证 redis 挂掉之后再重启数据可以进行恢复)
  • redis事务
  • Redis常见异常及解决方案
  • 分布式环境下常见的应用场景
  • Redis集群模式
  • 如何解决Redis的并发竞争Key问题
  • 如何保证缓存与数据库双写时的数据一致性?



SpringIOC 笔记整理:

  • 什么是Spring
  • Spring-HelloWorld的步骤
  • 容器中bean的配置方式
  • bean属性的配置细节(字面值 & ref & 内部bean等)
  • XML 配置里的 Bean 自动装配
  • XML 配置里的 Bean 自动装配的缺点
  • 继承 Bean 配置
  • 依赖 Bean 配置
  • bean 的作用域:singleton;prototype;WEB 环境作用域
  • 使用外部属性文件
  • Spring表达式语言:SpEL
  • IOC 容器中 Bean 的生命周期
  • 通过工厂方法配置bean
  • 实现 FactoryBean 接口在 Spring IOC 容器中配置 Bean



Spring Boot 核心技术笔记:

  • 一、Spring Boot入门
  • 二、配置文件
  • 三、日志
  • 四、Web开发
  • 五、Docker
  • 六、SpringBoot与数据访问
  • 七、启动配置原理
  • 八、自定义starter



Docker 学习笔记:

  • Docker的应用场景
  • Docker 的优点
  • Docker安装
  • 第一个Docker化的Java应用

算法刷题
字节跳动,熟悉的朋友应该都知道,算法题肯定是少不了的,字节跳动是出了名的喜欢问算法题,所以在面试之前一定要多刷刷题,才好应对面试官。


算法(第4版):