支付宝数据库工程师 面试经历(2012年3月)

匿名网友 匿名网友 发布于: 2016-02-25 00:00:00
阅读 184 收藏 0 点赞 0 评论 0

整体感受:直接是一波流搞定,没有HR问为毛辞职、职业规划之类的问题,都是直接上干货的问技术。笔试40分钟,然后带上试卷直接去面试。面试时间长短就不清楚了,反正我大概面了1个小时左右。

笔试:

1. cookie 和 session 的区别

2. JVM 内存模型

3. SQL注入的原理

4. 悲观锁 和 乐观锁

5. 读程序,输出结果. 关于treemap的

6. linux 基础命令,统计日志中的信息

7. java 分布式集群

8. 一道设计题,具体到数据库的表.大概是淘宝的搜索中,输入手机,会出来很多类型,按品牌按价格区间按手机种类。

还有2道题我记不住了。

面试:

1.介绍你做过的项目,用到的技术,涉及到的模块,然后从项目中问各种技术实现的细节。

2.看你的试卷,叫你讲解做题的思路,以及这样结果的原因。

3.团购6位验证码以及团购成功后,发送到你手机上的条码的实现方式。

4.淘宝上是如何保证库存和订单之间的数据准确性的。

5.索引的原理:能否构建时间索引,时间索引构建后会存在什么问题。

6.你们数据库的数据量有多大,如果保证效率?

7.SQL注入的原理以及如何预防,并举例。

8.使用过Memcache么? 用在项目中哪些地方?

这些是主要的问题,当你回答一个大问题时中间还有很多比较碎的追问性质的小问题。

总体给我的感觉是:氛围很轻松+愉快的,技术层面上还是需要你真正的理解透彻一些关键技术点,才能做到应付各种追问和给出满意的答案。如果只是一知半解想去蒙混过关肯定是不行的,毕竟在支付宝的技术大牛面前,多追问几句,也就把你逼到死角了。

还有一点比较重要的感觉就是,他们比较在意你是否了解当下的一些比较热的技术点,比如淘宝的秒杀,是如何保证高并发下的安全性和性能,新浪微博那种大数据量的发送,怎么就保证正确性和时效性的。

满意的地方:

面试官人挺好的,给我耐心的讲解了一遍淘宝的实现方式以及epay的实现方式。淘宝是通过分布式事物,中间用了一个叫协调者角色的程序,当那边点击购买时,会库存减一,保存一条预扣的状态,但是是个预准备状态,然后做成功后,协调者会在另一个数据库生成订单,然后这个订单也是预状态,等两边都准备好以后,通知协调者,又协调者统一完成这2个数据库的事物,从而达到完成一笔交易的目的,若其中一方失败,则将预扣的数字返回到库存从而实现类似回滚的操作。

不满意的地方:

评论列表
文章目录