拼多多面试凉经 - Sanarous的博客

拼多多面试凉经

8 月 10 号下午在华科旁边的希尔顿欢朋大酒店面的,投的岗位是服务端研发工程师(好吧,感觉是自己投错岗位了。。。),然后被虐惨了。

拼多多是交叉面,两轮技术面,一轮 HR 面,我先进行的是 HR 面,HR 面问的都是一些常规的东西,比如薪资啊,工作强度能不能接受什么的。

二面

二面是一个很年轻的技术大佬,至少我看着应该是人狠话不多的那种……上来就怼我操作系统,首先问操作系统中如果内存只有 1G 大小,应用程序有 4G 大小,问我能不能运行这个应用程序?我说这个当然可以,利用虚拟内存技术,然后就继续问中间的具体过程,我就说页面置换算法 balabala…事前没想到会问操作系统,所以没有翻出来复习过,算法过程记得不是太清楚,我就说我操作系统理解的不是很深。。。然后他换了个问题,你项目中这个 JVM 监控,线程是怎么监控的,我说监控的是线程数量,然后他问如果线程导致 CPU 占用 100%,这种问题应该如何排查(当时没听懂他的意思,线程怎么导致 CPU 占用的),我说这种问题我没遇到过,只遇到过内存占用 100% 的……反正过程很无语,这个面试官眉头一皱,我感觉事情并没有那么简单,可是我操作系统本来就不行啊…然后他又问我在 Linux 单核 CPU 下,CPU 是如何交替执行多个线程的,我第一反应就是 CPU 时间片轮询,他问还有吗?啊哈?还有?我懵了…对这个理解仅限到这里了,然后试探性的问了一下线程阻塞或者线程挂起算嘛?他就问线程什么时候会阻塞?我就说线程请求加锁的共享资源的时候……他说不提那个,反正最后也没给我答案…

然后面试官觉得我这不行啊,然后就回到了 Java 上,那你手写一下 HashMap 吧?😦 果然就是那种怕啥来啥的,好在之前看拼多多面经有手写 HashMap 源码的,还回头再看了一遍,然后就写了 HashMap 的 put 和 get 方法…中间我边写,他在旁边吃东西…写完后看了一下我的大致实现思路,然后问了几个关于 HashMap 的小问题比如 resize() 过程什么的。

最后问了一下笔试代码的实现思路。。。这我哪记得啊,拼多多面试官手里是有每个人笔试代码的打印版的,我准备翻过去看下我写的代码的。。结果不让看。。行吧,我就说我是暴力解的。。。

面到这里我已经忍不住了…最后,这位面试官还问我有没有什么想问的,我准备说不想问的(当时心态已经爆炸了),思考了一下不问不太好,就问了一下服务端开发的方向(这确实不是我本来想投的方向。。。全问的底层原理)。

三面

三面面试官是一个稍微年长点的,感觉这个面试官比二面的面试官要好很多,首先是问了我笔试代码(好吧就是不放过笔试代码),不过这位让我看了我写的代码,这下我就能回忆起来了,就说了一下思路。
然后问了一下 UDP 的特点和日常生活中使用 UDP 的场景。
最后,他问我常见的排序算法,我就说有 10 种 balabala,这时候我已经知道他大概要干嘛了,果然,他说那你手写一下快排算法吧。。。

然后我就飞快的写完了,他看了半天,一开始说不对,然后我们俩讨论起来了,我就随手写了一个例子证明我写的是对的,然后面试官后来拐七拐八不知道把例子改成什么了突然发现好像我写错了???当时已经下午4点了,脑子里已经是一片浆糊,当时也确实发现难道我写错了?然后面试官说那就这样吧,你回去再想想&%$#%**&,行吧←_←,面完出来后看了一下我写的笔记,好像是对的啊。。。如果有看到这里的朋友,不妨帮我看一下我写的快排代码有没有问题:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
public class QuickSort {
public static void main(String[] args) {
int[] array = {2,4,1,5,67,2,45,78,3,9};
quickSort(array,0,array.length-1);
System.out.println(Arrays.toString(array));
}

public static void quickSort(int[] array,int low,int high){
if(low < high){
int index = getIndex(array,low,high);
quickSort(array,0,index-1);
quickSort(array,index+1,high);
}
}

//获取基准数据位置
public static int getIndex(int[] array,int low,int high){
int tmp = array[low];
while(low < high){
while(low < high && array[high] >= tmp){
high--;
}
array[low] = array[high];
while(low < high && array[low] <= tmp){
low++;
}
array[high] = array[low];
}
array[low] = tmp;
return low;
}
}

当时就是这么写的代码,不知道举了个什么例子给我推翻了😦。

感受

反正面完后感觉很糟糕吧,这是被打击的最惨的一次,因为 Java 相关的除了 HashMap 啥都没问,还怼了我最不擅长的操作系统。。。面试后估计是凉了,也给后面拼多多同岗位面试的留下一点凉经。该准备下周网易的面试了,希望不要被二次打击😭。

如果这篇文章对您很有帮助,不妨
-------------    本文结束  感谢您的阅读    -------------
0%