阿里巴巴 面试经历(2012年8月)

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

二面:技术面 + HR面(大概1 hour)

一面很轻松的就过了,但是二面就相对而言有些吃力,问的完全是项目相关,而且不是我最熟的研究生期间的论文项目,而是另外两个项目,由于复习不到位,某些地方回答的不完善。

第一阶段:自我介绍,同上

第二阶段:介绍面试官感兴趣的两个项目,一个与推荐系统相关,另一个与Java web相关

面: 介绍下你简历上的这个电影个性化推荐引擎,使用的是哪种推荐算法?

我: 改进的基于用户的协同过滤推荐算法。

面: 那好,那你从项目的基本架构、所使用的算法原理、如何改进的、数据如何处理这几个方面介绍下你的项目吧。

我: 我首先画了下项目的架构图,据此图详细讲了下UserCF的原理及如何使用用户的社交数据和六维理论改进传统的UserCF,并写出了改进后的算法公式。然后又说这个项目的数据多大,代码中采用什么数据结构进行处理的。

面: (介绍原理中提到了利用用户相似性来作为推荐的一个参考,面试官追问)那用户的相似性你怎么算的?

我: (汗,这个有个计算公式,我不太记得了,最后根据自己的理解讲了下余弦相似性的计算方式,公式没写全,面试官问公式里的根号怎么算的,我说直接用Java的库函数)

面: 你这数据哪来的?有几类数据?数据的存储格式是什么?

我: (该项目时间有点久了,前几天只复习了项目的整体架构和算法原理,忘了看具体的数据了,这里只能凭自己的记忆讲了下数据的存储格式,回来后发现自己讲的虽然没错但不够具体)

附:该电影个性化推荐引擎我早已经放到了自己的Github上面,是自己在老师的指导下做的,纯算法,还比较简单有待于改进。

介绍完了这个项目,马上面试官又看中了另一个Java web相关的项目,马上追问。

面: 嗯,你这个XX系统是用ssh2框架做的,那你对这个框架熟吗?

我: 嗯,当时在公司实习时对ssh的掌握程度只是会使用级别,那时候没时间去研究框架背后的原理。后来有闲暇时间后,我就深入研究了下这几个框架的原理,还看了部分spring的源码,学到了不少知识。

面: 嗯,那你把这三个框架都介绍下。

我: 我开始按自己的理解按Hibernate、Struts、Spring的顺序开始讲,Hibernate讲到它的使用原理及与iBATIS的对比,顺便说了下现在似乎大家更倾向于使用iBATIS、myBATIS这样更加灵活的轻量级框架。struts讲了下它的作用就是“将请求与视图分开”,然后讲述从输入url到使用struts处理的控制流程(struts从tomcat那接管、action处理),然后也说struts现在似乎也不那么倾向于使用因为它有漏洞。最后重点讲了下重头戏Spring,详细讲述了它解耦的功能、AOP原理及自己有利用动态代理简单模拟实现过一个简单的AOP功能、IOC(DI)等。最后说,从web应用层面上看,Hibernate属于持久层,struts属于表示层,而Spring却贯穿所有于所有层(表示层、业务层、持久层),Spring也有自己的MVC模块、web模块及JDBC和DAO模块,只是很少使用,也就是只用一个Spring也是完全可以的。

面: (点头表示肯定)你刚说到struts有漏洞,那么Hibernate是安全的吗?有没有可能发生xss攻击和sql注入攻击?

我: (汗,这个问题真心没想过,对Hibernate的掌握没有Spring那么深,只能硬着头皮按自己的理解回答)这个问题没想过,不过我觉得框架没有绝对的安全,Hibernate是用来操作数据库的,hql语句里也有select、where判断,应该有可能发生sql注入攻击,xss攻击就不太清楚了。(这个回答太糟了)

面试官没说啥,一直在电脑上写着什么东西。这时候旁边的HR终于发话了。

HR: 你本科是哪的?为什么选择考研?

我: 开始说出我的“发家史”,从一所不知名的小二本考到了中科大,……

HR: 那你技术上是怎么学习的?

我: 又从本科说起,本科技术很差,到了研究生期间才真正开始技术上的修炼,……balabala

HR: 你的职业规划是什么?

我: ……(每个人的想法不一样)

HR: 你最大的优势是什么?

我: (自己吹吧,也要根据实际情况看)

评论列表
文章目录