发布于 2014-12-21 13:34:20 | 153 次阅读 | 评论: 0 | 来源: 网友投递
支付宝
支付宝是全球领先的第三方支付平台,成立于2004年12月,致力于为用户提供“简单、安全、快速”的支付解决方案。旗下有“支付宝”与“支付宝钱包”两个独立品牌。
本文为大家整理提供的是一份2014支付宝招聘-JAVA开发笔试题,感兴趣的同学参考下。
支付宝是全球领先的第三方支付平台,成立于2004年12月,致力于为用户提供“简单、安全、快速”的支付解决方案。旗下有“支付宝”与“支付宝钱包”两个独立品牌。
支付宝这次面试,直接是一波流搞定,没有HR问为毛辞职,职业规划之类的问题,都是直接上干货的,技术。
笔试40分钟,然后带上试卷直接去面试,面试时间长短就不清楚了,我大概面了1个小时左右。
笔试:
1. cookie 和 session 的区别
2. JVM 内存模型
3. SQL注入的原理
4. 悲观锁 和 乐观锁
5. 读程序,输出结果。 关于treemap的
6. linux 基础命令,统计日志中的信息
7. java 分布式集群
8. 一道设计题,具体到数据库的表。大概是淘宝的搜索中,输入手机,会出来很多类型,按品牌按价格区间按手机种类。
还有2道题我记不住了。
面试:
1.介绍你做过的项目,用到的技术,涉及到的模块,然后从项目中问各种技术实现的细节(为了确保你是真的懂了)。
2.看你的试卷,喊你讲解做题的思路,以及这样结果的原因。(考的是各位的java基础知识了,这点是绕不过去的,懂了就懂了啊,只有平时多看书)
3.团购6位验证码以及团购成功后,发送到你手机上的条码的实现方式。(第一个问题我说用随机数+时间来验证。第二个问题老实说,我也没答上来,我说用序列,面试官说序列到后期20位以上的时候,用户体验很差的)
4.淘宝上是如何保证库存和订单之间的数据准确性的。(考点是分布式事务,这个问题我也没答上来,最后他问我有什么问题问他的时候,我就反问的这个问题,面试官人挺好的,给我耐心的讲解了一遍淘宝的实现方式以及epay的实现方式。 淘宝是通过分布式事物,中间用了一个叫协调者角色的程序,当那边点击购买时,会库存减一,保存一条预扣的状态,但是是个预准备状态,然后做成功后,协调者会在另一个数据库生成订单,然后这个订单也是预状态,等两边都准备好以后,通知协调者,又协调者统一完成这2个数据库的事物,从而达到完成一笔交易的目的,若其中一方失败,则将预扣的数字返回到库存从而实现类似回滚的操作。)
5.索引的原理。能否构建时间索引。时间索引构建后会存在什么问题。(索引原理我是回答的堆表索引的构建原理以及查询原理,但是关于时间索引的问题,我也没回答出个所以然来,看面试官的反馈,好像回答得不够好吧)
6.你们数据库的数据量有多大,(回答:我们是电信方面的系统,表上亿的数据很正常)。问:如果保证效率?
(我是如此回答的,各位自行结合自身的情况参考。答:后台J OB程序会定期备份,把生产表数据移走,然后备份表也会再备份一次,如此剃度的备份,保证生产库的数据是最小的。然后备份表采用分区和子分区,加上构建战略索引(分析系统的sql,常用
查询字段构建复合索引,以减少每次查询时对表的访问次数))。
7.SQL注入的原理以及如何预防,并举例。(这个相对简单,网上一搜一大片)
8.使用过Memcache么? 用在项目中哪些地方? (答,在门户主机上使用,缓存session,分布式的时候,统一访问这台主机验证用户session是否存在,来维持回话的状态和实现回话同步。又追问:java代码中如何实现访问门户服务器的这个session池子的? 几年前的代码,确实忘记了。。于是坦白的说,记不清楚了 )
这些是主要的问题,当你回答一个大问题时中间还有很多比较碎的追问性质的小问题,总体给我的感觉是,氛围很轻松+愉快的,技术层面上还是需要你真正的理解透彻一些关键技术点,才能做到应付各种追问和给出满意的答案吧。如果只是一知半解想去蒙混过关肯定是不行的,毕竟在支付宝的技术大牛面前,多追问几句,也就把你逼到死角了。
还有一点比较重要的感觉就是,他们比较在意你是否了解当下的一些比较热的技术点,比如淘宝的秒杀,是如何保证高并发下的安全性和性能,新浪微博那种大数据量的发送,怎么就保证正确性和时效性的。
自我感觉面试得很一般,估计希望比较小吧,共享这些希望能给各位小伙伴带来实际上的帮助。