这是本人去年找暑期实习时候的面经,java后端方向。之前面试的时候一直会做录音复盘,但是并未整理过面经,最近有uu私信想看一下,因此分享给大家,做个参考,希望可以帮助大家。以下是相关文章链接:阿里云一面、秋招总结。
75min
视频面试
自我介绍;
项目介绍:参与了哪些项目,自己挑一个项目详细展开,介绍项目的创新点和难点,针对其中存在的问题有没有一些思考;
实习经历介绍:介绍下完成了哪些需求,业务流程,完成需求过程中遇到了哪些问题,如何解决的;
Mysql相关:MyISAM和InnoDB的区别?(行级锁、事务、外键、崩溃后的安全恢复、MVCC、性能等)
Mysql相关:索引的底层数据结构?为什么选择这样的结构?(B+树)
Mysql相关:自己选择维度划分介绍有哪些索引类型?(按照底层存储方式角度划分:聚簇索引和非聚簇索引)
Mysql相关:最左前缀匹配原则是什么?自己举例进行说明;
Mysql相关:索引下推是什么?(在遍历过程中,对联合索引中包含的字段先做判断,直接过滤掉不满足条件的记录,减少回表次数)
Mysql相关:事务隔离级别?InnoDB引擎的默认隔离级别?InnoDB引擎如何解决幻读?(读未提交、读已提交、可重复读、串行化)
Mysql相关:你在项目中使用了哪些方式来对数据库查询进行优化?
Spring相关:介绍下IoC和AOP?在项目中哪些地方有使用?(Mybatis)
Spring相关:介绍下项目中和数据库有关的操作?在Spring中连接数据库进行数据插入操作时有哪些需要注意的地方?Spring中
事务传播行为有哪些?你在项目中基于什么考虑使用的?(TransactionDefinition.PROPAGATION_REQUIRED
、TransactionDefinition.PROPAGATION_REQUIRES_NEW
、TransactionDefinition.PROPAGATION_NESTED
);
Spring相关:bean的生命周期?有哪些注入方式?(构造器、setter和属性注入)
Spring相关:线程池有哪些核心参数?各自的作用?项目中如何使用的?(核心三参数:corePoolSize
、maximumPoolSize
和workQueue
)
并发相关:进程、线程和协程的区别和作用?
并发相关:volatile
关键字的作用?在保证线程安全的情况下实现单例对象的获取?(双重校验锁)
并发相关:synchronized
关键字的作用?底层实现原理?和ReentrantLock
的区别?锁升级及实现原理?(偏向锁->轻量级锁->重量级锁)
Redis相关:有哪些持久化方式?AOF和RDB的底层实现原理?在项目中用的是哪种?基于什么考虑使用的?
Redis相关:引入哨兵集之后,主从故障的转移过程?
Redis相关:Redis是单线程吗?采用单线程为什么速度快?
Redis相关:Redis阻塞的原因有哪些?出现阻塞后的排查以及解决方式?
算法题:Leetcode53 最大子数组和;
算法题:Leetcode146 LRU缓存。
二面开始针对项目和实习经历的追问开始变得多了起来,而且会在听你介绍的时候针对其中的一些点展开追问,这个过程中会涉及到八股文的提问。所以,在准备项目的过程中,一定要好好想想项目用到了哪些技术,相关的知识点最好都多看看,这些在面试中都是极有可能会问到的。二面开始,面试官会更加看重你在做项目过程中的一些思考,比如遇到问题的解决方式和一些反思总结。因此,除了八股文外,还应该多思考下自己项目的亮点,最好有一些别人没有的创新点,这样会很有优势。在介绍项目的时候也可以简单说说你通过项目学到了什么,有哪些总结思考,以此来展示自己的学习能力。
PS:本来是给的一道算法题,估计看我写的很快,问我是不是做过,回答是之后又给了一道Orz。也许做题速度也需要稍微控制控制hhhhh。
#面经##实习##阿里云##暑期实习##牛客在线求职答疑中心#