面试阿里,直呼太难了!
我发现一件事,今年的秋招比去年来的更早一些,像什么小度、深信服、OPPO、科大讯飞、华夏银行等等知名的公司都开始了,想问问要找工作的各位:你们准备好了吗?
这真不是危言耸听,需要参加今年秋招的小伙伴真的要抓紧时间准备了,八股、算法、项目都要按部就班地往前推进了,毕竟时间不等人,我在星球里还遇到过秋招错过、春招也错过的球友,后续真的是十分被动。
今天分享一位粉丝投稿的阿里面经,这是他第一次约到阿里的面试,二面面完后跟我直呼:“太难了”。
阿里巴巴
阿里国际
数字零售技术部-ERP技术一面(电话面)
- 自我介绍
- 项目背景?
- 你觉得项目难点是哪些?
- 第一版是怎么实现的?为什么会出现超卖问题?
- 记录抢单结果的表是怎么设计的?
- 这张表的索引和其他的约束是怎么做的?
- 乐观锁为什么不是加在抢单关系表而是在订单表里的?
- 你现在数据库的设计上似乎有些问题
- 你们的订单允许取消吗?
- 如果要取消的话应该怎么设计呢?
- 简易短视频做了哪些东西
- 用户登录的处理流程是怎么个样子
- 接收登录请求是HTTP吗
- HTTP里面登录的状态保持是怎么做的?
- 怎么判断JWT的合法性
- JWT里面保持了哪些东西?数据结构大概是什么样子?
- JWT和普通的Session的方式有什么区别?
- session的方式了解过吗?
- 使用JWT要实现一个状态只能一个设备登录,这应该怎么做呢?
- 怎么设置JWT的校验不通过呢?
- JWT对于登录数量有要求的就很痛苦
- Java的双亲委派,为什么要这么设计呢?
- 类如果重复加载会有什么问题呢?
- 有遇到过非双亲委派模型的场景吗?
- 类加载的过程一般会做哪些事情?每一步具体都在做些什么呢?
- 对JVM的调优有了解过吗?
- 说说你对Redis的了解
- bitmap是个什么样的东西
- 项目里的Redis是怎么用的?
- 抢单为什么会有库存数量
- 使用Redis防止超卖的流程是怎样的,会不会有并发的问题?
- 递减是怎么操作的?
- 这样会不会有问题,递减完成时的并发判断库存大小的时候出问题,因为递减和判断不是原子性的
- ThreadLocal的作用
- 什么样的情况下会使用ThreadLocal?
- 后面怎么使用的?
- 这么设计(使用ThreadLocal)的原因?目前来说ThreadLocal是能不用就不用的
- 内部起个线程池,这时能拿到ThreadLocal的内容吗?
- SpringCache和Redis有什么区别?(考虑业务上的合理性)
- MySQL有哪些储存引擎了解吗?有什么区别
- 聚簇索引和非聚簇索引有什么区别?
- 回表的优化了解过吗?
- 为什么不要使用select * 呢?
- 没有被索引覆盖是什么?
- 什么是索引下推
- 反问
二面(电话面)
- 自我介绍
- 这里面比较有挑战的是哪个系统
- 在Redis里怎么做库存的扣减
- 怎么保证是不超卖的呢
- 面试官举了个例子表示对Redis递减防止超卖的不理解
- HashMap底层是什么数据结构组成的
- 红黑树有什么好处
- 28个元素放到HashMap里面,那么HashMap初始化的容量为多少比较好
- 初始化了一个固定线程数的线程池,线程数是5个,把6个任务扔进去,线程池怎么处理
- MySQL有个表,里面四个字段有abc三个字段,d是主键,我要查询ab,条件是bc,这时怎么设计索引
- 什么是回表
- 假设还是这个表,数据量很大,这时要做分页,每页100条,你怎么设计这个查询语句
- 子查询怎么设计
- 比如要查第10000页,你会怎么写这个sql
- 用过limit查询吗
- 项目里Redis防止超卖的方案,Redis就类似一个锁了
- 解释缓存穿透和缓存雪崩
- 上述情况的解决方案
- 刷新视频时系统会推荐20条用户没看过的视频,这时怎么设计会让性能更优呢
考虑位图或者布隆过滤器,使用二进制数组来保存视频,实现筛选没看过的视频
- 笔试题:输出每个url最多的访问次数(类似华子实习笔试第一题,但是简单一些)
- 反问
欢迎关注 ❤
我的文章都首发在同名公众号:王中阳
需要简历优化或者就业辅导,可以直接加我微信:wangzhongyang1993,备注:博客园