本文最后更新于 2 分钟前,文中所描述的信息可能已发生改变。
详情
【一面】
- 自我介绍不问实习和项目,上来就全八股
- 为什么 String 不可变,StringBuilder
- synchronized 和 Reentranlock 详细介绍,哪些情况优先使用后者,或者说为什么解决什么问题而存在
- 上面锁的话,有什么注意事项
- join 类型
- sql 怎么优化
- 查看执行计划
- explain 的属性
- 自动装配原理,流程
- 设计模式应用,好处
- 如何处理异常
- 哪里会打印日志
- 遇到性能瓶颈怎么解决核心代码模式,手撕旋转数组
【二面】
- 自我介绍
- 实习相关
- 实习里面,有个点有串行执行,为什么不改成并行
- 如果这里成为系统的瓶颈,你怎么处理,异步失败了怎么处理
- 线程池
- 问我了不了解动态扩容的线程池(我说在看过美团技术的一个博客,讲解过,但自己没实现过)
- 对于抢票这样的业务,忙的时候要死,闲的时候也要死,你对于数据库的读写方式有什么考虑
- mysql 和 redis 的数据一致性问题(被打麻了,我记得看过的都是不存在强一致性的吧,都存在至少一点点时间的错误)
作者:美团专业内推官 链接:https://www.nowcoder.com/interview/center?entranceType=导航栏 来源:牛客网
详情
美团后端一面 3.24
- 你的项目来源是什么,怎么想的做这些项目
- 项目有哪些难点(没提前准备这个问题,只能说没有印象深刻的难点,遇到问题网上搜一搜就解决了)
3.打包成 jar 包之后这些依赖包的位置在哪呢,java 是怎么识别的4.介绍一下 jwt,他是怎么加密的5.jwt 和传统的 cookie+session 有什么区别呢6.为什么用 oss 存储,怎么不直接存在本地服务器7.为什么用 websocket 8.介绍一下 springtask 怎么实现检测超时订单9.用 mq 来解决这个业务的话,springtask 是不是就用不到了(不是,如果 mq 宕机了或者出现异常了可以用 springtask 进行兜底)10.介绍一下 redis 旁路缓存11.高并发查 redis 没有的数据怎么办(互斥锁)12.没获取到锁的线程怎么处理(重试几次,抛异常,或者用逻辑过期返回旧数据)13.redis 怎么实现分布式锁,setnx 有哪些参数14.redisson 是怎么确定锁的拥有者的15.介绍一下 jvm 内存模型 - 原空间存储的是什么信息呢
- 为什么原空间替代了永久代
18.说一下堆的分代回收机制吧19.有哪些垃圾回收算法20.标记清除是怎么标记的(怎么确定是不是垃圾?)21.说一下双亲委派机制,如果我自己定义了一个 java.lang.String,那能够使用吗?22.介绍一下线程安全的类23.concurrentHashMap 是怎么实现线程安全的?24.介绍一下 mysql 的索引吧25.说一下最左匹配原则26.redis 的内存淘汰机制27.介绍一下 redis 三件套
手撕:删除链表的倒数第 n 个元素 反问
作者:SillyBoyy 链接:https://www.nowcoder.com/feed/main/detail/b3b9e455a7d44d2dbe27b2daf49b28a8?sourceSSR=users 来源:牛客网
美团后端二面 3.26(已 OC)
介绍一下你的项目吧,你点餐系统的 jwt,redis ,Websocket 都是系统中干嘛的有做身份鉴权,就是不同用户不同权限的(没有,用户在用户端权限是一样的,商家在商家端也是)你 redis 的缓存策略用的什么先更新数据库,再删除缓存,那如果删除缓存失败了怎么办,会回滚吗- 回滚的话那 redis 挂掉了整个系统不就不可用了吗,你怎么解决
- 不用 websocket 怎么实现服务端消息推送
你遇到的项目的难点- 讲一下你的点餐系统的模块吧,说一下有哪些表,他们的关系是什么
介绍一下第二个项目吧讲一下缓存击穿和缓存穿透的区别,怎么解决介绍一下 redis+lua 抢优惠券怎么实现的- 怎么实现分布式锁
你是通过什么途径学习的数据库有哪些隔离级别,都是怎么实现的- 介绍一下 MVCC 的 ReadView
- 除了 MVCC 还用了什么实现的 (select for update)
- 介绍一下当前读是怎么加锁的
- 什么时候临建锁会退化为间隙锁或者记录锁
- 那什么时候不会退化呢
- 我要建立联合索引(a,b)怎么考虑哪个在前
- 怎么计算字段的区分度
- 怎么找慢查询的问题
- Explain 的结果里面有哪些字段判断是否走了索引
- 语句走了索引,还是比我预期的多查了好几条,你觉得这是什么原因造成的呢
- 介绍一下 JUC 可重入锁的原理(AQS)
- 介绍一下 ReentrantLock 和 CountDownLatch 的区别
- Spring 是如何解决循环依赖问题的
手撕:数组 2 长度 n+m,m 个有序元素,后面 n 个 0,数组 2 有 n 个有序元素,要求把数组 2 合并到数组 1 (想原地修改,做了半天没 A 出来,最后换了个方法,开了个新数组归并写出来的)
作者:SillyBoyy 链接:https://www.nowcoder.com/feed/main/detail/a0cd1f45ce4c4c4baafcc9a0618918d2?sourceSSR=users 来源:牛客网