字节跳动后端面经
一面:
-
进程线程,进程间、线程间通信方式,单个进程分配最大内存多少
-
IO多路复用,讲下select、poll、epoll
-
用户态、内核态
-
tcp、udp区别,tcp可靠连接用什么保证,三次握手、四次挥手各个状态名称,TIME_WAIT为什么是2MSL,如何解决TIME_WAIT状态过多
-
nnodb\myisam区别,B\B+树区别,为啥B+树更矮胖
-
事务4大特性ACID,讲一讲
-
redis的zset底层用的什么数据结构?跳表。介绍一下、画一下基本结构,搜索插入数据过程,时间复杂度
-
手撕代码:二叉搜索树转链表,要求空间复杂度O(1),讲讲时间复杂度
二面:
-
项目中redis拿来做什么的
-
多态,深拷贝、浅拷贝
-
JDK源码看过哪些,concurrenthashmap如何保证线程安全,锁粒度、扩容rehash过程,size如何计算
-
sychronized锁状态转换
-
几种GC算法,内存碎片如何解决
-
jvm相关、java内存结构
-
http了解吗、讲一讲,http2.0,https了解吗、连接过程(非对称加密、对称加密)讲一下
-
排序算法哪些是稳定的,为什么直接插入排序是稳定的
-
红黑树了解哪些
-
设计模式了解哪些,有什么应用
-
64匹马8个赛道找出速度前四的马的最少次数
-
算法:二叉树求和leetcode129-讲一下时间复杂度