阿里实习一面面经

昨天下午预约的今晚8点。处女面,接电话手在抖
笔试4.20做的,4.21下午电话约的时间。
1.先自我介绍下吧

2.看你项目里用了springboot,能说下常用注解吗。
答:说了controller requestmapper filter(说过滤器的时候说了下之前filter解决了一个项目的问题)

3.你知道spring中怎么让注解发挥作用的呢,注解的实现原理是什么?
答:spring的注解原理我说不熟悉,但是我之前写过注解的demo,把自定义注解的实现说了下。

4.spring中的aop是怎么实现的?
答:jdk的动态代理和cglib
追问:两种代理有什么区别
答:jdk代理需要类实现接口,cglib不需要,它是通过继承的方式实现的动态代理。
追问:那么用cglib会不会有什么方法无法代理
答:私有方法和final方法,无法被子类重写,自然没法代理

6.看你项目中用到了mysql,索引了解吗,简单说下
答:索引本质是一种数据结构,b+树,使用索引可以加快查询速度
刚才又回忆起来这里有个追问
追问:主键索引和普通索引在实现原理上有什么区别?

7.事务的隔离级别
答:四种级别,然后想表现一下,自行扩展了数据库事务实现的原理,x锁和s锁,越说越激动,最后语无伦次了
追问:你刚才说了是数据库的隔离级别原理吧,那在spring中的隔离级别是怎么设置的
答:我蒙了,当时死活想不起来那个开启事务的注解叫啥了,想了一会就承认自己忘了。面试官还安慰我没关系

8.ThreadLocal项目中用过吗?了解吗?
答:项目中没用过,但是之前看到这个知识点写过demo,ThreadLocal是构建一个存放线程私有变量的东西,解决了变量的线程安全。ThreadLocal和同步都能解决线程安全,同步是时间换空间,ThreadLocal是空间换时间。
追问:那底层是怎么实现的呢?
ThreadLocal底层是一个Map,它本身作为key,变量作为value。
追问:那这个Map是线程安全的还是不安全的?
答:不知道,然后蒙了个安全的。

9.看你项目里有mqtt作为消息中间件,它在项目中有什么作用?你用过其他的消息中间件吗?
答:用过rabbitMQ写过demo,项目没用过。
追问:消息中间件能解决什么问题?
答:流量削峰。类比了下双十一。
还有呢?
我说根据消息中间件本质是一个发布订阅模式,应该还可以做业务解耦。

10.说一下jvm的垃圾回收?
答:从垃圾回收算法(标记清除,标记整理,复制,分代)说到垃圾回收器(单线程,并行,CMS,G1)

11.堆排序
答:描述了下堆结构,然后说堆排序的过程。

12.怎么判断链表有环
答:快慢指针,快指针追上慢指针即为有环。
追问:为什么有环快指针一定能追上慢指针呢?(我现在感觉想问我另一种算法,用hashset的,当时想这个空间复杂度O(N)用不着说,或者评论区大佬帮忙看看面试官想问我什么)
答:显然,没法证明


13.有什么想问我的吗?
。。。。

14.补充个
面试里看简历里还用过netty,问了下io和nio的区别?为什么不直接使用nio开发而使用netty?


面试时常1小时3分钟,阿里面试官小哥哥对话很舒服,本来紧张到手抖,后面就放开了。


阿里给我二面的机会啊啊啊啊啊啊啊!求求了!
许愿阿里。





#阿里巴巴2021暑期实习春招##阿里巴巴##实习##面经##Java工程师#
全部评论
阿里一面这么难吗?感觉自己好菜啊
点赞 回复 分享
发布于 2020-04-26 09:32
如果有环,快指针和慢指针都会进入环,相对速度为1肯定能追上
点赞 回复 分享
发布于 2020-04-24 14:20
map应该是不安全的
点赞 回复 分享
发布于 2020-04-24 14:14
希望我也遇到这样的面试
点赞 回复 分享
发布于 2020-04-23 19:05
一面怼项目?
点赞 回复 分享
发布于 2020-04-22 23:29
什么部门呀?
点赞 回复 分享
发布于 2020-04-22 23:27

相关推荐

ResourceUtilization:你是我见过最美的牛客女孩
点赞 评论 收藏
分享
评论
2
18
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务