美团JAVA后端暑期实习一面面经
1、 集合框架用过吗?ArrayList和LinkedList的区别?
2、 HashMap了解的知识随便说
3、 线程安全的Map有什么? ConcurentHashmap
4、 AQS看过吗? 抽象的队列式同步器
5、 AQS使用了什么设计模式?(是模版方法模式的经典应用)
6、 进程和线程的区别
7、 Synchronized和ReentrantLock对比一下
8、 ThreadLocal为什么会内存泄漏?如何避免?ThreadLocal的优化了解过吗?
9、 Netty中改进版的ThreadLocal了解过吗?(一般用不到)
10、线程池有哪些参数?
11、线程池解决策略有哪些?
12、核心线程什么时候创建的?(核心线程默认不创建,当提交任务到线程池中时才创建,有参数可以预热)
13、对象进入老年代有哪些情况?
14、CMS的垃圾回收过程
15、读过speing的源码吗?AOP的原理?
16、Bean的生命周期
17、循环依赖问题了解吗?
18、spring常用的注解
19、mysql的存储结构?为什么使用B+树
20、最左前缀原则了解过吗?如果where条件是 where b=? and a=? 会走索引吗(mysql会自动优化,会使用索引)
21、回表查询了解过吗?
22、有没有听过索引下推
23、一般怎么优化sql调优
24、慢sql该怎么分析?
25、实际遇到中的问题:业务方传递的参数导致对需要几亿条数据全表查询,猜一下会发生什么?(发生OOM)如何解决?(使用参数校验与设置限制解决)
26、用过redis吗?什么场景下用的redis?用了什么数据结构?
27、你理解的redis会在什么场景下用到?
最后一道算法题,15分钟内解决
将数组中的0元素移动到数组末尾,不改变非0元素的相对顺序
[0,1,2,0,0,3,5]-> [1,2,3,5,0,0,0]
#美团暑期实习##美团##面试题目#