4.23更新
已收到网易短信offer
阿里面试
先说下阿里吧,前段时间找师兄内推了阿里巴巴实习生,特此记录一下面试的感受,阿里确实是技术的圣地,目前为止我遇到的面试官都很nice,无论是语气还是技术都让人佩服,我就根据印象回忆一下面试的情况吧。
一面(2018.3.12)
早上投的晚上七点半就给我打电话了……这效率杠杠的。我内推的是蚂蚁金服,但面我的是一个天猫部门的大牛。有可能和我简历上写的项目有关(一个电商项目),这次面试主要是简历评估吧,问的问题分为两部分,一部分是项目细节,一部分是基础知识。
项目部分
1.商城首页怎么优化的?如何提高访问速度?
我说热点商品直接走缓存,数据库做了读写分离
2.缓存具体怎么设置的?key value
我结合项目说了实现,这边讨论了很久……
3.看你项目提到了分布式事务,说一下?
我说订单系统和商品系统是分布式服务,下单后减库存涉及到分布式事务,使用了阿里开源的RocketMQ事务型消息队列实现的,然后巴拉巴拉说了下RocketMQ如何保证分布式事务的……
4.那你的减库存操作怎么保证重复消费问题?多线程减库存情况下如何保证安全?
第一个我回答的是我在商品系统有个基于全局id的去重表(其实就是幂等性一个实现思路)。第二个我说用了redis分布式锁,他说那你这个分布式锁如何设计的?我巴拉巴拉说了一通,这里也讨论了很久很久……
5.你觉得手机访问淘宝,整个流程是怎么样的?
开始没明白问题的意思,我就从域名解析,ip,tcp,http角度去说了,说完后面试官说你这是从计算机网络的角度,具体的后台业务如何处理你能说说么……我就有点迷,不知道啥意思,我就说不知道淘宝用不用spring。。。我打算从spring的角度去说的,面试官看样就说那问你其他的的吧。然后就是基础知识了
基础部分
1.排序算法知道吧,说下选择排序思路
表示当时脑子一空居然想不起来了!其实很简单的,但是当时忘记了,也怪自己平时没有用过这些算法,就给面试官说一直在做项目,排序算法忘记了。。。面试官笑笑,说没关系的~(表示很温和0.0)
2.servlet生命周期
容器初始化—》init()—》service()—》destory()—》容器销毁
3..springAOP用过吗,说下原理
用过,动态代理,巴拉巴拉……
4.动态代理的原理?
jdk动态代理、cglib巴拉巴拉……
5.CAS知道吗,java哪些类哪里用到了CAS?
Compare and swap,比较后设置,巴拉巴拉……其实很多并发包都用到了CAS,当时我就说了个Lock。
6.CAS如何防止ABA问题?
如何避免我忘记了,索性就解释了下ABA问题。(java基于版本时间戳避免ABA问题,AtomicStampedReference、AtomicMarkableReference)
7.sleep和wait的区别
这个我说的有些不好,支支吾吾的说了一点