第一次记录:4月9号
从二月多开始准备,到今天4月九号,一个多月,认为自己也挺认真准备的。无奈,到现在0 offer。
刚开始面试的时候准备的确实不太充分,趁着刚开始阿里提前批不记录面试,投递了好几个部门,算是攒了攒面试经验吧。
刚开始阿里提前批那几个部门都是一面就挂,也发现了自己准备的一些盲点知识,后来又抓紧复习。
第一个过了一面进入后续面试的:
阿里——钉钉
一面是电话面试,问的问题都比较基础,Java基础以及tcp,udp等。还谈了谈关于当学生部长的一些感受,以及自己碰到的问题。轻松愉快地一次面试。
第二天晚上就约了二面的时间。
二面是视频面试。面试官先介绍了一下部门的职责以及平常工作中会接触到哪方面。
先是一个算法题。时间太久,忘了当时出的什么题了。记得当时很快的写出来了。后面面试官就说,那我们来问问面试最常问的hashmap吧,然后就说了一通原理。后面问的什么忘记了,不过都是特别基础的。
二面结束以后,阿里开始正式批了,必须要做笔试,我就去做笔试了。笔试真的好难,我两个编程题都没做出来,0.
笔试结束一两周之后,下午六点多突然接到面试电话,时长大约半小时。
三面:自我介绍,关于数据库的索引的问题,就是索引结构以及存储引擎的对比。还有java的基础。可能是因为突然的电话面试吧,很快就结束了。
四面:再隔了一天的下午六点多,又是突然地电话面试。这次是交叉面,其他部门的人。
自我介绍,以及项目中遇到的难点,怎么解决的,还有就是Java的基础,tcp、udp的对比以及三次握手、四次挥手 的状态等。
因为阿里的都是突袭的面试,每次都忘了记面经。
HR面:四面之后,隔天下午,钉钉上收到了加好友请求,是hr安排hr面的时间。hr面试视频面试。之前看网上说hr面都很轻松,什么温柔小姐姐。我这个完全不是。先是查户口一样。然后让说自己受到最大的批评,为什么,怎么解决的。说一个自己最有成就感的事情。说一个自己觉得最难得事情。说一个自己觉得最不能完成的事情。说一个自己先是不行,后来做的很好的事情。以及好多负面的问题。
后面一周没消息,问了一下,挂了。
打击太大,面了五轮,hr面之后挂了。本来以为自己要有一个offer了,结果最后一次挂了,真的怀疑自己。
一二面超快的——字节跳动
一面视频面:
一面:
1、自我介绍。自我介绍的时候谈到了我的科研。仔细问了下我的科研方法。后来发现我不做算法,改问工程。
2、数据库MySQL。怎么优化的。调整表结构,简历索引。
3、如果表特别大,一个表中内容特别多,怎么优化?分表。分表涉及到来一个查询之后应该到哪个表中进行查询。我的回答是使用哈希进行一个映射,确定到哪个表。但是哈希存在的一个问题就是,如果增加了一个库,那之前的哈希散列结果都需要改变。改进的方法是,可以采取一个表来存储这些对应关系。
4、关于数据库索引,解释一下。
5、Linux用过吗,常用命令。我没用过,不会。
6、一个思维题:1个5kg的桶,1个13kg的桶。怎么弄出7kg的水。
7、算法题:找出以3、 5、 7为因子的第K个数。
二面隔了十分钟:
1、自我介绍
2、项目,项目的难点在哪里。
3、项目中考虑过记录用户日志吗,怎么实现的。简单说了一下有这个功能。
4、菲关系型数据库和关系型数据库的区别。菲关系型数据库和关系型数据库的索引有什么区别。
5、介绍一下MySQL索引的结构。B树和B+树的区别。
了解一致性哈希吗。知道MD5吗
了解跳表吗。跳表和二叉树之间有什么区别。
进程和线程的区别。以及进程存放在哪里。
6、网络部分:session和 cookie的区别。cookie存在哪里,session在服务端怎么存。
7、如果访问一个网站,显示服务不可用(没有状态码返回),该怎么排查问题。
8、微信中传输文件怎么传输,从网络协议层考虑。在线视频用的什么协议。(唉,我都答错了,当时脑子锈到了,考虑那么多,直接说用UDP就行了。还考虑什么建立连接。傻,活该挂掉)
9、算法题:找出一个字符串中最长不重复子串。(滑动窗口思路)
三面隔了好几天,之后约了视频面时间
三面:
自我介绍
1、算法题:大数相加
然后面试官就走了,我写完等了好久他才回来
2、数据库explain了解吗,为什么要慢查询优化。varchar字段可以建索引吗。
3、多线程了解过吗。web service是单线程还是多线程。
4、restful有什么优点。
唉,感觉回答的不太好。二十多分钟就结束了
三面之后好几天都没有消息,后来接到了面试体验问卷,还安慰自己说可能不是挂了,每个人都有。其实就是挂了,隔了两天就发现官网状态变红了。
字节跳动三面之后挂了,也特别沮丧,都到了最后一面了。
美团
美团的笔试我做的不好,36%和9%的通过。然后一面就挂了。其实问的比较基础,差不多都答上来了。但就是没过。
腾讯:
腾讯我第一次面试的时候是pcg部门。
面试的不太好,算法题是有很多的数据,找出第k大的数据。刚开始说用最大堆,后来正写代码反应过来不太合适,面试官就引导我,说应该用最小堆。然后实现出来。觉得因为算法题一开始思路不对,所以一面就挂了。
过了好长时间,teg部门把我捞起来了,我一个找Java岗的,把我捞起来面c++。既然捞起来了,那我就面吧。
一面:
自我介绍
介绍一个项目吧。我就介绍了科研内容。说了很久。
因为语言不对口,所以面试官就说那问些基础知识吧。
问了下进程和线程的区别,以及应用场景的区别。tcp和udp的区别。我记得基础知识没问什么,就结束了。
二面:
1、自我介绍
2、项目里主要负责哪部分工作。
3、关于数据库的问题:知识森林数据库里面都有哪些表。用的什么引擎。(我说用的MYISAM,因为备份方便)。碎片表里面有多少数据,查询速度多快。以后数据库有没有可能再扩大,有没有考虑过服务不可用备份的问题,就大概说了一下如果两个应用服务的话,要考虑负载均衡、分流,以及数据库主从复制的问题。
4、HTTP和HTTPS的区别,HTTPS怎么实现加密传输。
5、问愿不愿意转C++。
嗯,带自我介绍一共二十多分钟就结束了,也没问什么就结束了。
二面之后官网状态再次更新,变成了复试,就是等三面。但是,过了几天以后,变灰了。觉得可能是有更合适的人了吧,就把我挂了。本来语言也不符合。
微软
对的,我还面试了微软的实习生。微软的面试流程就很简单,自我介绍和算法题。先是自我介绍,然后围绕着我的科研方向问了半个小时,接着做算法题。
一面算法题:有一个电梯,第i层要下i个人。电梯只能停在一个楼层,其他楼层的人出电梯之后通过走楼梯回到自己的楼层,问停在哪一层可以让走楼梯的人的层数和最少。
二面算法题:先是二叉树的遍历。第二个题是找出来一个数组中出现奇数的数。
三面算法题:一个数组,数组的值代表高度,问可以积下雨水的量。
微软速度很快,两天就面完三面。三面以后挂了。
我真的好难,好几个都是面到最后一面,然后面完之后挂掉了,尤其是今天知道阿里hr面之后挂了,心态真的有点崩,要自闭了。找个实习太难了,觉得自己也挺认真准备了,可能自己基础太菜了吧。
快手:
一面
1、自我介绍
2、hashmap,存储的结构,put的时候都发生了些什么,对于键值是直接进行hash确定元素未知的吗。扩容怎么扩容的。
3、数据库:索引,讲了一下innodb和MYisam两种引擎,对比了一下。B树和B+树的区别。对于聚簇索引,其主键索引和非主键索引的效率区别。
4、进程和线程的区别。
5、TCP和UDP的区别。在网上输入一个网址,都发生了些什么。ARP协议讲一下。
6、算法题:对于一个数组,里面只有两个数出现次数为奇数,其他数字出现次数为偶数,找出这两个数。
二面
1、自我介绍
2、项目中印象最深刻的或难点。
3、关于线程池。线程池的优点。然后如果存在线程爆炸的情况,会对服务器造成什么影响,为什么。我主要从内存和cpu两方面回答的对服务器的影响。然后问还有其他什么的,我就回答不上来了。
4、对于线程池如何实现的了解吗。不是问有哪些核心参数,问具体实现。
5、如果当前线程池处于空闲状态,即没有任务,那对于线程池里面的那些线程处于什么状态。我开始回答是处于就绪,其实不对,后来慢慢引导我,回答出来是处于阻塞状态。
6、如何停止一个线程。有中断和设置标志位停止。 如果当前线程处于io阻塞的状态,那对于前面说的那两种停止线程的方法还有用吗。 中断具体怎么实现的了解吗,我不了解。
7、GC里分代是怎样的。
8、内存泄露了解吗。我回答错了,回答成堆、栈等没办法再分配内存,即内存溢出,不懂这两个之间具体的区别。然后面试官给讲了一下内存泄露是什么,就是没有回收已经不再使用的变量。然后我说这样的情况是代码没写好导致的。问我Java中存在内存泄露的情况吗,我说有,是代码没写好,导致虚拟机一直没回收那块内存。
结束,感觉问的比较深。
更新:4月10号下午接到快手hr的电话,拿到了offer。开心,我的第一个offer,牛客许愿真的灵。希望我的努力继续被看见,加油。
网易互娱:
一面:
1、自我介绍
2、知识森林在数据库中怎么存储的,表结构。索引怎么建的。如果表结构发生变化怎么办。
3、操作系统进程和线程的区别。
4、进程的地址是怎么分配的。分配的是什么地址。我说是内存,然后又扯了一下虚拟内存。
5、TCP三次握手介绍
6、TCP三次握手,服务端的establish状态满了,如果客户端再发送请求会发生什么。
7、访问网址会经过一个网关,那请求的目的mac地址是什么。
8、IP地址到MAC地址怎么转换。ARP协议具体讲一下。讲ARP协议的时候提到了是向本网段发送广播,所以纠正了上面那个题的回答是错误的,目的Mac地址应该是本网关的出口。
9、多线程了解吗,工程中有用到吗。说了解,但是直接用的框架,没有自己实现。然后给讲了一下线程池。
10、代码。1到100的数,3的倍数输出a,5的倍数输出b,15的倍数输出ab。遍历一遍就行,因为只需要遍历一遍,我还特意问了一下是不是这么简单。
11、二叉树层序遍历代码。
面试官说等这周集中一面完之后才会有通知后面的结果,所以等下周才能知道进没进二面,希望我有好运吧,快给我个offer吧。
分割线-------------------------------------------------------------------------------------------------------------------------------------------
4月10号早上十点面试
今天早上腾讯又捞起来面试
没有自我介绍,邮箱发了一个腾讯文档的链接,一个算法题,然后半个多小时,自己写题。
算法题:一个文件中,每行是一个整数。找出出现次数最多的是个整数。
题做完以后打了电话过来开始面试。
1、文件读取用到了bufferedreader。为什么要用这个,用这个有什么好处。bufferedreader一次缓冲多少合适。
2、操作系统为什么要分页,比页更小的单位是什么。文件读取顺序读取和随机读取那个快一点。
3、操作系统问了特别多的问题。我操作系统不太好,都回答的不是很好。
4、代码中用到了hashmap,为什么用这个,用treemap不可以吗。
5、hashmap和treemap的性能比较。
6、hashmap扩容怎么扩,如果为了减小阻塞,要怎么进行优化。
7、为什么用了spring boot的框架。
8、客户端访问到service,中间都发生了什么,怎么定位到你具体的方法。
问的问题都特别深,尤其是操作系统问的特别细。回答的不好,估计又挂了。这个是我真的操作系统没复习好,好好复习操作系统去了我。
分割线---------------------------------------------------------------------------------------------------------------------------------------
4月10号,晚上六点多
腾讯突然给我打电话,面试。本来觉得上午面试的特别差,已经挂了呢,结果二面了。
没有自我介绍,打电话就是为了给我说,短信发给我一个链接,先做一道算法题,给15分钟。
算法题:给定三个字符串s1 s2 s3,将s1中出现的s2字符串(不区分大小写)全部替换为s3.
十五分钟以后电话打过来了。
1、看写的代码。讲一下自己的思路。因为时间也比较紧,虽然功能实现了,但是有一些细节的地方有点冗余,然后看代码的时候就会问我,你那块写的对吗,然后我反应过来就立马改过来了。最后说满分十分,自己给自己打个分吧。
2、看简历。我的简历真的太简单了,研究生期间也没做什么大项目,没什么好问的。面试官就说你这个简历写的有点简单,不知道问啥。
3、让我讲了讲我的科研内容。
4、面试官说,你觉得你还有什么地方想展示没问到的。(意思就是就到这了,但是这啥都没问呀,专业知识一点都没问。心里就觉得这次肯定是没戏了,但还是硬着头皮的说我基础还可以的)
5、那就问问我基础吧。让我讲了讲Java的垃圾回收。然后问我知道Java现在用的最新的垃圾回收器是什么吗。我不太清楚,就说G1好像还没有开始商用。然后面试官就说你是不是不太了解这个。你知道的是不是从书上看的。
6、重排序知道吗。怎么实现的。印象中是给cpu上加了LOCK前缀锁,还有一个是关于缓存一致性。我说的不多,太深入,我也没了解过。然后面试官就一直说还有呢,你就了解这些吗。
感觉是真的面得不好,面试官都不想问我问题。
看别人说在牛客许愿比较灵,我也来许愿吧,分享分享我的面试经验,也给我攒攒好运,赶紧给我个offer吧,可怜的孩子要失业了。
最后许愿
全部评论
(65) 回帖