一.携程
一面
- B+树了解嘛?
- java中的变量和对象是怎么存储的?
- 你知道哪些排序?(我说了快排,归并,堆排等)
- 手撕代码:快速排序
- 设计模式了解哪些?
- 说一下二叉树的查找
- 说下二叉树的遍历?(要记得把前中后层序遍历都说下)
- Java集合你了解哪些?
- HashMap说说它的原理?
- 多线程了解多少,说下 vlolatile 关键字的应用场景?
- 说说链表和数组的区别?
- 为什么链表遍历比较慢?
二面
- 说以下Spark流程,RDD底层了解吗?
- RDD的宽依赖和窄依赖有什么区别?
- concurrentHaseMap在1.7 和1.8 的区别?
- 线程池的种类,自己设计线程池,如何避免处理重复任务?
- Java为甚么不用多继承?
- 为什么要有 Java 内存模型
- 垃圾收集器有哪些,怎么标记的?
- MR是怎么确定Map Task数量的?
- MR的流程介绍一下?
总结:携程问的偏计算机基础一些,所以要把基础知识打扎实。这也是我秋招的第一家面试,当时回答的不是很好!
二.美团
一面
- 自我介绍
- 讲讲你的项目(每个人项目不同,就不介绍了)
- java 的一些简单知识,(String,StringBuffer、StringBuilder区别)
- hive 的一些优化方式
- mr的 join 原理 (map join、common join)
- mr 的过程了解嘛?
- Spark 和 mr 的区别?
- RDD 弹性体现在哪里?
- 数据库的索引原理了解嘛?
总结:围绕项目讲了很多,会问你遇到什么问题,如何解决的,有没有替代的方案!对实战项目要求比较高,我当时项目经历比较少。
三.微店
一面
- 自我介绍
- 你不是计算机专业的,为什么要跳到计算机领域,为什么想要做大数据?
- 域名地址解析过程?根域名服务器、顶级域名服务器、权威域名服务器分别有什么作用?
- 线程池的参数有哪些?问了拒绝策略有哪些(我不了解),我便主动和面试官说,我比较熟悉 Sychronized 和 volatile?
- Sychronized 和 volatile 有什么区别,volatile 底层使用的是什么实现的?
- Synchronized 关键字三种使用方式的区别?
- Synchronized和ReentrantLock的区别; Synchronized是否可重入?
- 公平锁和非公平锁哪个性能更好点?
- ArrayList 和 LinkedList 区别有哪些?使用场景?
- HashMap 1.6 和 HashMap 1.7的做了什么改进(我觉得好像是1.7 和 1.8 ),然后面试官问,那就目前HashMap做了哪些改进?什么时候链表转化为红黑树?
- jvm 使用 GMS 收集器,空间怎么分步的?使用 G1 收集器呢?
- HDFS 读的流程?hdfs block块和系统的块有什么区别吗?
- RDD 和 DataFrame、Dstream 中的数据集之间有什么区别?
- spark中不是有 checkpoint 机制吗,然后现在有30M 的数据,内存只放得下20M,剩下的10M怎么办?
- 编写 Hive 程序时,遇到数据倾斜时怎么解决?(Hive 性能调优)
- MR程序运行的太慢时,怎么去定位原因?
- 消息队列 kafka 和 MQ 的区别有哪些?
- 平衡二叉树、B树和B+树有什么区别?
- 普通二叉排序树和红黑树、平衡二叉树有什么区别?
- 算法题:
- 有序数组的目标值,怎么查找?时间和空间复杂度是多少?
- 有一个数组,数组中存储的是 Cat 对象,每个 Cat 对象有多个成员变量,其中一个代表颜色 color,有两个值白色和黑色,要求编写一个函数将数组中所有的白猫都放到黑猫前面。
微店一面火力挺猛的,从java 基础一直问到大数据相关知识点,其中还问了我会不会 Spring,我说不会。这是秋招很早的一次面试,就是没过,但是我及时总结面试,后续逐渐了解了套路。
end
你好,我是小林! 非科班双一流硕士,CAE仿真方向转行大数据,现杭州某大厂大数据工程师!
我可以给你提供最全的【大数据学习路线】;帮助你搭建大数据知识体系,从入门到精通;亲自指导你大数据工程师面试的简历该如何撰写!