美团一二面面经

8.28一面(95min)

1.子类与父类的加载过程,静态方法重写,静态代码块

2.Java中sync阻塞与可重入是怎么实现的,轻量级锁这么可重入,重量级锁维护了wait set

3.sync锁升级,AQS

4.用户态,内核态

5.wait与sleep,调用后操作系统发生了什么,sleep是怎样唤醒的

6.concurrenthashmap介绍,size()怎么个流程

7.单例模式,双重校验锁,volatile机制,可见性原理(MESI),直接将sync加方法上的锁粒度问题,类加载机制的懒汉

8.MySQL中select语句执行流程

9.事务与并发MVCC

10.rr隔离级别下的间隙锁导致的死锁问题

11.索引的注意事项

12.uuid与自增id,顺序写与随机写,空间占用,可能导致极端情况varchar数据存不下导致的行溢出问题,同时网络消耗(其实这都不重要,能消耗多少)

11.mysql能否保证数据不丢失

12.事务注解失效的情况,你是怎么避免的,主要说了代理类,吃异常的一些问题

13.spring循环依赖解决,两级缓存能否解决,可以,只是需要实例化后都暴露且暴露代理类,三级缓存提供了一个延迟以及按需加载的思想(不知道理解的对不对),判断是否需要加载代理类,以及需要时才提前暴露

14.mybatis执行流程,缓存有了解吗,说一下优缺点

15.实习问题

手撕:链表加法

9.3二面(65min)

1.聊一下hashmap,负载因子与len = 8锁涉及到的概率问题,树化的优缺点

2.介绍concurrenthashmap -> CAS + sync + volatile,主要说一下尽量使用用户态的CAS去尝试,这点再AQS中也有体现(不知道我的理解有没有问题)

3.你说了concurrenthashmap 这么多优点,那有没有缺点 -> 主要提了一下并发机制,常见的缓存,MVCC中rc,rr允许读旧数据,尽管volatile无需加锁,但cpu缓存一致性时也存在消耗,可能在读写并发量较高时性能有所缺陷

4.MySQLselect语句流程(我真绷不住了,一面问了我没复习)

5.MySQL如何解析到select语法错误的,客户端连接时,用户名密码存在错误时MySQL如何解决的

6.介绍B+树,主要从多叉有序平衡,树高来说

7.你说了B+树有这么多优点,那有没有缺点,这边主要讲了并发量高的insert/delete场景下页分裂时锁整棵树,讲了B-link树的一些优化点,谈到了跳表设计机制

8.说一下常用的jdk,1.8的新特性,lambda实现原理,功能性接口

9.实习拷打

手撕:山峰数组二分找变化点下标

补充:简历上的实习内容有些不清楚,还好找同事咨询了,不然也是难绷

有保底心态确实会不一样

9.6 oc

全部评论

相关推荐

评论
1
1
分享

创作者周榜

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