面试题:什么是 React 中类组件和函数组件?它们有什么区别?
在 React 中,类组件(Class Component) 和 函数组件(Function Component) 是定义 UI 组件的两种主要方式。随着 React Hooks 的引入,函数组件的功能大大增强,逐渐成为主流。 一、基本定义 ...
面试题:请详细描述 MySQL 的 B+ 树中查询数据的全过程
MySQL 的 B+ 树 是 InnoDB 存储引擎实现索引的核心数据结构。查询数据的过程涉及从根节点逐层向下查找,最终在叶子节点定位目标数据。以下是基于 聚簇索引(主键索引) 和&...
面试题:Java 中 HashMap 的扩容机制是怎样的?
在 Java 中,HashMap 的扩容机制是为了在键值对数量增加时,动态调整数组容量以减少哈希冲突并保持高效的查询和插入性能。以下是其核心原理和流程的详细解析: 1. 扩容触发条件 当 Ha...
面试题:什么条件会触发 Java 的 young GC?
Young GC(也称为Minor GC),主要针对的是Java堆中的年轻代(Young Generation)进行垃圾回收。触发Young GC的条件主要包括以下几点: 1. Eden区空间不足 最常见的触发条件:当尝试在Eden区中...
面试题:Java 方法重载和方法重写之间的区别是什么?
在 Java 中,方法重载(Overloading)和方法重写(Overriding)是两种不同的机制,它们用于在类的设计中实现多态性。尽管两者都涉及方法的定义,但它们的目的、实现方式以及应用场景都有所不同...
面试题:MySQL 的乐观锁和悲观锁是什么?
在 MySQL 中,乐观锁和悲观锁是两种处理并发控制的方法,它们分别适用于不同的场景,并以不同的方式来保证数据的一致性和完整性。 悲观锁(Pessimistic Locking) 概念:悲观锁假设会发生并发冲...
面试题:什么是 Java 中的原子性、可见性和有序性?
在 Java 并发编程中,原子性(Atomicity)、可见性(Visibility)和有序性(Ordering) 是 Java 内存模型(Java Memory Model, 简称 JMM)中保障多线程程序正确执行的三大核心特性。它们分别解...
面试题:栈和队列在 Java 中的区别是什么?
栈(Stack)和队列(Queue)是两种常见的数据结构,它们在处理元素的添加和移除时遵循不同的原则。在Java中,这两种数据结构的区别主要体现在以下几个方面: 操作规则: 栈是一种后进先出(LIFO...
面试题:JavaScript 有哪些内置对象?
JavaScript 提供了一系列内置对象(Built-in Objects),它们由 ECMAScript 规范定义,在 JavaScript 引擎启动时自动创建,无需额外引入。这些对象为开发者提供了处理数据、执行操作和与环境交...
面试题:Java 中的 HashMap 和 Hashtable 有什么区别?
在 Java 中,HashMap 和 Hashtable 都是基于哈希表实现的集合类,用于存储键值对(key-value pairs)。尽管它们有相似之处,但在多个方面存在显著差异。以下是两者的主要区别: 1. 线程安全性 H...










