排序
面试题:什么是 Java 中的锁自适应自旋?
在 Java 中,锁自适应自旋(Adaptive Spinning)是一种优化同步性能的技术,主要应用于 synchronized 关键字背后的重量级锁机制。 这一技术旨在减少线程因获取锁而进入阻塞状态的频率,从而提高...
面试题:什么是协程?Java 支持协程吗?
什么是协程? 协程(Coroutine) 是一种用户态的轻量级线程,它允许在特定的地方暂停执行并在稍后恢复执行。 与传统的线程相比,协程的切换由程序本身控制,而不是由操作系统内核管理。 这使得...
面试题:Java 中的强引用、软引用、弱引用和虚引用分别是什么?
在Java中,引用类型主要包括强引用(Strong Reference)、软引用(Soft Reference)、弱引用(Weak Reference)和虚引用(Phantom Reference)。每种引用类型都有其特定的用途和应用场景,下面...
面试题:BigDecimal 为什么能保证精度不丢失?
BigDecimal 是 Java 中用于高精度数值计算的类,特别适用于金融、科学计算等对精度要求非常高的场景。它之所以能保证精度不丢失,主要依赖于其底层的设计原理和实现机制。 ✅ 一、为什么浮点数...
面试题:你遇到过 ConcurrentModificationException 错误吗?它是如何产生的?
ConcurrentModificationException 是 Java 中常见的运行时异常之一,通常在不当修改集合(如 List、Set 或 Map)时抛出。这种错误特别容易在多线程环境下出现,但单线程程序也可能触发它。 如何...
面试题:Java 中的 wait、notify 和 notifyAll 方法有什么作用?
在Java中,wait()、notify() 和 notifyAll() 方法是用于线程间通信的关键方法,它们都定义在 Object 类中,并且必须与同步机制(如 synchronized 方法或代...
面试题:你使用过 Java 中的哪些阻塞队列?
在 Java 中,阻塞队列(BlockingQueue) 是 java.util.concurrent 包下的一个接口,它是线程安全、支持阻塞操作的队列,常用于生产者-消费者模型等并发场景。 我在项目中使用过以下几种常见的 ...
面试题:Java 的 CMS 垃圾回收流程是怎样的?
CMS(Concurrent Mark-Sweep)垃圾收集器是为了解决老年代垃圾回收问题而设计的一种低延迟的垃圾收集器。它的主要目标是在执行垃圾收集时尽量减少“Stop the World”事件的发生,从而降低应用的...
面试题:JVM 的内存区域是如何划分的?
VM(Java虚拟机)的内存区域主要划分为以下几个部分,每个部分都有其特定的用途和生命周期: 程序计数器(Program Counter Register): 每个线程都有一个独立的程序计数器,用于记录当前线程执...
面试题:Java 中 wait() 和 sleep() 的区别?
在Java中,wait()和sleep()都是用于控制线程执行的方法,但它们有着不同的用途和行为。理解它们之间的区别对于编写正确的并发代码至关重要。 wait() 所属类:wait()是Object类的一部分,这意味...