二面
# 2024-05-6 美团二面
- 自我介绍
- 项目介绍,分为总体介绍、难点和亮点、收获,楼主的项目为魔改黑马点评,主要讲Redis的数据不一致解决方法和秒杀的高并发实现。面试官主要提问秒杀的实现、如何改进。
- 八股 (1)计网和操作系统了解吗,7层模型了解吗,讲讲DNS的过程 (2)了解ARP吗(不了解) (3)讲讲TCP和UDP的区别,给几个场景,选择其一并分析 (4)讲讲进程和线程的区别,说一下进程间通信的方式,线程的状态了解吗,给几个场景,分析线程的状态变化 (5)讲讲Redis为什么快
- 算法 lc129
- 闲聊
# 2024-04-23 美团优选后端二面
- 自我介绍
- 闲聊3min
- 手撕(实现atoi)
- 拷打项目(省略项目强相关问题):
- 系统支持横向扩展是什么意思?
- 为什么用Kafka实现横向扩展,用RPC通信不行吗?
- 平常都是怎么自学的?
- 平常会看什么网站吗?
- 最近有看什么书吗?
- 协程和线程有什么区别?
- 协程要用协程池管理吗?为什么?
- 你有在自己的项目里用过协程吗?(前情提要:我说我写过Kotlin和Go的项目)
- 为什么MySQL和PostgreSQL你都用了?
- 从MySQL迁移到PostgreSQL是出于什么考量的?
- Docker的NAMESPACE的概念讲一下(不记得了,面试官说这个有点偏运维了就算了)
- Java里面一次young gc大概的回收时间是多久?一分钟一般会有多少次?
- 简单讲一下JMM
- JMM中线程的本地缓存对应到物理机上是什么东西?
- 指令重排序大概有哪几种重排序?
- 为什么要有重排序?
- 内存屏障的实现大概是怎么做的?它是怎么干涉排序的?
- 一个对象有一个对象头,对象头的内容有什么?
- JVM压缩指针一般说的是什么?JVM是怎么实现的?
- 讲一下用Java的引用句柄访问对象真实数据的过程
- 讲一下happens before原则
- 讲一下操作系统的虚拟内存
- 操作系统中的硬链接和软链接的区别是什么
- 怎么在Linux上看一个文件有多少硬链接和软链接?
- 讲一下MySQL里的WAL机制
# 2024-4-1
- 项目拷打
- 学习途径
- JVM调参
- GC相关
- 手写单例(DCL、恶汉、懒汉、静态内部类、枚举)
# 2024-3-22
- 给定一个文本文件,计算得到文本文件中出现频次最高的十个单词(手写,考虑内存消耗,文本文件会很大)
- 如果是1000个文本文件,找出这1000个文本文件中出现频次最高的十个单词。 关键在于去重。因为无法预知不同文本中含有相同单词的情况,所以可以首先对单个文件进行统计,key为单词,value为次数。然后比如使用二十个文件来统计单词情况,将每个文本统计的key做hash,再mod20,分布在不同文件中,这样保证了不同文本中的单词不存在相同情况,再对单个文本词频进行统计。以此类推,进行去重 接着开始对词频取top10,可以使用诸如分治等,使用大顶堆这样的数据结构来做。