面试心得,与君共勉 简书作者:PurpleSense 编者按:本博文主要记录今天参加阿里巴巴内推一面的面试流程和题目,同时会记载我当时的回答,以做一个记录,便于日后回顾。观者如对本文的写作有任何建议,或者对今天的题目有更好的见解的话,欢迎下方评论交流,小编我在此先行谢过了!如果有问题想咨询的话,也请在下方的评论区表达,我看到会回复你们的。 Timeline:内推时间(3.1)-->预约面试(3.2)-->一面(3.4)由时间线可知,阿里的效率真不是盖的,小编我都没来得及好好准备 临时抱佛脚:3.2晚上8:11,当时刚被阿里的编程测验虐完,正在做素质测评题的时候,接到了来自浙江杭州的电话,纠结了一下后关了测评题,接了电话。开始还担心这是突袭面试呢,接了电话才知道这次是和我预约一个时间进行面试(这一点真得给阿里郎点一个大大的赞)。由于我第二天上午预约了牙医,所以经过沟通后,我们预约了3月4日下午2:00进行第一轮电话面试。也就是说复习时间只有一天半,真的完全不够用,所以只能做一些临时抱佛脚的工作。
14:19,来自浙江杭州的电话如期而至。稍等了3秒后,接起了电话。对方确认我可以开始面试后,我的面试就正式开始了。 Q & A:
A: 这道题我一开始想的是采用分片读入内存,然后对每一个分片求交集,然后取并集的做法,经提醒后,这个方法存在一个问题:不在当前数据的交集中的数据并不一定不在整个文件的交集列表中。后来,我又想着说:只去除掉那些交集中的数据,而保留非交集的数据,继续与后面的数据进行比较。他听后很惊讶地说:你这样做,那时间复杂度会有多高呀(.../擦汗 我都能想象到他当时的表情)然后我就只能另想策略了,最后经过他的提醒,这道题应该先对两个文件进行预处理,即使用快排算法对这两个文件先排序,然后对这两个文件采用二路归并算法求交集。原来如此呀,我开始还在纠结引入排序算法的话,排序方面还会有时间消耗呢!!!(点评:平时没做过这类型题目,也没遇到过这类问题,所以一被问到,就蒙了) Q: 你之前说你没有接触过网站端的开发 ,那问你一些比较简单的这方面的知识吧。你知道哪些服务端开发的框架呢,简单说一下。 A: 呃。。。有听说过SSH框架,即Struts+Spring+Hibernate,但没有用过。(现在很后悔当时J2EE课没有好好听了) Q: 现在问你一个设计方面的问题,看一看你在设计方面的想法。现在有很多网站,比如说淘宝、天猫......然后需要实现一个功能就是多点同步登录,也就是说一个用户如果在这个网站上已经登录了,那么在另一个网站便可以免登录进入了。现在让你来实现这样一个功能,你会怎么设计? A: 我觉得这个应该采用数据库共享机制来实现吧。也就是说,用户信息一般是保存在数据库表中的,其中会有一个字段表示用户当前状态:在线 or 离线。应用程序在启动的时候,先从数据库中读取这个字段的数据,如果结果显示用户在线的话,就直接让用户进入主界面,否则显示登录界面,让用户登录。不过这种实现机制一定要处理好并发问题,当多个应用程序对同一个字段进行读操作时是没有问题的,但是当同时进行写操作时就会有问题,所以应该对写操作进行处理。(这就引出了接下来这个问题) Q: 如何控制并发访问? A: 一般来说有三种机制:CAS原子锁、同步锁和Lock机制。(并发操作不是很熟悉,也就对每一种情况随便说了两句,就结束了) Q: 你简历中写着你做过Android客户端开发工作,现在问你一个Android方面的问题:Android中activity的生命周期是怎样的? A: onCreate-->onStart-->onResum-->onPause-->onStop-->onDestory(这是Android开发必备基础知识,所以不难,针对各种生命周期函数的变化情况大致说了一下) Q: 你以往的开发经历中有没有遇到过一些令你印象深刻的难题、问题,你是如何解决的? A: 这个之前在做项目过程中确实遇到过几个比较印象深刻的问题,当时还查阅了一番资料进行解决的,所以这个问题就是根据实情说的,不过由于之前没有准备,所以语言组织方面还需要加以思索。 Q: 你认为一份怎样的代码才能算一份好的代码? A: 这个主要谈了一些有关代码规范的东西以及自己对一份可读性比较好的代码的看法。 Q: 你平时会不会自己学习一些东西,你有没有除Android以外自己比较感兴趣,但没有时间学习的知识? A: 这个嘛,平时有看一些Android开发周报、开发者头条上面的文章,所以就说了一下这个。至于自己感兴趣的知识点的话,就说了一下自己还没有涉猎服务端开发项目和并发编程的一些操作,感觉这些知识更富有挑战一些,所以对这些东西有感兴趣,但还没来得及学(这是实话,呵呵哒) Q: 看你平时都是做的实验室项目,你业余有没有自己做过一些小项目? A: 之前周神(师兄)有想让我做一个小的练习项目来着,当时还挺有兴趣地各种查资料设计页面、设想功能来着,也写了一点代码,但后面开始看论文后,心里比较烦闷,就搁浅了。所以问到这个问题时,我就说了一下这个东东。他后面还主要问了一些设计方面的问题。 Q: 你平时都是怎么记录所学的知识的,有写博客之类的吗? A: 我有写博客,博客上已经有几十篇文章了,不过还有许多文章未经修饰,所以还未公开。 最后,他说你等二面吧,我便知道一面已经过了。不过还是傻傻地问了一句:“这就意味这我通过了一面,对么?”他可能没想到我居然会问如此弱智的问题,回说:“你可以这样认为吧!”呵呵,哥哥,你就不能好好说话么,不过确认已经通过了一面还是蛮开心的,希望二面能顺利! 后面,我问了下在阿里里面测试和测开的区别,他很耐心地回答了这个问题。 A:阿里目前大的趋势是要尽可能减少传统的测试人员,而是都向测试开发转。其中主要有三类:(具体他讲得还是蛮详细的,但主要是一些思想性的东西,所以下面就记了个大概)
|
[招聘|实习·全职·内推] 阿里巴巴内推面经——测试开发岗位
admin
· 发布于 2017-09-26 10:13
· 941 次阅读
转载文章时务必注明原作者及原始链接,并注明「发表于 软院网 RuanYuan.Net 」,并不得对作品进行修改。
暂无回复。