泡了两周最后还是挂了,闲来发一下面经
5.13:一面1h多一点,主要是算法差,题很简单,在面试官提示下写了二十多分钟
- 自我介绍
- 自己定义的java.lang.String 会被加载吗?
- 什么时候会去打破双亲委派机制
- TreadLocal讲一下
- 那线程之间想做变量传递怎么做呢?
- 拒绝变量传递?这里没太懂
- MySQL是如何保证脏读 可重复读这些的?具体可重复读讲一下
- 讲实习项目:二十多分钟
- 中间件适配,对于各种中间件不同的实现,你怎么去做一层的抽象
- 使用redis做限流,你们怎么去评估这个性能损耗
- 为什么不用滑动窗口限流,采用的是固定窗口
- SQL,讲一下你会怎么建立索引 产品表和产品明细表的一个关联查询:
select count(1) ,product_name
from product
join product_detail on product.id = product_detail.id
where date between xxx and xxx
having count(1) > 100
group by product_name
- 算法 给一组Node(code,parentCode,list<Node>childrens)数据,建立一个树结构,输出时为有序的
List<Node> nodes = new ArrayList<>;
list.add(new Node("a","null"));
list.add(new Node("b","a"));
list.add(new Node("c","a"));
list.add(new Node("d","a"));
list.add(new Node("e","d"));
5.21:二面,50多分钟
- 自我介绍,项目+实习 10min多
- 责任链模式在你项目中是如何使用的?
- 责任链模式的好处?
- 类的加载过程讲一下
- jvm内存模型
- java中的锁机制是如何实现的?
- 最近在学什么?
- 一个开放题:共享屏幕,你可以查一切资料 包括chatgpt,设计一个系统,支持AI文本问答、图像问答,当AI解决不了的问题,需要人工客服去解决。尽量详细一点,包括一些实现细节 (感觉我答得一坨x)
- 算法:最长连续有效括号
输入:()
输出:2
输入:[()()
输出:4