您的位置:首页 > 其它

【阿里内推一面】记我人生中的处女面

2016-07-26 00:00 357 查看
万万没想到,我人生中的处女面尽然献给了阿里巴巴,本来应该是腾讯的,因为腾讯也内推过,且腾讯总部(深圳)也给我打过电话,但那时我手机处于静音状态,根本不知道(也该错过那次机会,因为我的手机从来都不会调成静音状态,恰巧那天上的课太无聊,所以用手机看视频,因为上课所以调成了静音,结果下课后忘记调回来,平时我从来都不用手机看视频的

,这也从侧面说明找工作需要运气的),后来人家就没了我。

PS:我对阿里的面试官印象真的很好,因为在正式面试前,他会打电话和你预约,不像腾讯,什么都没说,就一个电话打过来,而且错过后就不了你(当然可能是我技术还不够强,如果你获得个ACM全球总决赛啥的奖,那肯定会像古人三顾茅庐那样一直等到你接通电话为止)。

下面就是面试的基本过程:希望能帮到那些找工作的人。(PS:面试过程中信号不好,中途电话挂断了1次,不知道这会不会影响面试官的心情,而且拿手机的手一直在抖(都怪昨天晚上做俯卧撑做的太多120个左右,肌肉还没恢复,所以大家要引以为戒,如果第二天要面试,那么前一天得好好准备)

首先自我介绍一下吧:这个就不说了。

面试中具体问到的问题如下:

谈谈你做的项目,说说你在这过程中的一些收获:

我就跟他说最基本的收获就是熟悉了java和安卓中最基础的一些知识和API,以及在做项目过程中对文档与软件工程方面的收获,如.....

说说你所知道的所有排序算法及其复杂度

答:巴拉巴拉......这个感觉回答的非常好,数据结构是自己的强项.

整个面试过程中自己回答的还比较满意,绝大部分问题都回答出来了,悲催的是当问java问的比较深入一点的话回答的不是很好,因为自己平时搞数据结构与算法用的都是C/C++,下面主要谈谈自己回答的不好的地方,也算是自己接下来复习的提纲吧。

-----------------------------------------------------------悲催的分割线-----------------------------------------------------------------------------------------------------------------------------------------------------

因为有些问题很简单,所以就不大记得,重点说说我感觉自己回答的不是很好的地方(主要是java方面的,因为java平时除了做项目外用的不多,而做项目基本上不会用到java的基本知识):

说说你看过哪些技术方面的书

我说c++看过C++ primer Effective C++ java看过Thinking in java,然后他说那你说说你看Thinking in java哪些章节你觉得很难看懂的或者哪些章节你看的比较透彻(估计他C/C++不是很擅长,所以问我java),然后我说哪本书是我去年看的,不大记得了,然后他说那你说说序列化与反序列化方面的,我说我想起来了,这本书的作者希望我们显示的自己写序列化ID,他说那你说说如果不写序列化ID会怎样,我说这个我不大清楚,囧....。

看过java中的哪些类的源码:回答,这个没怎么看过

说说网络中的TCP协议与HTTP协议

答:TCP协议是面向连接的,是可靠的,TCP运用三次握手来保证连接的可靠性,然后跟他谈了谈三次握手的具体过程,感觉这个回答还可以,但是Http协议回答的就太差了

,看来得好好了解一下Http协议。

谈谈GC回收 :答:GC回收算是java中的一大特色,当一个对象没引用引用它时,它就会被GC回收,这个说的太浅。

说说java中的类的加载: 答:在java类中如果存在静态代码块,则在类加载时就会被执行,然后面试官问我,真的是这样吗,我说应该是吧。

说说java中的集合框架,集合中的扩容,集合之间的关系

我跟他谈了Collections,set,map接口及其派生的子类。感觉回答的不是很好。

Map内部排序用的那种排序

答:我说,这个的话,应该看源码才知道吧,虽然我没看过源码,但我估计应该是快速排序。然后问他是不是,他说,嗯不是,囧.....

java中的内存模型,他愿意是问我什么新生代,旧生代之类

答:我说这个我不是很清楚,但我在网上浏览博客时看到过,然后跟他谈了栈,堆,运行时常量区这些内存模型。

客户端如何调用服务器端定义的一些类功能

答:这个涉及到java中的远程调用,要用到反射机制,然后跟他谈了谈反射。

说说java中的线程有哪些状态

我跟他说当调用start方法时处于启动状态,调用run方法处于运行状态,调用wait处于阻塞状态,调用notify处于就绪状态,然后他问我是不是调用某个API线程就一定处于这种状态,哪些因素还可以影响线程状态,我说和线程的个数,和cpu的使用情况。当开启多个线程时,表面上是同时运行,实际上这是CPU调度的结果。

安卓项目中的一些性能方面的处理

我跟他谈了谈ListView的性能优化,如重用converView,使用ViewHolder,如果要加载图片,先压缩后加载。

说说在技术上你的强项在哪里?

答:基础方面的话数据结构与算法是我的强项,项目方面的话安卓可以独立开发一款非海量用户的小型APP,然后他说我也觉得你数据结构与算法学得还可以,那你考虑过去应聘算法工程师这样的岗位吗,为何你投的是移动客户端方向,然后我说算法好只是相对的,和其他人比起来就算不上很好,而且算法岗位对数学功底要求比较高,属于搞研究的范畴,而搞安卓属于应用范畴,而现在是移动互联网时代,将来的智能家居,智能TV都会用到智能操作系统,而移动终端的智能操作系统市场占有率最高的就是安卓,然后巴拉巴拉......

最后我问他给我们计算机专业在校大学生平时学习中应该注意哪些,是应该重基础呢还是应该多做项目多参加比赛。

他回答了很多,我总结之后用自己的话来说:最后他说项目经验不需要很多,一两个就足够了,重点基础要好,然后在某一点上要有所突破。

整场面试大概40分钟。

总结:经过这次面试,也更加坚定了我要去像BAT这样大公司的决心,因为像BAT这样的大公司看重基础,更注重你的潜力,对项目经验要求不会太高,但是小公司基本上就只要项目经验,这也不难理解,因为像它们这样员工过万的企业的入职体系非常成熟,它们不会找来人就让你上岗,而是存在一个入职培训的过程,况且像它们这样APP都是海量用户的企业,绝大部分小公司所谓的项目经验在它们那根本不适合,同一功能的APP在它们的公司可能整个架构与小公司的完全不同,因为要考虑海量用户考验。不过阿里巴巴会更多的问java中的知识,看来得把java基础好好复习复习。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: