面试题:Java G1 相对于 CMS 有哪些进步的地方?
G1(Garbage First)垃圾收集器相较于CMS(Concurrent Mark-Sweep)在多个方面有所改进和进步,主要包括以下几个关键点: 1. 可预测的停顿时间 G1:设计目标之一是提供可预测的停顿时间。通过设...
面试题:Java 中的 young GC、old GC、full GC 和 mixed GC 的区别是什么?
在Java的垃圾回收机制中,young GC、old GC、full GC和mixed GC分别指不同的垃圾收集过程,它们针对堆内存的不同区域,并且有不同的触发条件和目标。以下是这些术语的具体含义及其区别: Young ...
面试题:分布式锁在未完成逻辑前过期怎么办?
在分布式锁的应用场景中,如果持有锁的客户端在完成其业务逻辑之前锁就已经过期了,这会导致其他竞争的客户端可能获取到同一把锁,从而引发并发问题。 这种情况通常被称为“锁丢失”问题。为了...
面试题:ThreadLocal 的缺点?
尽管 ThreadLocal 提供了线程本地存储的能力,使得每个线程可以拥有变量的一个独立初始化的副本,但它也存在一些缺点和潜在的问题: 1. 内存泄漏风险 类加载器相关的内存泄漏:如果 ThreadLocal...
面试题:在 Vue 组件中如何访问根实例?
在 Vue 应用中,根实例(Root Instance)通常指的是通过 new Vue()(Vue 2)或 createApp()(Vue 3)创建的最顶层的 Vue 应用实例。 在组件中访问根实例是一种不推荐的实践,因为它破坏了组件的...
面试题:在 Vue 组件中写 name 选项有什么作用?
在 Vue 组件中定义 name 选项是一个良好的实践,它虽然在大多数基础功能中不是必需的,但在多个关键场景下发挥着重要作用。 name 选项的主要作用 1. 递归组件(Recursive Components) 这是 nam...
面试题:Java 中的 IdentityHashMap 是什么?
IdentityHashMap 是 Java 中 Map 接口的一个特殊实现,位于 java.util 包中。与传统的 HashMap 不同,IdentityHashMap 在比较键是否相等时使用的是对象的引用(reference)而不是对象的内容,也...
面试题:Vue 中是如何使用 event 对象的?
在 Vue 中使用 event 对象(即原生 DOM 事件对象)有多种方式,可以根据不同的场景灵活处理。以下是详细的使用方法和注意事项: 一、在事件处理函数中自动接收 event 对象 当使用 v-on 绑定事件...
面试题:什么是 DOM 和 BOM?
DOM 和 BOM 是 JavaScript 操作浏览器环境的两个核心概念,它们共同构成了 Web 前端开发的基础。 1. DOM (Document Object Model - 文档对象模型) 定义:DOM 是 HTML 或 XML 文档的编程接口。它...
面试题:为什么 Java 的垃圾收集器将堆分为老年代和新生代?
Java的垃圾收集器将堆分为老年代和新生代,主要是基于对象的生命周期特性来优化垃圾回收过程。 这种划分有助于提高垃圾回收的效率和性能,具体原因如下: 对象生命周期的不同:大多数对象在创建...









