上月最新面过美团大众点评拿到 offer 的最新面经来了(技术三面 +HR)

前言

本篇题材来自我朋友的朋友,他在最近的社招中拿到美团的 Offer,整体思路和面试题目由面试本人提供

由于作者面试过程中高度紧张,本文中只列出了自己还记得的部分题目。

一面:

  • 自我介绍

  • HashMap,ConcurrentHashMap 与 LinkedHashMap 的区别

  • 如何在多线程环境下使用 Map,ConcurrentHashMap 原理,ConcurrentHashMap 如何加锁。

  • 多线程并发的同步实现,有两个方法,每个方法里有 a 部分代码和 b 部分代码,我要让两个线程分别执行两个方法,并且让他们运行完 a 部分代码再一起向下执行,如何实现。

  • TCP 连接中的三次握手和四次挥手,四次挥手的最后一个 ack 的作用是什么,为什么要 time wait,为什么是 2msl。

  • ReetrantLock 和 synchronized 的区别。

  • Java 有哪些悲观锁的实现?

  • Java 有哪些类实现了乐观锁?

  • java 里面的同步锁了解吗?Countdownlauch 和 Cylicbarrior 的区别,分别在什么应用场景下使用

  • JVM 的内存结构?哪些是共享的,哪些是线程私有的?Java 虚拟机栈里面存放的是什么?

  • 如何自己实现一个线程池让别人使用?

  • 哪些情况会触发 Java 的类加载?

  • 手写代码:快速排序、单例模式,化一个工厂和装饰者模式的 UML 类图

  • AOP 的实现原理?

  • Java 锁有哪几种?可重入锁和不可重入锁的区别?

  • Lock 和 synchronized 的区别?它们都是可重入锁吗?哪个效率更高?

二面:

  • 线程池有哪些参数?分别有什么用?如果任务数超过的核心线程数,会发生什么?阻塞队列大小是多少?

  • 数据库连接池介绍下,底层实现说下

  • hashset 底层实现,hashmap 的 put 操作过程

  • 说说 HaspMap 底层原理?再说说它跟 HaspTable 和 ConcurrentHashMap 他们之间的相同点和不同点?

  • 说说 B+树和 B 树的区别,优缺点等?

  • 算法题,对一个链表进行归并排序,链表可能有环

  • 怎么实现一个线程安全的计数器?

  • 原子类 AtomicInteger 实现原理是什么?和你设计的计数器优劣比较?CAS 怎么实现原子操作的?

  • Java 中的锁有什么?synchronized 与 Lock 的区别?公平锁和非公平底层怎么实现的?AQS 原理详细介绍一下?

  • JVM 中的内存区域划分,堆的分代,为什么分代, 垃圾回收算法,垃圾回收器

  • 如何实现进程间特定场景下的高效通信, 问了存储相关的问题。

  • MySQL 索引类型, 底层的数据结构

  • 你了解哪些收集器?CMS 和 G1。详细谈谈 G1 的优点

三面:

  • 自己项目中的总结的并发经验

  • 说说 MySQL 的锁并发?加锁的机制是什么?

  • 高并发场景下如何防止死锁,保证数据的一致性?

  • 集群和负载均衡的算法与实现?

  • 说说分库与分表设计?

  • 分库分表带来的分布式困境与对应之策有哪些?

  • Redis 和 Setnx 命令是如何实现分布式锁的?使用 Redis 怎么进行异步队列?会有什么缺点?

  • 缓存击穿的概念和解决方案?

  • Redis 的数据结构? 线程模型? Redis 的数据淘汰机制?

  • Redis 的数据一致性问题

  • MQ 底层原理的实现?

  • 阻塞队列不用 Java 提供的该怎么实现?

  • 讲讲负载均衡的原理?

  • 如何实现高并发环境下的削峰、限流?

HR 面(略)

总结

面试建议是,一定要自信,敢于表达,面试的时候我们对知识的掌握有时候很难面面俱到,把自己的思路说出来,而不是直接告诉面试官自己不懂,这也是可以加分的。

备战面试,刷题是必不可少的。小编这里也是拿到这位朋友备战面试的资料,其中包括一些面试题和视频 可以提供给需要的朋友参考。有需要的小伙伴,看——完整版答案——

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值