一面:3.14
1.首先问实习经历,简单说了下是做数据处理跟分析,然后又简单问了一下实验室项目,没有深入问
2.Java的数据结构有哪些
3.聊一下数组这种数据结构,各种操作的时空复杂度,arraylist的扩容。
4.有哪几种树?
5.详细介绍一下b树跟b+树,b+数查询时间复杂度,为什么?
6.b+数有哪些商业用途(答了MySQL索引)
7.增删改比较多的情况下,为什么一段时间后要重新建立索引
8.了解MySQL的binlog吗?
9.了解哪些大数据框架(答了spark)
10.spark与MapReduce的区别
11.rdd的弹性体现在哪里
12.shuffle的过程
13.实验室的数仓项目建模过程是什么样的(应该回答指标确立,粒度确立这些,但是我答成了分层),数仓的意义体现在哪些方面
14.有看过相关书籍吗(答看了部分大数据开发之路的内容,然后问了一些这本书的内容)
15.然后从ods到dwd到dws一层层的深入问,询问每层作用。包括纬度表事实表这些。比如问了dws层是怎么体现出数仓的数据复用的功能的(面试官告诉我可以计算的角度回答)
16.关系型数据库跟数仓的区别,三大范式是什么
17.数据库事物特性(acid)
18.算法题:1000个排好序的元素互不相同,找出唯一有重复的数。
19.sql题,求连续登录大于三天的人数。
一面结束几分钟hr就来电话约下一面了。
二面:3.15
开始还是聊实习跟项目,聊完直接写了一个题,面试官问我会不会堆排序,我说不会,那快排会吗,会。然后就手写快排,写了一会面试官有点着急了,然后就说时间也挺久了,要不你下去再看看吧,然后我赶紧说那我说一下思路吧,然后就说了一下快排思路。后面就开始问一些其他问题。
1. myisam跟innodb的区别是什么
2. 数据库三大范式
3. where和having的区别
4. StringBuilder和Stringbuffer哪个是线程安全的?
5. 什么是线程安全?Java怎么保证线程安全?
6. jvm内存结构
7. 手写一个wordcount
8. 聊数仓,怎么理解数仓,为什么要分层
9. 场景题,抖音用户不发视频,怎么给用户打标签
二面结束以为已经凉了,没想到过了两天有收到hr三面的通知了,感谢二面面试官捞我
三面:3.19
三面主要还是聊项目跟实习。首先问了实验室数仓建设的背景,然后询问有哪些数据,数据量多大,然后又追问这个数据量有必要使用hive吗。然后又追问数仓分层,是怎么分层的,为什么要分层,每一层的作用。又问建模完成后有对数据进行验证吗,如何验证的。
然后又开始聊实习,首先还是介绍实习都是做啥,然后问了预测的方法都是谁来提出的,我主要做的是什么。线性回归的原理是啥。询问实习中遇到的困难,怎么解决的。问最后的预测结果与之前相比有多大的提升。
后面又简单问了几个技术问题:
1. spark宽窄依赖
2. synchronized是什么,怎么使用的。在static代码块上可以加synchronized 吗?跟在类上添加有什么区别?(不会
3. 一个逻辑题:8个球,里面有一个比其他的都重,使用一个天平找出这个球。(回答了分治,三次比较的方法,面试官追问有没有只比较两次的方法,经面试官提醒可以分为3 3 2的方式进行比较
最后询问了面试官职业规划相关的问题,面试官跟我详细介绍了大数据相关的所有工作内容,主要是说需要提升技术,业务,沟通能力三个方面的能力
3.23收到感谢信:)
#字节跳动实习##面试题目##字节跳动#