美团Java后端一面

1.自我介绍
2.Redis的基本数据类型有哪些
3.假设你系统有Redis做缓存,现在突然出现大量短链访问不存在的key,数据库压力暴增。你怎么办
4.那这个其实就是穿透对吧?那你打算怎么防?你布隆过滤器放哪一层?你布隆过滤器误判了咋办?误判了是不是得兜底查库?那数据库就又被打爆了呀
5. 一个热点数据刚好失效,被几万请求同时打到数据库,这时候你会锁住那个key吗?那锁的粒度是多大?Redis锁?本地锁?锁超时了咋办
6.假如Redis故障恢复时间有1分钟,1分钟内所有请求都穿透到数据库,怎么处理
7.说一下MySQL吧,MySQL 中有哪些存储引擎?InnoDB和MyISAM的区别?
9为什么InnoDB选择B+树作为索引?
10.数据库的第三范式?数据库的设计为什么要遵循三范式?
11.Spring中处理一个请求,会经过 Spring 的哪些模块去处理
12.Spring中的类在它启动之后,会执行哪些方法或者用到哪些注解
13.静态代码块和构造方法,哪个先执行?
14.构造方法和 Autowried 哪个先执行?
15.了解过PostContrust注解吗?这个注解和实现InitializingBean接口重写它的init方法,哪个先执行?
16.Java中HashMap和ConcurrentHashMap有什么区别
17.什么是一致性哈希?和正常的哈希有什么区别?
18.用过哪些设计模式?
19.线程的创建方式有哪些?
20.实现Runable接口创建线程和实现Callable接口创建线程有什么区别?哪一种接口可以拿到执行的结果?
21.一般线程池通过什么方式来创建?线程池有哪些核心参数?
22.谈谈线程池工作的流程
23.核心线程是一开始就创建了还是任务来了才创建?
24.假设一个场景,分别部署了A和B 两个服务,A服务需要调用 B服务,B服务的执行时间比较长。B服务执行完毕后,需要把结果返回给A服务,请你设计解决方法,如何让A和b进行一个交互?(三种方案)
25.假如你有两个很大的集合,每个集合本身的数据是不重复的,但是两个集合之间的数据是存在重复的。集合很大,加载到内存中会出现问题,请你从数据结构和算法的角度来考虑,怎么样去找到两个大集合的重复元素
26.手撕:(1)力扣 20.有效的括号;(2)手写单例模式
27.反问
全部评论
有实习吗 全问八股呀感觉
点赞 回复 分享
发布于 2025-10-14 00:08 重庆

相关推荐

2025-11-19 18:56
蚌埠坦克学院 golang
一、 系统架构与设计1.  技术栈与选型:◦   介绍你的架构(Go + Gin + GORM)。◦   MongoDB在架构中起什么作用?(与MySQL/Redis/本地缓存区分开)◦   为什么选择Gin框架?与其他Go框架相比,Gin的优缺点是什么?◦   还了解哪些其他Go框架?◦   技术栈选型的依据是什么?(是实习项目还是个人项目?基于什么考虑?)2.  缓存与数据一致性:◦   详细说明如何使用MySQL + Redis + 本地缓存实现高并发数据处理逻辑。◦   所有数据是否都持久化在MySQL中?◦   三级/两级缓存数据同步:▪   在并发读写下,如何保证缓存数据同步的可靠性?▪   举例说明:高并发下,对同一数据的读写流程。是先写Redis还是先写MySQL?数据如何同步?▪   如何保证Redis、MySQL以及本地缓存之间的数据一致性?◦   使用Pub/Sub实现缓存更新通知的具体机制是什么?◦   如何保证Pub/Sub的可靠性?3.  数据库:◦   慢查询定位:如何定位和解决慢查询问题?◦   索引:▪   联合索引(a, b, c)的最左前缀原则是什么?哪些查询能命中索引?哪些不能?4.  微服务与通信:◦   为什么使用gRPC?与HTTP相比,gRPC的优缺点是什么?◦   对于内部通信,gRPC调试比HTTP困难,为什么仍认为它是最优选择?◦   系统被拆分成几个微服务?它们之间是否全部使用gRPC通信?◦   如何对gRPC服务进行Debug?◦   在项目中,etcd的作用是什么?二、 部署与运维1.  Kubernetes (K8s):◦   服务是否部署在K8s集群上?◦   对K8s了解多少?能简要介绍吗?◦   是否有在K8s集群上实际部署服务的经验?(即使是单节点集群)◦   描述一下使用kubectl apply部署一个Pod的完整流转过程(从命令发出到Pod创建成功,涉及哪些K8s组件)。2.  Docker:◦   对Docker的操作熟悉吗?常用命令有哪些?◦   如何通过Dockerfile将一个二进制文件制作成镜像?Dockerfile的基本命令有哪些?三、 Go语言基础与核心概念1.  内存管理:◦   什么是内存逃逸?◦   内存逃逸会导致什么后果?◦   逃逸到堆上的对象会被GC回收吗?◦   能否举一个导致内存逃逸的代码例子?(例如,在函数中返回局部变量的地址)2.  并发编程:◦   goroutine 和线程的区别是什么?◦   如何在并发环境下安全地操作map?(引出sync.Map)◦   代码题:如何使用channel实现两个goroutine交替打印(一个打印数字,一个打印字母)?3.  常用特性:◦   defer 的使用场景?在一个包含文件打开、读取、处理的函数中,defer file.Close() 放在哪个位置最合适?为什么?◦   切片(Slice)与数组(Array)的区别?为什么Go要区分这两个概念?◦   切片使用append追加元素时的底层逻辑是怎样的?扩容机制是什么?(例如,扩容时如何分配新内存大小)四、 网络知识•   描述从浏览器输入www.baidu.com到显示出页面的完整流程(URL解析、DNS查询、TCP连接、HTTP请求、负载均衡、服务器处理、响应返回等)。五、 面试反馈与建议•   面试官最后指出,面试考察的是底层基础知识(如TCP/IP、Go语言核心),不能只停留在理论,必须能动手写代码解决实际问题。并举例说明了defer的使用和内存逃逸的代码实践的重要性。百度的问题感觉都不难,但是问到后面需要我进行写代码,业务代码基本没怎么写过,都是背的八股,练手的都是算法,确实是薄弱点,有点可惜了
点赞 评论 收藏
分享
评论
2
29
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务