阿里暑期实习Java一面面经
1. 自我介绍
2. 找一个你觉得比较有代表性的项目,详细讲下这个项目做了什么事情,你做了什么样的工作,用了哪些技术,解决了什么问题。为什么要去做这个项目?
3. 中间件部分比较了解熟悉的有哪些?(redis)
4. Redis主要用来做什么,有什么作用?(缓存、消息队列、分布式锁)
5. 有没有用过或者了解Redis集群的概念?(没有)
6. 什么时候需要用到分布式锁,redis是怎么去实现分布式锁的。
7. 以一个购物网站举例,缓存怎么去做,什么时候去读缓存、什么时候去写缓存、什么时候去失效缓存,整个流程大概是什么样子的?(缓存热门商品,保证缓存与数据库的一致性)(不过面试官想听的好像不是这个,他想问的是,假设一个购物网站系统,通常来说是两个系统,一个系统是对于消费者而言,一个是对于商家而言,对于之前已经发布过的商品,因为一些原因,商品价格发生变化,发生变化时系统如何去保证新的价格和消费者看到的价格以及下单的价格是尽量一致的)
8. HashMap的数据结构,扩容,多线程下扩容出现并发的问题(1.7头插法多线程扩容会出现死循环,1.8尾插法可以避免)
9. 介绍一下Java本身的锁机制,怎么实现的(乐观锁悲观锁、sychronized、lock、reentrantlock)
10. reentrantlock和sychronized在性能上有什么区别?
11. 项目中有没有涉及到一些MySQL数据库表的设计的工作?
12. MySQL索引用来做什么的,用的什么数据结构?(加快查找,B+树)
开放问题:
13. 导航软件会告诉你最优路线、需要的时间,如何预测出来一段路需要多长时间,如何知道一段路比较拥堵,根据拥堵情况实时调整新的预估时间的?
答:拥堵应该不是预测出来的吧,是实时检测出来的吧
面试官:那流量是怎么检测出来的呢?
答:一段路设置一个起始点和终点,进来一辆+1,出去一辆-1
面试官:那这个需要用到硬件,有软件的方式吗?
答:用GPS或者北斗获取到每辆车的坐标
面试官:导航软件如何知道红路灯马上要变绿或者变红了呢?
答:这个难道不是直接能从交通部门获取到的吗
面试官:如果不和交通部门合作,用软件算法的方式怎么解决?
答:根据车辆坐标移动的时间间隔推算红绿灯的大概时长
面试官:大概需要多久呢?(一周?一天24小时,一周七天的样本)
14. 反问
总结:总体来说不算很深,面试官说了先做一个初步的筛选,问题问的不是很深,主要了解一下基本的情况,感觉大厂的面试官和小厂还是很不一样的,大厂都是根据具体的回答情况去不断的引导展开来去问,这部分需要对很多知识有一个更全面的认识才能回答的到位。总体时常40min左右,体验还是不错的,后续一两天等通知。
#2024届实习##软件开发2023笔面经##实习面经##我的求职思考##我的实习求职记录#