美团Java后台开发面经

一面(47min)
  1. 自我介绍
  2. 简单的聊了聊项目和博客,比赛经历这些,讲了讲收获。
  3. 写sql语句(行转列)
  4. 索引了解吗,说一下b+树,有什么优点。
  5. 联合索引,怎么样会失效
  6. mysql缓存
  7. java基础知识(脑子不好使,忘记了)
  8. 线程池参数及执行流程,拒绝策略等等
  9. 算法:(先讲了实现思路,再写代码)
    1. 2个相交的链表,求交点。
    2. 2个相交的直线,求交点
  10. 开放题:
    打开美团app,如何找到离你100米的商家。(讲一下思路)
    11.反问
    (介绍了下他的部门是地图方向的,我脑壳一抽问了一下地图,然后他反手给我加了一道题)如何判断一个点在一个三角形内(讲讲思路)。
二面(1h18min)
  1. 自我介绍
  2. 深入聊项目
  3. 项目中的难点,背景,介绍一下
  4. 项目的数据库怎么设计的,有没有用到索引,哪些表用了哪些索引
  5. 多个用户下单,如何解决超卖。
  6. 用户下单的流程说一下,30分钟订单取消怎么实现的?,延迟队列底层实现,如何实现阻塞的,雪花算法。
  7. 支付模块怎么实现的?支付宝下单流程?
  8. 假设商品a库存是5,现在5个用户同时下单(还未支付),此时库存为0了,怎么样让第6个用户下单???(我黑人问号脸,求好心人解答)(我回答是采用预减库存方案,他恩了一声,我也不知道对不对)
  9. 数据库行锁,表锁介绍一下
  10. 事务隔离级别,每个级别存在的问题,举个例子说明脏读,不可重复读,幻读,
  11. 如何解决幻读,讲一下mvcc和范围锁
  12. volatile和synchronized的区别,java内存模型解释volatile如何保证可见性,禁止指令重排序讲一下。
  13. 了解哪些gc收集器,执行过程?gc roots? STW? 安全区域?等等(问的挺多的,记不清了)
  14. 算法
    给定一个升序数组,将它转变为一个二叉平衡搜索树,返回它的头节点。
    先给了[1,2,3,4,5,6,7,8],让我画出最后的树啥样,然后写代码。
  15. 反问:
    介绍了一下日常开发所使用的技术,rpc,soa,微服务,消息队列,log,打点,远程缓存,redis等等。(我听的一脸懵逼)
3面(1h18min)

1.自我介绍
2.聊项目(聊了20min,都是根据项目问的,这里就不写了)
3.ThreadLocal和inheritableThreadLocal
4. cms,g1垃圾回收器介绍
5. eden,surviver介绍
6.如何触发full gc,怎么让系统减少full gc
7. 秒杀系统设计方案
8. 在线抢答问题,怎么设计
9.缓存了解哪些,聊了本地缓存
10.聊实习
11. 算法:
给定n个非负整数,代表一个高程地图,每个整数表示一个挡板,挡板高度为整数值,挡板宽度均为1(即挡板都是紧挨的,之间没有缝隙)。
计算下雨之后,整体可以存储多少水。
示例:
输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]
输出:6
在这里插入图片描述

  1. 一个无限大的矩形,2个人有无限多的棋子,2个人轮流下棋,谁最后下完棋子,谁就获胜,设计一个策略让你获胜。(没想出来,面试官提示矩形中心,哇你确定这是博弈而不是智力题???)
    反问
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱吃鱼的ねこ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值