【得物】Java岗-15min结束的光速面经
一面
邮件写30min就面30min,可以的,面试官语速跟火箭似的
- Java 里常用的数据结构有哪些
-
Set 怎么去保证去重的
-
Set 里面,如果保存的是一个自定义的对象的话,那我这个对象应该是有什么动作吗?
-
在常用的里面,然后队列基本上是使用在哪一种?哪些场景?
-
BlockingQueue有哪些实现类,基本原理,怎么实现阻塞的
-
synchronized和reentrantlock区别
-
synchronized实现原理,锁的机制
-
基于synchronized加锁,多线程去抢资源,底层会发生什么
-
操作系统级别怎么做到阻塞
-
wait方法操作系统里是如何实现的?
-
如果中途一些线程离开或者失效,怎么办,怎么维护
-
wait和join哪个会释放锁
-
MySQL 里面,然后事物的隔离级别都有哪些?
-
提交读和可重复读有什么区别?
-
MySQL如何实现事务的
-
redolog和binlgo区别,如何保证它们的数据一致
-
分布式事务的解决方案
-
Seata下AT模式,发生事务超时怎么解决
-
场景:比如说我们做在这个支付,就是你去转账的时候,就比如说然后你是个订单,然后你去支付的时候,
这时候可能是说支付宝那边可能遇到就是会遇到网络超时,对你来说有可能是说然后要成功,对吧?有可能失败,但是你在当场前情况下你是不知道这个结果的。
那这个时候,然后比如说是你作为一个订单的设计,比如说我怎么去防止这种情况?
从前端上开始请求,或者是就是用户请求,然后到订单服务,然后再到一个支付服务,对不对?这三个服务,那如果比如说订单去支付的时候,然后这时候出现了一个超时,对吧?你订单的时候肯定会有个状态的流转,对不对?那这个流转你到底推还是不推?或者说你有什么办法去保证?然后订单的状态和你的支付状态是一致的?对,你不知道,因为它是超时的,就是你不知道支付他们那边的结果。
- Spring中用到了哪些设计模式?你怎么理解模版模式,工厂模式
二面
- 线程之间通知怎么处理
-
比如说有一个队列当中,有批量线程去处理的任务,然后一个任务处理失败之后要终止其他任务,这个怎么处理?
-
负载均衡算法
-
熔断器实现思路
-
kafka ack机制
-
如何实现自定义的类加载器
-
在上下文当中传递标,这个标的话你可以理解为KV值,
然后我在项目当中去不断地去链路当中透传,那传的直接传的可能会丢,对吧?那如何?我应在线程池当中实现这个标的传递?
- 项目难点
-
(时间紧迫,那就这样吧,没有反问环节
当一个面试官不想要你的时候,那么就光速结束,也别反问了