3.30 阿里网商Java后端一面凉经
- 自我介绍
- 介绍一下Java的一些基本的集合类
- deque双端链表,加入一个元素,咋做
- hashmap底层的数据结构是什么
- Java里面的同步机制有哪些来处理并发,或者说有哪几种锁
- lock和synchronized锁有什么区别
- 场景题:现在有十台机器在提供服务,就以挂号系统为例,有很多人挂号,100个号,不能超。一个请求过来,看看还有没有剩余,有就挂号,没有就失败。这种情况能不能使用synchronized或lock锁。
- 接上题,怎么实现。我说初步并发不是很多的话,先用乐观锁。乐观锁怎么实现的。具体描述一下。
- 还有没有其他的办法。
- 分布式锁。
- 日常有使用过多线程的框架吗,Java系统中多线程的工具
- 数据库层面,mysql的几个特性说一下。
- MySQL隔离性有哪几种
- 数据库为啥要用索引这个东西。使用场景有哪些。背后原理是什么,为什么用索引就会快。
- 什么情况需要回表。什么情况不需要。
- 具体工作中用过数据库事务。事务是怎么使用的。
- 什么情况下触发事务的回滚,springboot怎么感知到业务失败了需要回滚,你的代码怎么告诉他需要回滚
- try catch捕捉到什么类型的异常会触发回滚
- 你自己方法里写了try catch,transactional注解还能捕捉到异常然后回滚么?为什么
- SQL优化你一般怎么优化的,介绍一下。从哪些方面进行优化
- spring和springboot有什么区别
- mybatis具体是做什么的,作用是什么
- maven的依赖控制有了解么。如果两个依赖,都依赖了同一个包,但是各自依赖的包的版本不一样。想用比较新的那个版本。遇到这种版本冲突怎么解决。
- 一些项目的问题
- 你项目高并发的请求量有多大
- 用什么软件模拟的
- 你是怎么解决这么大的并发问题的。详细描述一下过程。
- 你的读写分离是怎么做的。
- 主库和从库之间是完全同步的吗。刚写进去,读不到,这个问题怎么解决的。
- 你觉得要加缓存比较好,你为什么要觉得加缓存。
- 使用缓存,假如说有人更新了数据库,再去查缓存,查出来是更新前的数据怎么办?
- 你这个xxx系统具体的业务场景是什么
- 怎么入库的,入库设备扫码是什么方式调用你的接口的,怎么发起的调用的
- 入库这个动作如果是同一个设备请求了你两次,怎么保证只会有入库一次
- 快排怎么实现的。
- 一个长度为n(n > 10)的数组,在这个数组里面找出连续三个数的和的最大值。
- 有没有什么问题
- 部门业务做的啥
- 有没有啥建议给我
- 有没有必要把分布式学透再出来找工作
总的来说,还是问的很简单很基础的,奈何有些问题我答的太菜了。做梦也没想到第一个面试贡献给了阿里,本来还想拿中小厂练练手再面大厂的,这下估计直接g了。
#阿里巴巴#