面试题:Java 泛型擦除是什么?
Java中的泛型擦除(Generics Erasure)是Java编译器在处理泛型时采用的一种机制。这种机制主要源于Java的设计历史和向后兼容性的考虑。简单来说,泛型信息只存在于源代码级别,在编译成字节码时...
面试题:什么是 Java 中的 ABA 问题?
在Java中,ABA问题是出现在使用无锁算法(如CAS操作,Compare-And-Swap)时的一种潜在的竞争条件问题。 这个问题通常发生在多线程环境下,当一个线程尝试进行CAS操作时,它会检查某个值是否仍然...
面试题:MySQL 的覆盖索引是什么?
MySQL 的覆盖索引是什么? 覆盖索引(Covering Index) 是 MySQL 中一种优化技术,指查询所需的所有字段都包含在某个索引中,使得 MySQL 可以直接通过索引获取数据,而无需回表查询实际的...
面试题:为什么 Java 的垃圾收集器将堆分为老年代和新生代?
Java的垃圾收集器将堆分为老年代和新生代,主要是基于对象的生命周期特性来优化垃圾回收过程。 这种划分有助于提高垃圾回收的效率和性能,具体原因如下: 对象生命周期的不同:大多数对象在创建...
面试题:为什么有时候用 translate 来改变位置而不是定位?
这是一个关于 CSS 性能优化和渲染机制 的核心问题。使用 transform: translate() 而不是传统的 position(如 top/left)来改变元素位置,主要是出于性能和渲染效率的考虑。 下面详细解释原因: ...
面试题:React 中如何为非受控组件设置默认值?
在 React 中,为非受控组件(Uncontrolled Component)设置默认值,需要使用特定的属性,而不是受控组件中使用的 value 属性。 核心方法:使用 defaultValue 和 defaultChecked 由于非受控组件...
面试题:说说 Redisson 分布式锁的原理?
Redisson 是一个基于 Redis 的 Java 客户端,它封装了分布式锁的实现,解决了传统 SETNX 等方法的局限性。其核心原理围绕 原子性、安全性 和 自动续期 设计,以...
面试题:在 React Router 中如何获取历史对象?
在 React Router 中,“历史对象”(history object)用于导航和管理浏览器的历史记录栈。获取历史对象的方式随着 React Router 版本的演进而变化,尤其在 v5 和 v6 之间有重大差异。 以下是不...
面试题:怎么实现网页三栏布局?
三栏布局是前端开发中常见的经典布局模式,通常指左右两栏固定宽度,中间一栏自适应(圣杯布局或双飞翼布局)。以下是多种实现方式,从传统到现代,全面覆盖。 一、什么是三栏布局? 左侧栏:固...
面试题:为什么 JavaScript 中 0.1 + 0.2 !== 0.3,如何让其相等?
这是一个经典的 JavaScript 浮点数精度问题。 一、为什么 0.1 + 0.2 !== 0.3? 根本原因:二进制浮点数的精度限制 JavaScript 使用 IEEE 754 标准的 64 位双精度浮点数来表示数字。这种格式无法...











