支付宝的面试一波搞定,没有HR问为毛辞职、职业规划之类的问题,都是直接上干货的技术考核。笔试40分钟,然后带上试卷直接去面试,面试时间长短就不一定了,我大概面了1个小时左右。
先说说笔试:
1. cookie 和 session 的区别
2. JVM 内存模型
3. SQL注入的原理
4. 悲观锁 和 乐观锁
5. 读程序,输出结果. 关于treemap的
6. linux 基础命令,统计日志中的信息
7. java 分布式集群
8. 一道设计题,具体到数据库的表。大概是淘宝的搜索中,输入手机,会出来很多类型,按品牌按价格区间按手机种类。
还有2道题我记不住了。
面试:
1.介绍你做过的项目、用到的技术、涉及到的模块,然后从项目中问各种技术实现的细节(为了确保你是真的懂了)。
2.看你的试卷,让你讲解做题的思路,以及这样结果的原因。(考的是各位的java基础知识了,这点是绕不过去的,懂了就懂了,只有平时多看书)
3.团购6位验证码以及团购成功后,发送到你手机上的条码的实现方式。
4.淘宝上是如何保证库存和订单之间的数据准确性的。(考点是分布式事务,这个问题我也没答上来。最后他问我有什么问题问他的时候,我就反问的这个问题,面试官人挺好的,给我耐心的讲解了一遍淘宝的实现方式以及epay的实现方式。)
5.索引的原理。能否构建时间索引?时间索引构建后会存在什么问题?
6.你们数据库的数据量有多大?如果保证效率?
7.SQL注入的原理以及如何预防,并举例。
8.使用过Memcache么?用在项目中哪些地方?
这些是主要的问题,当你回答一个大问题时中间还有很多比较碎的追问性质的小问题。
总体给我的感觉是:氛围很轻松+愉快的,技术层面上还是需要你真正的理解透彻一些关键技术点,才能做到应付各种追问和给出满意的答案。如果只是一知半解想去蒙混过关肯定是不行的,毕竟在支付宝的技术大牛面前,多追问几句,也就把你逼到死角了。
还有一点比较重要的感觉就是,他们比较在意你是否了解当下的一些比较热的技术点,比如淘宝的秒杀,是如何保证高并发下的安全性和性能,新浪微博那种大数据量的发送,怎么就保证正确性和时效性的。
满意的地方:
氛围很轻松+愉快,面试官很nice,愿意给你解答各种问题,而且一天面完。
不满意的地方:
没有。