阿里面经分享
昨天晚上打点的话,约这两天面试。于是约的今天上午面试。整个过程进行了一个多小时(第一次面试这么长时间)。还不知道结果怎么样,先总结一下问题吧。
首先面试官先介绍了一下部门主要工作,主要方向是大数据平台开发。接下来正题:
1.首先当然是自我介绍了。
2.hashmap
hashmap原理
https://baijiahao.baidu.com/s?id=1618550070727689060&wfr=spider&for=pc
hashmap对象的要求
https://blog.csdn.net/qq_35489960/article/details/78926547
如果不实现hashcode()方法会怎么样
https://www.cnblogs.com/yuanblog/p/4441017.html
如何保证hashmap并发
https://blog.csdn.net/hello_worldee/article/details/77880349
解决hash冲突的方法
https://blog.csdn.net/qq_32595453/article/details/80660676
3.java类
Java类实例化过程
https://blog.csdn.net/justloveyou_/article/details/72466416
Java静态变量实例化过程
https://www.cnblogs.com/xunbu7/p/5079376.html
如果自己编写一个string类会不会加载使用
涉及到类的双亲委派机制了
4.java内存回收
内存回收机制
https://www.cnblogs.com/prophet-it/p/6498275.html
java持久代(持久代中包含什么,在什么时候回收)
https://www.cnblogs.com/yaoyuan23/p/5587548.html
https://www.cnblogs.com/EasonJim/p/7489922.html
java类卸载
https://www.cnblogs.com/blueskyli/p/8589870.html
java oom何时会发生
https://www.jianshu.com/p/8be0daac8dc2
5.讲了讲关于自己做的spark的项目
6.mapreduce
mapreduce工作原理
https://www.jianshu.com/p/1e542477b59a
Combiner是什么
https://blog.csdn.net/qq_38262266/article/details/79185631
mapreduce shufle原理
https://www.cnblogs.com/felixzh/p/4680808.html
数据倾斜
https://blog.csdn.net/WYpersist/article/details/79797075
7.Hbase
HBASE数据写入过程
https://www.cnblogs.com/163yun/p/9020608.html
RegionServer
https://blog.csdn.net/u013080251/article/details/68980215
8.spring
spring基本概念核心
https://www.cnblogs.com/leeSmall/p/7643508.html
如何依赖注入的,有哪些注解
spring这一块整体不太熟悉
9.SQL语句执行原理
https://www.cnblogs.com/ygzs007/p/9211712.html
10.100亿个整数,内存足够,如何找到中位数?内存不足,如何找到中位数?
https://www.nowcoder.com/questionTerminal/359d6869d5ce4738bf9c9a42b67d9568
11.经典问题:对于一个m*n的网格,从左上角的方格到右下角的方格,共有多少条路径
https://blog.csdn.net/zhouqianq/article/details/76922494
二面
开头肯定是自我介绍了
之后主要是结合项目问了一些问题
1.项目最大的难点是什么?
我回答是kafka,之后问了kafka的工作原理,基本机制
Kafka高存储如何实现
2.hashMap如何保证线程安全
ConcurrentHashMap,如何实现的线程安全
3.悲观锁和乐观锁
4.数据库的事务
5.数据库索引
6.辅助驾驶项目如何实现的,采用什么算法?
yolo,基本原理
三面 等了将近两周终于等到了三面
1.介绍一下项目
2.项目中用到HBase,说说RowKey
scan的作用
热点问题
3.synchronized与Lock的区别
4.java变量可见性?如何解决?
5.map线程安全,queue线程安全的实例
6.编程题:旋转数组找目标值
四面 刻骨铭心的一次面试 谈的都是架构层面的东西,没有深刻的知识点,但是是很失败的一次
1.首先谈谈Hadoop,整体架构
2.根据Hadoop衍生出来的spark架构如何
3.flink了解过吧,架构是怎样的
4.计算机操作系统学过吧,咱们来聊聊计算机底层。
构建一个数据结构,来实现计算机内存管理,要考虑内存分配、内存释放、内存整合。
自己当时刚开始想到了用Hashmap来做,方便管理,之后因为Hashmap占用内存太大,要换一个。
之后想到的用最简单的数组(也不知道当时咋想的,那个么多数据结构非要用数组干嘛。。。),之后就构建如何进行内存分配、回收,自己挖的坑,自己就这样跳进去了。
事后想了一下,可以用堆做内存管理呀。