说明:以下面经是来自一位2020年面试字节跳动的朋友的面试题
链接:
https://blog.csdn.net/a159357445566/article/details/110128543
这位朋友总共进行了三面,因为第二面(凉凉),所以又捞了一面(再凉),看看下面这位朋友的面经,是否你可以运筹帷幄呢?
一面
时长:1h 07m
1、 Integer 和 int 的区别,平时编程中什么时候使用 Integer,什么时候使用 int?
2、new Integer(1); 会不会从缓存当中取?
3、List 中为什么只能使用 Integer,不能使用 int?
4、int i = 1; 这样的基本类型可能会存在于jvm的哪些区域?
5、jvm 如何判断对象可以被回收?
6、jvm 如何判断对象已经死亡,两种方法的判断流程是怎样的,哪个效率高?
7、GCRoots 的对象有哪些?本地方法栈中的对象为什么可以作为GCRoots,怎么连接到 Java 对象的?
8、mysql 的主键索引和非主键索引有什么区别?
9、如果一条SQL语句执行的很慢,怎么优化?
10、为什么用b+树?
11、写个题,给定一个数组 [1,2,3] 和一个值 x,数字可以重复选取,输出所有和等于 x 的结果。
12、介绍一下秒杀系统,mysql 中存了什么?redis中存了什么?rocketmq干嘛用的?
13、它是来一个请求就下单吗?
14、如果两个用户在两个不同的机器上登录进行秒杀,那该用户能同时下单同一件商品两次吗?
15、反问
二面
时长:1h0 5m
1、问了项目,rpc架构说一下
2、服务提供方有节点挂了怎么办?
3、服务调用方怎么知道服务不可用了?
4、怎么实现的类似本地调用?
5、你的rpc可以支持多语言吗?
6、介绍下NIO
7、NIO中Channel的作用
8、cap解释下,p是什么?
9、zk的分布式算法zab
1.、如果选举的时候zxid都相同呢?
11、mysql为什么没有使用hash索引?
12、为什么没有用二叉树、二叉平衡树?
13、索引的匹配原则知道吗?
14、欧拉图知道吗?不知道
15、算法题:
最长上升子序列长度。
一面(捞)
1、知识导航平台介绍下。
2、注意力机制是什么?
3、秒杀系统需要考虑哪些问题?
4、秒杀大闸具体怎么实现的?
5、Redis 为什么可以保证线程安全?
6、有多个集群怎么办?
7、多个线程同时读到你的库存数据怎么解决办?
8、为什么线程多的时候要使用锁而不是CAS?
9、Netty 的零拷贝怎么实现的?
10、写题:
已知二叉树的先序遍历序列,输出它的中序遍历序列。比如先序;ABC##D#E###,输出中序CBDEA。#表示空节点,中序输出不需要#。
我们可以看到这位朋友的面试重点就是:java算法+数据结构+集合+框架+多线程 还有就是项目,如何实现高并发等,当然这几个大点也是现在大厂面试的重点,望诸君一起加油,希望这篇面经对您有多帮助!