3.22实习面试面经

记一次阿里计算中心部初试面试

1、自我介绍

2、hive原理

3、kafka有些什么,底层原理,spark对错误处理机制,机器宕机了怎么恢复的,NameNode和SecondNameNode相关东西,Flink的类SQL怎么实现的,     -----理解的不够深入,或者是对某一个大数据生态的产品了解的很有独到见解。没有对底层源码实现深入了解。中间穿插了实习经历,都干了啥啥啥。

4、链表反转

5、无序单链表删除重复元素    好,首先说到需要先对链表进行排序,然后从头遍历链表,用while循环剔除掉前后重复元素。然后说说你会链表怎么排序。链表快排or链表归并排序,本人说到了链表归并排序,简单说下链表归并排序怎么实现的,首先说到需要实现三个函数,一个是mergesort,一个是merge,一个是找到中间元素,然后面试官问如何找到中间元素,我说通过快慢指针来寻找,然后面试官来了个坑,,(好的,你这样每次都需要找到中间一个元素才能继续执行,那么如果我链表排序使用冒泡排序,一次也能排序好一个元素,你这个定位中间元素才是其中一个步骤,是不是我用冒泡排序更好呢,你这个归并排序还有这么多步骤,然后balabala一顿解释,阐明堆排时间复杂度是O(NlogN)),冒泡是(O(N^2))所以并不是冒泡比我说的归并排序算法效率要高。接着又问到,归并排序和快速排序哪个效率更高呢?)  ------- 继续挖坑,如果不能打乱无序单链表的顺序情况下,删除重复元素,你又该怎么办呢?呃呃呃,,,那就要开辟辅助空间了,遍历链表把存到HashMap中,然后根据健值删除重复的元素,时间复杂度是(O(N))。

6、二叉树的遍历有哪些?前中后序,层序。 说下层序遍历怎么实现的。 没啥难度

7、什么是平衡二叉树? B+树是平衡二叉树吗?!!!这个是坑,,,  了解红黑树吗?红黑树和B+树有什么不同呢?

8、如何打乱一个有序数组,,, 一开始就回答了个 调包,,,shuffle函数,然后回答了用random函数来打乱数组下标的方式来打乱。然后又问,如果不使用random函数,你要怎么实现呢? emmmmm,不会。。。 然后又问在Linux系统中,是否有函数能实现打乱有序数组呢?有没有写过Shell脚本代码,,,Linux指令会哪些?Linux文件系统有什么有点,哪里好?

9、虚拟内存和物理内存有什么不同呢?两个进程能否共用一个虚拟地址呢?比如一个java程序,运行过程中,虚拟内存和物理内存是如何工作的呢?

10、TCP三次握手知道吧,那么如果断开连接是用什么呢? --四次挥手, 阐述下四次挥手过程,balabala,,,那么客户端和服务器谁会有closed waited状态呢? --服务器, 好,那么在服务器接收到客户端的FIN请求后,发送给客户端ACK,还没有发送FIN时,客户端处于什么状态呢? emmmm,,,想了一会,答,,close状态。

 

面试经验总结:

对大数据底层用到的技术没有了解的特别深入的地方,底层源码不了解,很多细节问题不懂!!!

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(我的面经)