美团java后端开发一面面经
2021/4/9 19:00-20:50 110min
项目
1、自我介绍
2、实现经历介绍
3、实习主要的事情、用到的技术栈
and so on……
redis
1、缓存穿透是什么
2、如何避免缓存穿透
3、布隆过滤器
4、怎么保证缓存和数据库的一致性
mysql
1、mysql索引如何存储(为什么用b+树)
2、乐观锁和悲观锁
3、数据库的乐观锁怎么实现(具体一点)
4、mysql主从复制说一下,为什么这样做
5、long sql怎么优化,比如:分页查询速度很慢
计算机网络
1、tcp和udp的区别
2、讲一下https
3、为什么要CA认证,这么做的意义是?
4、拥塞控制
java基础
1、协程
2、重载和重写的区别,能不能不写@Override,如果不写会怎么样
3、实现某个接口的时候类能不能不写public,即默认为package访问权限(为什么)
4、子类能否重写static方法,为什么
5、类加载机制,为什么要有这种机制(双亲委托机制)
6、java.class是在哪种类加载器里面
7、hashmap底层原理、安全性问题·等
8、concurrenthashmap底层原理
9、线程的状态有哪些,它们之间是如何转化的
10、如何创建线程(4种)
11、线程池的几个核心参数分别是什么,解释一下,以及这个过程
12、拒绝策略有哪些
13、新生代survivor为什么要分两部分
14、老年代的回收算法有什么
15、cms介绍一下
16、full gc发生在什么时候
17、多线程如果多次调用start会怎么样
18、为什么hashmap的初始容量为16
19、什么情况下会触发full gc
框架
1、spring的ioc和aop
2、怎么通过注解注入的@Autowird,@Resource等
code
1、单例模式双重检测,为什么双重检测,为什么用volatile
2、判断链表是否有环
场景题
1、10个文件,每个文件1G,存储用户的query,找出查询重复top10的query,怎么设计?(不同文件中的query有重复)
2、64匹马,8条赛道,保证找出跑的最快的4匹,最少需要多少次?
2021/4/19更新:问题基本都回答出来了,code也写出来了,场景题也答出来了,还面了将近两个小时,自我感觉面试表现还可以,结果一面就凉了啊🤣......
(ps:果然一面的时候没有问我“你有什么要问我的”就凉了啊🤣)