面试题:Redis 的持久化机制有哪些?
Redis 的持久化机制主要有以下三种方式: 1. RDB(Redis Database) 原理 RDB 是通过 快照(Snapshot) 的方式,将 Redis 内存中的数据在指定时间间隔内持久化到磁盘上,生成一个&nbs...
面试题:Redis 中如何保证缓存与数据库的数据一致性?
在使用 Redis 作为缓存层时,确保缓存与数据库之间数据的一致性是一个挑战。通常来说,完全避免不一致几乎是不可能的,但可以通过一些策略和技术来最小化这种不一致性。以下是几种常见的处理方...
面试题:如何解决 Redis 中的热点 key 问题?
解决 Redis 中的 热点 Key 问题(即某个 Key 被大量并发访问,导致 Redis 节点负载过高甚至崩溃)是高并发场景下的核心挑战之一。以下是常见的解决方案,结合理论与实际场景的分析: 1. 本...
面试题:如何在 React 中阻止事件的默认行为?
在 React 中阻止事件的默认行为,需要调用事件对象(SyntheticEvent)上的 preventDefault() 方法。不能使用 return false 的方式,因为这在 React 中无效。 ✅ 正确方法:使用 event.preventDe...
面试题:第一次加载 Vue 页面时会触发哪些生命周期钩子?
在第一次加载 Vue 页面时,会依次触发以下生命周期钩子(以 Vue 2 和 Vue 3 大体一致的流程为准): beforeCreate实例刚被创建,数据观测 (data observer) 和事件配置尚未开始,data、methods ...
面试题:为什么 React 不推荐直接修改 state?如果需要修改 state,应该如何操作?
在 React 中,直接修改 state(即 this.state)是被严格禁止的。React 不推荐这样做的原因以及正确的修改方式如下: 为什么不能直接修改 state? 绕过 React 的状态管理机制:React 的 state 不...
面试题:Java 中的 synchronized 轻量级锁是否会进行自旋?
在 Java 中,synchronized 的实现涉及到几种不同的锁状态,包括无锁状态、偏向锁、轻量级锁和重量级锁。这些状态之间的转换是根据运行时的并发情况动态调整的。 对于轻量级锁来说,它并不直接涉...
面试题:JavaScript 中 substring 和 substr 函数的区别是什么?
这是一个经典的 JavaScript 字符串操作面试题,考察对字符串截取方法的理解。 substring()、substr() 和 slice() 功能相似但有重要区别。 ✅ 核心区别总结 方法参数是否支持负数状态推荐度subst...
面试题:什么是 Java 的 Semaphore?
Java 中的 Semaphore 是 java.util.concurrent 包提供的一个资源访问控制工具类,用于限制同时访问的线程数量,从而实现对共享资源的并发控制。它是基于 AQS(AbstractQueuedSynchronizer) 实...
面试题:说说真实 DOM 和虚拟 DOM 的区别?它们的优缺点是什么?
这是一道非常经典的前端面试题,考察对核心渲染机制的理解。 下面从定义、区别、优缺点三个层面来拆解,并给出一个可以直接用于面试的参考答案。 一、核心定义 真实 DOM:浏览器提供的、代表HTM...








