阿里CBU事业线数据研发一面面经
写在前面:面试官人真的好好,是会让人觉得面试是思想碰撞的过程,(虽然我也没什么思想)面了4家公司中体验最好的一次,面试官会不断的引导和鼓励。
没有数据开发经验
数据库:
1.索引是什么?优缺点?分类?
答:索引是一种特殊的文件,存储着数据库表所有记录的引用指针;索引是一种数据结构,常用的例如B+树索引,用来协助快速查询、更新数据库表格中的数据,打个比方就是像是目录;可以大大提高数据的检索速度;
优点:加快数据的检索速度;通过使用索引,在查询过程中,利用优化隐藏器,提高系统性能。
缺点:时间:索引的建立和维护都需要较大的开销,对数据进行增加、删除和修改时都要动态的维护索引,降低执行效率; 空间:索引的存储需要占用一定的物理空间。
分类:根据存储结构可以划分为:B+树索引、哈希索引、全文索引、
根据应用层次可以划分为:唯一索引、普通索引、复合索引
根据数据存储的物理顺序和索引的逻辑顺序可以划分为:聚簇索引和非聚簇索引
2.ER图的构成
答:实体、属性和联系
如果一个一个学生的家庭住址有省市县这样怎么在er图中表示出来呢?这个问题没有回答出来,求大佬解答
一个老师教很多学生,一个学生上很多门课?怎么设计老师和学生之间的关系呢?
我回答的是通过课程这个实体来联系
3.简单的sql语句考察。
数据库表学生成绩Score:id,class,subject,point
1.求每个同学的总分和平均分
2.求每个班级挂科3门及以上的人数?(没写出来)
数据结构:
1.链表概念:
2.树概念;
3.图概念;
4.树和图的区别?什么时候用树,什么时候用图?
5.单向链表如何判断有环?环中有哪些节点?(第二个没回答上来,面试官引导下才用最笨的方法想出来),时间复杂度和空间复杂度分别是多少?
Java基础:
1.ArrayList和linkedlist的区别?
2.ArrayList的初始容量、扩容机制(面试官补充了jdk版本不同的区别)
3.static关键字:
面试官还提示了修饰变量、方法上有哪些内容。
闲聊:
平时学了些什么?
克服困难的例子;
反问环节
1.本次面试评价和以后的建议?
这一部分面试官特别真诚的总结,感受很深刻。
2.数据研发具体是做什么的?
面试官从3方面讲述了数据研发的具体内容,举例子介绍,面试官讲了大概有20分钟哈哈哈哈哈
总结:面试官很好,我挺菜。。。