我问了下具体时间,他说今天下午,然后我就安心回去了. 三面
中午出来已经12点半了吧,路上就接到通知说下午2点hr面,
回到学校没饭吃了,买了包泡面,回到宿舍的时间也只够吃完泡面然后马上又出发. 到达的时候提早了差不多10分钟,被带上楼,还是上午那个房间还是那张桌子, 等了一会儿,大约2点钟面试官准时来了. 这个面试官挺亲切的.自我介绍必不可少.
而且虽然说是hr面,竟然也是说技术问题的.不过主要是涉及到大的技术方面. 其中3个面试官都有提到的是php的问题,好像他们用php比较多,
我说学习是没有问题的,因为我以前有学过一点,现在学ruby,再回来学php很快. 了解了一下我Android相关的项目经历,我说得比较多,包括应用程序和比较底层的应用. 然后还问了一下用html5开发安卓应用,哈哈!
这个正好说到我的点上了,我的那个地图应用就是这样开发的,博客也有写这个方面的, 所以说起JS跟Activity调用自然很流畅,面试官也很满意.他们确实有用到这方面! 感觉到这个面试官比较熟悉Android,于是聊的也挺开心, 因为前面还担心会不会就是做php web game什么的,
结果原来这个部门是有Android开发的,同时有php的web应用,这样我最喜欢啦. 面试官还是出题了,说是附加题,这个没有保密协议应该可以说吧,
第一题是他在纸上画了一个随机的矩形,说给我一个没有刻度的尺子,将纸张剩下的面积二等分. 这个题我想多了,因为面试官说我想多了,
不过我确实脑子经过两轮半面试的轰炸已经差不多烧红了, 就是想不到他说的简单的方法.
然后他又出了一道题,写了一长串的数字,二十几位有吧,也不知道有没有规律的 然后就要我想出这个数除以9之后的尾数(还是余数来着记不清)
我这里傻傻的提到自己数学不太好,好在后来掰回来,说只是不是很有兴趣, 数学考试也是没有问题的,因为应用端做的比较多,所以用得不多而已. 想了一会儿不知道,他收回纸张,说这道题能做出来的很少. 然后还是聊学习生活跟同学的相处,
听到我说会跟同学一起出去唱歌什么的,还问我唱歌怎么样,我说还好只是不专业.. 还有兴趣爱好什么的.
期间虽然他没有问,我还是补充了一些我觉得应该说的社团经历什么的. 最后聊方不方便实习,还有毕业设计相关问题,我就感觉差不多确定了, 让我问问题,我问了一下加入实习的话工作内容之类的问题.
过了会儿就说欢迎我加入之类的话,然后说下周正式发通知,后来同学说,这就是口头offer了吧.
阿里面经1
一面是一个gg,问了我很多c/c++,stl,算法方面的问题,感觉都是平时遇到的问题,所以很快做出回答,大概问了10多道。包括知道哪些排序,各种排序的复杂度,稳定性,stl中容器类型,set和multiset的区别,vector和数组的性能区别,vector是否判断是否越界,是否可以预留空间,静态存储区,栈,堆,构造函数和析构函数是否可以是虚的,为什么,虚函数和多态什么关系,引用和指针的区别,引用的优点等等吧,问了一大堆。
然后说咱们写几个程序吧,第一是求数组中和最大的子数组,我给出一个O(n)复杂度的代码,他说错了,我修改下,他说这样可以。
然后问如果要记录这个子数组的头尾呢,我给出的方法是开辟一个等长的数组来记录,可惜中午思路比较混乱,无法把做记录的语句加到原来的代码中,就说思路比较乱,不好加。
于是便做下一道,好像是有序的循环数组,例如{5,6,7,8,9,1,2,3,4},问key是否在里面。显然可以用变形的二分查找方法来完成,由于递归的方式比较好描述,于是我写了个递归的方法,然后说也可以改写成不用递归的方法,就是写起来麻烦点。
接着便是下一道,给一个满二叉树,求最底层最右边的节点。我给了一个()^2的算法,他不是很满意,说是有lg N的算法,他给我讲解了一下,愣是没听懂。于是便结束了,两周内给消息,深深的被鄙视了。
阿里面经2
一面的面试官看过去就比我大几岁,人非常的和气,一来就和我扯家常,你是九龙湖还是四牌楼的,你们为什么一个专业分两个校区,你学数据库的为什么不是搞数据库的,我觉得也是为了在给我减压吧。然后他问了些比较基础的问题,比如ArrayList和LinkList有什么区别,各自使用在什么情况下使用。他还问了我一些关于项目方面的问题,让我描述我简历上最有难度的项目是哪个,通过做项目学到了什么,在项目中使用的哪些设计模式等等。还问了一些关于J2EE架构方面的问题,问得不深,只要说说原理就可以了,比如spring有哪些常用技术,我回答了IOC和AOP,然后又问我,怎么不用spring用什么设计模式可以实现IOC和AOP等,我觉得这个只要知道其原理,应该不难回答。还问了JNDI的全称是什么,我虽然一下忘记了,但是我描述了一下它的功能。总之,一面还是比较成功的,基本上都回答出来了。一面过后,面试官让我在一个小房间里面等二面。
没过几分钟,就被叫去二面。二面在靠里面的一个房间里面,面试我的应该是一个经理级别的人物。他人也非常非常的和蔼,一上来就主动和我握手,并且始终对我保持微笑。首先问了一个智力题,让我把想法写在纸上,我一开始有点紧张,在他提醒之后还是顺利解决了。后来还问了几道数学概率方面的题目,很简单。还问了我一些数据库方面的问题,乐观锁和悲观锁的区别,给我一个表,让我查询指定的数据等等,还算基础。然后问了一些针对实际的问题,比如客户反映网页打开过慢,怎么办啊;根据去年的客户消费数据,今年如何做一个推销计划等等。这类题仔细想想还是能答出来的,而且面试官会不断地引导你,有点像和你讨论的意思。我感觉这一轮主要是考察应聘者会不会灵活使用现有知识,来解决一些实际的问题。你只要说出你的想法,让他觉得你有自己的想法,有分析问题解决问题的能力就行。二面结束前,面试官还给我介绍了一下他部门的情况,还给了我他的e-mail,让我有兴趣的话加入他的部门。我感觉应该是pass了,心里很激动。我和面试官握手致谢,二面也很顺利的结束了。
三面就等了很久,从中午11点半,一直等到下午3点钟。不过心里已经很放松了,应该据说三面基本不刷人,就是些性格测试。三面我的是个hrjj,看到去也很热情的那种,我不由感概今天还是蛮幸运的碰到的面试官都很nice,这就是传说中的人品爆发吧。她问了很多关于性格问题,为人处事的态度等等。我觉得这一环节只要表现出你的积极的一面,乐于与人相处,喜欢团队合作就可以了吧,当然还是要比较诚恳,不然不能自圆其说就尴尬了。
淘宝面经1 一面
(1) 首先进行了一下2min的自我介绍,都是搞技术的,就照常说了下。 (2) 然后就问了一下项目,感觉淘宝的一面比较关注于你的项目经验。
但是这个面试官会由你项目的一个细节,搞突然袭击,你要是反应不及,那你就悲催了。
比如我说道,我们的消息发送中间件客户端与服务器端,在发送大消息的时候会出现丢包。面试官马上问道,我是怎么确认是丢包这种情况造成的。 (3) 项目介绍完之后,他问了一些基本的技术问题。
比如LinkedList 与ArrayList之间的区别啊,还有一些ClassLoader 的工作机制,进程线程之间的区别。然后叫我用java写了一个队列的操作。
(4) 后来又问了一些,我的优点啊之类的,技术兴趣,2年之内的发展等等。
(5) 偷瞄了几眼他的面试记录,我整体上的评价是一般偏上吧。就这样过了一面,继续二面。 二面
等待了得半小时吧,到了二面,一个挺nice的面试官接待了我。
(1)首先让我说出 几个常用的linux下的命令。我勒个去,我想了想总不能说那些cd之流的吧。说了几个dd mount 之类的命令 ,
结果面试官说得了,我问你吧,问了一些linux下服务器网络相关的命令,比如netconfig。都没答上来。 (2) 问了一个oracle的sql语句问题,查询工号最大的前100个员工,我说了利用top,面试官说不对,要利用子查询。。悲催。
(3) 然后我想办法把焦点移到我所熟悉的项目上来,哈哈转移策略。 我说了我们使用的MINA框架,介绍一下,这点比较有把握。
(4) 问我还熟悉其他的什么框架,我估计是类似SSH的,我实话实说 没有了,后来想了想又说了项目中用到的SMB协议啦,FTP框架啦。
(5)然后让我写了一个单例模式,我勒个去,我之前是准备C++的,但是淘宝面得是java,随意写了一个,他并不太满意。
(6) 然后就在他写评价的时候,我想到了 我们项目中使用的一个替代 第(2)问题的策略,然后我就说了,他这点比较满意。估计这就是转折点吧
比较肯定我的动脑筋。 整个战役的转折点。。。。。哈哈
(7)然后直接就跟我说,我被录取啦。。我勒个去,现实往往就想打喷嚏,虽然也有预感,但是往往却来的那么出其不意。
(8)之后问我,来了之后想做哪块的代码,我说做后台,他直接说我是做前台的,但是我一样可以和你探讨后台的问题。哈哈 估计他BS我啦。。。
(9) 临走的时候,跟我说让我学习一下SSH框架,熟悉一下linux下的 服务器维护的相关命令。赞这哥们的nice
淘宝面经2
淘宝Java研发,两面,一个35分钟,一个60分钟。 讲讲你做的你认为不错的项目。
遇到问题怎么解决的,有什么优化方案,还能怎么优化。 1年以内最有成就感的事情。 优点缺点,别人怎么评价。 期望的工作地点。
1000W数据里选1000条,堆排序,比较次数和交换次数。 String逆序。
Final修饰类,方法,对象。Final修饰List时能新加入数据吗。
讲讲对面向对象的理解,封装,多态。 SQL,Group by和Having的用法。 数据库四种锁,活锁和死锁。
Object类,重写equals方法,可能抛出的各种异常及处理,instanceOf()方法的作用。 HashMap的实现方法,如何哈希,如何进行冲突处理。 81匹马,9个跑道,没有计时器,如何选出跑得最快的9匹马。
网易面经1 一面 大概80分钟 先自我介绍2-3分钟 最近看了什么书有什么收获 最喜欢哪一门课 最喜欢哪种语言 基础题 补码的含义
char类型的取值范围无符号有符号 堆排序复杂度建堆的复杂度 TCP/UDP 概念区别
c程序编译错误和链接错误是怎么产生的 多态 虚函数 java和c++的多态有啥区别 KMP算法思想 编程题
判断一个字符串是否为合法的十进制点IPv4地址,比如192.168.1.2 算法题 已知数列{ai} 求一个数对 使得i 1小时没面完就被后面要用会议室的人赶走了。 先问项目,然后是算法。问后台和前端两个方向擅长哪种。 1.n个数{1,2,3,...,n}全排列算法,比如n=3时有123,132,213,231,312,321 2.设计一个系统完成review的功能。 review是指比如一个项目组,大家都写代码,一人写一块,每个人写完了以后要给其他人看你写的代码有什么问题。这个给其他人看你的代码的过程就叫做review。 3.设计一个缓存系统。(这个是根据项目问的) 比如你搜索一个关键字得到结果,计算时间比较长,设计一个缓存系统使得下次输入相同的关键字的时候可以直接从缓存里拿到结果,不用等待那么长时间。我答的哈希表,又问这个哈希表具体怎么存,满了怎么删。 网易面经2(Java) 1.hashmap 和 hashtable的区别 2.ArrayList和Vector的区别,ArrayList和LinkedList的区别 3.Linux下如何查看系统负载(cpuinfo,top,ps) 4.输出系统时间到tmp.log(cal > tmp.log) 5.在linux系统下,给你一个日志文件,总共有四列,第四列有20种不同的值,统计这些值的出现的次数 6.什么事cookie,cookie和session的区别(cookie是保存在客户端的一些用户输入,session是保存在服务端的用户输入) 7.Http中Get和Post的区别(Get用于查一些信息类似于sql中的select,post用于修改服务端的一些内容类似于update) 8.js、ajax、dom、xpath的关系(ajax不是新技术,是一些技术的整合,前段采用js,dom可以使得html像xml一样按照节点访问,xpath用于查找xml节点) 9.linux下如何查看内存(free查看总的使用情况,ps或者top类似于进程管理器查看具体的使用情况)硬盘使用情况(df) 人人网面经1 1、用栈实现简单的四则运算 2、两个链表交叉,求出交叉的节点 3、虚函数的实现 4、覆盖和重载的区别 5、抽象类、纯虚函数 6、static关键字的作用 7、n!求最低非零位的数值,设计思路 8、链表逆置,用递归实现 9、环形链表,删除一个节点p,已知*p,O(n)时间复杂度 10、缓存用户数据,ID passwork date,要求没有重复ID,同时能够在空间用尽时,可以很快删除最老的记录 人人网面经2 第一面的面试官是个挺腼腆的小哥,应该是刚工作吧。他就出了两个题,也不难。 第一个题是:给出一个字符串,找出其中只出现一次且位置最靠前的那个字符。 很简单吧,遍历一遍字符串,记录下来每个字符出现的次数和第一次出现的位置就好了。然后他让我写代码实现,也没什么问题。 第二个题是:有一个链表,除了正常的指向下个结点的指针外还可能有一个额外的指针指向链表中某个结点。换言之结点的数据类型是 struct node{ int data; node * next;//指向下一个结点,与正常链表中next指针意思一样 node * extra;//指向某个结点或为空 } 我就想,先把基本的链表结构复制了,然后问题就在于怎么确定extra指针指的是哪个点,这就需要能够唯一的确认原链表中的每个结点。我一开始说给每个结点标号,但是面试官说数据类型已经封装好了不能再往里写东西了。最后用内存地址作为每个结点的key,把原表和新表的结点的地址的对应关系存起来。然后他让我写代码实现。 结果在我写代码的时候他就走了,说是找二面的面试官。于是刚才那个题的代码是二面的面试官看的。 二面