阿里巴巴淘系技术部一面面经(Java开发工程师)
- 1、 自我介绍
- 2、 项目介绍
a) 2.1 第一个项目涉及到了从某些个硬件设备上采集数据并传输,服务器端接收数据并显示的问题,然后就要求详细说一下数据流,怎么采集,怎么传输,怎么显示等。
项目用到了多线程,socket编程。就问用的什么IO,我回答BIO,详细讲一下BIO的实现,然后讲一下NIO的实现。多线程这块还问了线程池,原理,参数,执行流程,如何配置线程池的核心数量,最大数量,问的很详细。
问了一些JVM调优的过程。
b) 2.2 第二个项目用到了rabbitmq,就问如果消费者端出现了故障,执行业务处理很慢,该怎么处理。
c) 2.3 第三个项目和第一个项目比较类似,特点是数据量比较大,就问了分库分表如何实现,用什么样的切分算法。如何扩容,全局不重复ID如何实现。
- 3、 归并排序过程
- 4、 有面值为1,3,5的硬币,数量不限,要求凑出金额为m,求使用的最少硬币数量。
- 5、 智力题,时针和分针在十二点时刻是重合的,再过12小时之后,在这个过程中,分别在哪些时刻是重合的。
- 6、 有一道写SQL语句的,用到的知识点是join,具体题目忘记了。
- 7、 锁,ReentrantLock和Synchronized的区别
- 8、 可重入锁是什么,底层是如何实现的
- 9、 阻塞队列的实现原理
- 10、 解释一下线程间可见性
- 11、CAS原理
- 12 、听说过Docker吗(简历上根本没写==)
- 13、项目的部署情况
- 14、 Linux了解吗
- 15、面试官发过来了一个链接,白板编程。给定n个任务,每次批量处理m个任务,每个任务返回值是int类型,将批量处理的任务结果累加起来,用最短的时间完成这n个任务。
- 总结:
就本次面试而言,感觉问的东西挺多的,涉及的范围也很广,不像是我看到其他人面经的一面问题==。
关于项目,面试官会问的比较详细,然后会问一些比如为什么要用这个技术,不用这个技术用其他技术也可以实现啊这样的问题,要提前准备下。
其实问知识点倒不是最难的,比较难的是,面试官每次都会根据问你的知识点,然后给你一个场景,写代码或者讲代码思路实现某个功能,这里的讲代码思路并不是说几个关键字,调用什么方法之类的就可以,而是让你基本上每一步怎么写的都说上来,所以要准备的充分一些。
算上和面试官交流的时间,写代码的时间,大约面了90分钟吧,第一次面试,有点紧张,有些问题没有回答上来,估计凉凉。
#阿里巴巴##面经##Java工程师##校招#