vlambda博客
学习文章列表

阿里实习Java面经


一面

  • JMM模型,Java类加载的原理

  • Java运行时,什么时候会触发GC

  • 数据库设计三范式

  • Java Web相关(不会😥)

  • 讲解常见设计模式,之后又专门问装饰器模式

  • HashMap, HashTable区别,HashMap的优化

  • 项目相关(Spark, Partition)

  • 手写代码:实现Java中的线程安全阻塞队列

  • 手写代码:leetcode 1247(想了挺长时间。。。)

二面

二面主要问项目,没写代码……

  • 介绍项目,数据流向,项目选型

  • Spark运行原理

  • Spark和Hadoop的区别

  • Spark的数据倾斜,以及解决办法

  • 项目优化,什么问题,如何解决

  • 项目GC调优,老年代垃圾收集器

  • Linux命令:查看进程,删除过期文件

  • Java的序列化

  • 介绍Java NIO, Netty

  • 搜索引擎原理,输入key之后的后台搜索过程

  • 非技术话题(运动,英语)

   

三面

P9大佬面,各种进阶问题,一面代码题写的可以,二三面就不写代码了

  • 聊项目,Spark优化 (聊了挺久)

  • kafka在项目中的作用

  • Netty实现了什么功能,内存原理,DirectBuf:说了Java NIO, Netty的架构,但是问的不是这个。又说了Netty封装的一些功能(时间处理,处理NIO BUG, 编解码器,错误处理…)。面试官又问Netty内存方面的东西,答ByteBuf池化,类似于操作系统伙伴系统的内存分配。又问DirectBuf, 答零拷贝,直接在操作系统分配内存。

  • Java虚拟机的双亲委派模型,如何打破:要挂就挂在这个问题,这个问题我竟然理解错了重点

  • Java序列化,如何不让某个成员序列化:transient关键字

  • OOM定位与解决(项目中遇到过):日志->jconsole->jmap->jvisuavm

  • 数据库B+索引

  • 搜索引擎倒排索引和数据库索引的区别 (没答好,二面面试官问的简单,三面想深入,只了解皮毛)

  • 深度学习算法相关,剪枝的目的和原理(实验室组会听过论文,无奈对算法不感兴趣,说了目的,原理没说);梯度如何计算

  • 未来发展,实习时间

交叉面

隔了快两个月的交叉面(进系统前面了三面,进系统时选了另一个部门,最终还是转回来了)。

  • 介绍项目 (半个小时)

  • RPC框架,远程服务端异常,客户端怎么处理

  • 问问题,建议学习Spring框架

 

------关注我,获取一手校招资讯------