字节后端实习一面面经
字节后端一面
自我介绍
你觉得这个项目有什么点是让你得到提升的
Redis的底层数据结构说一下
Redis雪崩、击穿、穿透
Java GC说一下
我:主要讲了堆内存划分,YGC,FGC,CMS 其他有点忘了!
IOC和AOP说一下
构造函数、析构函数能被重载和重写吗
我:析构函数不了解
两个栈实现一个队列
追问:什么时候第一个栈的数据会进入第二个栈里面
两个队列实现一个栈
因为没有做过,这个想了好久,想了8分钟了,面试官还一直等我!
找出一个字符串中有多少个回文子串,还有输出最大的回文子串
我:说了一个大概,面试官不太满意
为什么有了二叉树还要有平衡二叉树和红黑树
红黑树的性质
又是一波红黑树连问,我太难了
我:只答了一些
红黑树是怎么新增一个节点和删除一个节点
我:只提到了左旋右旋
哪些项目使用到了红黑树
我:HashMap
为什么要用红黑树
进程和线程的区别
进程通信了解吗
管道通信底层是怎么实现的
我:其实,所谓的管道,就是内核里面的一串缓存。从管道的一段写入的数据,实际上是缓存在内核中的,另一端读取,也就是从内核中读取这段数据。另外,管道传输的数据是无格式的流且大小受限。
使用fork创建子进程,创建的子进程会复制父进程的文件描述符,这样就做到了两个进程各有两个「fd[0]与fd[1]」,两个进程就可以通过各自的 fd 写入和读取同一个管道文件实现跨进程通信了。
什么是内核态和用户态
系统调用是怎么完成的
tcp和udp的区别
tcp的拥塞控制说一下
为什么是三个重复ACK才快重传
两次duplicated ACK肯定是乱序造成的!
丢包肯定会造成三次duplicated ACK!
三次握手说一下
四次挥手说一下
是每次都是客户端先发出FIN包吗
TIME_WAIT 说一下
TCP三次握手对应的Socket编程的API说一下
UDP对应的Socket编程的API说一下
线程之间怎么进行数据同步
说说死锁
Http请求了解吗,说说
数据库索引的实现
详细说说B+树
行锁和表锁了解吗
算法题:
存在如下层序序列的完全二叉树:[8,7,9,5,6,10,11,1,2,3,4,12,13,14,15],建立如上二叉树,并打印其前序遍历结果
#实习##面经##字节跳动##Java工程师#