第一次写面经
下面的内容是录音之后导出文本然后由gpt生成的,大致包含了所有面试官提问的问题。
自我介绍
- 请先自我介绍一下。
- 介绍一下最近做的项目,这个项目是你自己一个人做的吗?
- 这个项目是在单机去跑的吗?有没有上线过?
技术难点
- 做这个项目主要的技术难点在哪?
- 秒杀逻辑的主要技术挑战是什么?
- 在集群模式下考虑使用分布式锁吗?
分布式锁与并发处理
- 构造的分布式锁具体指的是什么?
- 如何优化锁误删的问题?
- 在锁误删中加锁和解锁的操作是如何实现的?
- 在锁误删场景中,如果线程成功获取到锁,但该线程的业务逻辑执行时间超过锁的超时时间,如何处理?
- 线程在感知到锁快要超时的时候,怎么进行续期操作?
消息队列选择
- 为什么考虑使用 Redis 的 string 结构作为消息队列?
- 对其他的消息队列(如 RabbitMQ、Kafka)有什么了解?
缓存相关问题
- 什么是缓存穿透、缓存雪崩?
- 如何防止缓存雪崩?
- 解决缓存击穿的方法有哪些?
并发控制
- synchronized 和 lock 的区别是什么?
- 在单台机器部署的情况下,如何对同一个用户加锁以确保接口的线程安全?(类似于同一用户用不同设备去下单,也就是不同线程同一userId,如何保证这里的线程安全)(除了userId字符串常量池引用,还可以设定synchronized锁的对象是哪些来达到同样的效果)
- 如何获取用户 ID 对应的常量值以保证其唯一性?(intern方法)
编程实践
- 算法题LeetCode原题 复原ip地址,不允许定义全局变量,(因为时间不太够了,面试官就要求写出回溯方法的主体结构即可,然后解释以下函数中的参数什么含义)
面试反问
- 部门业务面向B端还是C端?面试环节有几轮?面试评价?)
面试官建议
- 在项目介绍时可以更深入一些,详细说明遇到的技术困难及解决方案。
- 讨论技术选型的原因,即为什么选择某种技术而不是其他的,并解释这些技术的原理和可能存在的问题。
#美团##牛客解忧铺##面经#