字节后端一面
一、自我介绍
学习背景、获得荣誉、专业基础、项目实践
二、面试
1.项目是实际中有用的还是编程实践的?
2.怎么判断重复提交,以什么维度判断?
3.为什么采用redisson,不直接用SETNX?
4.过多久才判断它不是重复提交呢,比如说明天再发一个请求呢?
5.Key的超时时间设置的多少呢?假如业务异常,没有执行释放锁,再次提交会发吗?
6.布隆过滤器的原理?怎么解决误伤?
7.Mysql的表怎么设计的,以券表为例?索引怎么设计的?(根据业务场景设置的索引)用户分发表怎么设计的?
8.实现业务幂等是什么意思?幂等key怎么设置的?
9.Hashmap的扩容过程?数据结构怎样的?
10.使用迭代器遍历,另一个修改的时候会发生什么?怎么判断的?
11.为什么不推荐用executors创建线程池?
12.Java的内存结构有哪几部分?
13.Java定义了一些基础类,比如string,自己编写一个java.lang.String能加载吗?
14.Java怎么判断一个类被加载过了?
15.如何实现的多态?为什么执行子类的方法而不是父类的方法?
16.Mysql的innodb相较于myisam有什么优缺点?采用什么结构?存的数据是什么?
17.怎么支持事务的?
18.编程,二叉树最近公共祖先?
19.研一课多吗,在中关村校区吗?导师有没有要求?预计能实习多久?
三、反问
1.对我的建议?(基础扎实,面向业务场景考虑系统实现,很好的思路)实习时间能保证,对吧?应该刚开学对吧?(对,有充足时间)
2.做的什么业务?(抖音支付)
3.面试多久出结果?(没法回答)
4.业务用的go,会优先考虑go,对用java会有考量吗?(看的学习能力,学习意愿,会有详细的培养计划)