美团一面面经 4.20(已凉)
部门:到店事业群 | 酒旅 , 职位:后端开发实习生
一.项目介绍
1.帖子的回复是怎么设计的?
2.回复关联关系是怎么找到的?
3.回复嵌套有没有什么问题?
4.redis和db的同步怎么做(数据一致性)?
5.是把所有的帖子都缓存起来吗? -> 根据热度排序取top k
6.对项目做过压测吗? -> JMeter 1000QPS
7.海量用户数据统计怎么做的?
+ HyperLogLog
+ BitMap介绍
二、Redis(我是真没背过)
1.Redis里面其他的数据结构?
2.Redis底层数据结构怎么实现的?(不会)
3.Zset()里面的跳表了解过吗?(不会)
4.Redis哪些场景使用?(缓存、消息队列、分布式锁)
5.用redis做消息队列和用MQ做消息队列有什么差别?(不会)
6.Redis做缓存为啥,是快吗?(内存)
7.Redis宕机怎么办?(我说的集群)
8.Redis存储在内存中的数据怎么办?(我说的备份)
9.集群里某分片的服务器都挂了,咋办?(不知道)
10.你有没有了解过Redis的持久化机制?(不会)
三、Java
1.8大基本数据
2.final,finally,finalize()的区别?
3.String 是可变还是不可变,String为啥不可变?
4.StringBuffer,StringBuilder是可变的吗?他们有什么区别?
5.Java里面有哪些集合,实现类?
6.HashMap put()元素的过程?
7.是头插法还是尾插法?
8.为什么做尾插法的优化?
9.hash值确定下标位置的时候,hashmap是如何尽量减少哈希冲突?
10.插入数据的时候,什么时候会扩容?
11.扩容的时候hashmap有没有做什么优化?
12.集合的fast-fail机制?(不太会,被提醒了)
13.遍历集合的时候,做修改会出现什么问题?
14.hashmap是线程安全的吗?
15.ConcurrentHashMap怎么实现线程安全的?
16.jdk8里面对ConcurrentHashMap做了什么优化?(不会CAS)
17.synchronized JVM有没有做什么优化?
18.什么时候偏向锁升级成轻量级锁?
19.轻量级锁有什么问题吗?()
20.轻量级锁什么时候升级成重量级锁?(不会)
21.ReentrantLock 底层怎么实现的?
22.如何实现公平锁和非公平锁?
23.可重入锁和synchronized之间有什么区别?(synchronized和ReentrantLock都是可重入锁)
24.JVM的运行时数据区域?
25.程序计数器做什么用的?
26.类信息、静态变量、常量放在哪里的?
27.方法区在jdk8做了什么优化?
28.为什么要把方法区移到本地内存?
29.JVM怎么对堆内存划分的?
30.新建对象是怎么存储的?
31.老年代中也放不下对象咋办?
32.怎么判断对象是垃圾对象?
33.JVM采用的是引用计数法还是可达性分析?
34.为什么JVM不用引用计数法?
35.可达性分析是怎么解决该问题?
36.垃圾回收器?
37.G1垃圾回收器怎么计算每个region的回收收益率?
四、中间件
1.讲一下Dubbo?(不会)
2.Dubbo是怎么做服务发现的?(答错了,答成了微服务的服务发现,感觉这里问的应该是网关的负载均衡emmmmm)
3.每次都要去服务端查找地址吗?(不会)
4.服务端IP地址发生变化客户怎么知道呢?
5.注册中心挂了怎么办?(不会)
6.有没有了解过分布式的一致性算法?(不会)
7.分布式锁了解过吗?(不会)
五、手撕LRU
我是真蠢,在一步删除节点map.remove(node.key)时,我写成了map.remove(key),怎么都改不了。然后不了了之,诶,难受喔,再接再厉吧。
本次总结出的缺陷:背redis八股、学习微服务
#面经#