4.21美团Java实习一二面面经
4.24号晚上,美团2面,80分钟:
手撕1道算法题
聊了40分钟项目。。。
缓存一致性如何保证的?先删缓存和先更新数据库在高并发下各存在什么问题?如何解决?
描述缓存穿透,缓存穿透是如何解决的?布隆过滤器的实现原理和优缺点?
某个id的数据访问频率极高怎么办?如何解决的缓存击穿问题?
降级是如何做的?
详述熔断机制
java内存结构分为哪些部分?分别有什么作用?JVM栈可能存在的问题?本地方法栈的底层是如何实现的?举例说明
CAS的底层实现?
能更改线程的栈大小吗?如何更改?具体用的什么指令?
堆的空间如何设置?
jconcole了解吗?知道哪些作用?jmap用来干什么?
递归的优缺点?
手写非递归后序遍历
CMS和G1的原理?CMS和G1的区别?G1在哪些方面优于CMS?
讲述垃圾回收算法
新生代和老年代的具体描述
讲述一下对象分配规则
伊甸园区装不下新对象会怎么样?
minorGC和fullGC分别在什么情况下会产生?
分布式事务知道哪些?具体描述一下原理
RR能解决什么?mysql的RR如何解决幻读?具体描述MVCC,mysql多版本数据的版本号的生成策略和过程是什么样的?Kafka的精准一次性中的版本号策略?
next-key原理是什么?
如何保证mysql在写的过程中,不影响高并发读?
你能想到一种写不影响高并发读的实现方式吗?CopyOnWriteArrayList的原理
你能想到一个分布式版本号的生成方案吗?分布式id生成策略有哪些?UUID、mysql生成、redis生成、雪花算法、leaf如何改进mysql生成策略(leaf-segment)和雪花算法(leaf-snowflake)
Kafka和rabbit的区别?为什么选型Kafka?
反问
====================================================
面了大概快两个小时吧,我都以为是1、2面合一了,口干舌燥呼不得,面完直接就哑了,嗓子疼。。。
面完反问的时候,问了面试官后面还有几轮面试(小小的期待1、2面合一),面试官说这真的只是一面。。。。。。
许愿早点收到通知回复,不管是感谢信还是什么,我只求流程加快。。。
====================================================
4.21号晚上,美团1面,110分钟:
先聊了快20分钟的项目。
说一下B+树,为什么mysql使用B+树?
Mysql有哪几种索引?聚簇和非聚簇的区别是什么?知道什么是覆盖索引吗?
什么是最左前缀原则?举例说明
ABC的联合索引,搜索字段为BAC,符合最左前缀原则吗?
谁来优化Mysql性能?
执行计划的字段都知道哪些?各代表什么含义?
Dubbo了解吗?RPC机制的原理是什么?
Dubbo的上游如何发现下游?Dubbo运行过程中,zk宕机会怎么样?
Dubbo的通信底层是怎么做的?
Redis的底层数据结构知道多少?String、Zset、set、list、Hash的数据结构,ZipList、SkipList、SDS,hash表等等
Redis为什么快?Redis的IO多路复用机制的原理?具体用到了哪几个组件?其功能分别是什么?
Netty的IO模型是什么?底层使用了JDK的哪几套IO?
BIO、NIO、AIO的区别是什么?
NIO有哪几种模型?分别讲述一下
Windows和在Linux上的IO模型有什么区别?
Kafka与Rabbit的区别
Kafka如何保证消费的不丢失且不重复(精准一次性)?
Kafka如何保证消费者对消息的顺序消费?
Kafka消费者和partition的关系
Hystrix的资源隔离是如何实现的?
资源隔离的线程池实现和信号量实现有什么区别?各自有哪些应用场景?各有什么优缺点?
QPS很大,且时常发生抖动的系统,应该用哪种资源隔离策略?
了解动态代理吗?知道哪些动态代理机制?
了解哪些垃圾回收器?CMS和G1的工作流程分别是什么样的?
了解JMM吗?讲述一下JMM的原理
volatile的有序性如何保障?
java在哪个阶段(编译期、运行期or其他?)做了原子指令重排?
JVM内存结构有哪些?哪些内存结构可能会发生OOM?发生的场景是什么样的?举例说明
线程都有哪些状态?线程分别如何进入这些状态?
wait和sleep的区别?
jdk线程池的参数有哪些?分别有什么含义?
当一直有任务提交给线程池时?内部线程的产生逻辑是什么样的?
newCacheThreadPool的使用场景和弊端?
拒绝策略有哪些?除了JDK的拒绝策略,你还知道哪些拒绝策略?
反问。
#实习##面经##美团##Java工程师#