排序
面试题:ThreadLocal 的缺点?
尽管 ThreadLocal 提供了线程本地存储的能力,使得每个线程可以拥有变量的一个独立初始化的副本,但它也存在一些缺点和潜在的问题: 1. 内存泄漏风险 类加载器相关的内存泄漏:如果 ThreadLocal...
面试题:为什么 Netty 不使用 ThreadLocal 而是自定义了一个 FastThreadLocal ?
Netty 使用 FastThreadLocal 而不是标准的 Java ThreadLocal,主要是为了提高性能和优化内存使用。 虽然 ThreadLocal 提供了线程本地存储的能力,允许每个线程拥有其变量的一个独立初始化的副本...
面试题:什么是 Java 的 TransmittableThreadLocal?
TransmittableThreadLocal 是阿里巴巴开源的 transmittable-thread-local 库中提供的一个类,它扩展了 Java 标准库中的 InheritableThreadLocal,旨在解决在使用线程池等会复用线程的技术时,父...
面试题:Java 中 Thread.sleep 和 Thread.yield 的区别?
Thread.sleep() 和 Thread.yield() 都是用于控制线程执行的静态方法,但它们的目的和行为有着明显的区别: Thread.sleep(long millis) 目的:使当前正在执行的线程暂停执行指定...
面试题:Java 中 Thread.sleep(0) 的作用是什么?
在Java中,Thread.sleep(0) 的使用实际上是为了让当前线程放弃剩余的时间片,并允许具有相同优先级的其他线程有机会运行。这被称为“线程礼让”,尽管它并不能保证这些其他线程会立即执行,因为...
面试题:Java 中的 wait、notify 和 notifyAll 方法有什么作用?
在Java中,wait()、notify() 和 notifyAll() 方法是用于线程间通信的关键方法,它们都定义在 Object 类中,并且必须与同步机制(如 synchronized 方法或代...
面试题:Java 中什么情况会导致死锁?如何避免?
在Java中,死锁是指两个或多个线程处于互相等待的状态,每个线程都在等待其他线程释放资源,从而导致所有涉及的线程都无法继续执行。这种情况通常发生在多线程环境下,当线程需要同时获取多个锁...
面试题:Java 中 volatile 关键字的作用是什么?
volatile 是 Java 中的一个关键字,用于声明变量可以在程序的其他部分被修改,尤其是在多线程环境下。它的主要作用是保证变量的可见性和禁止指令重排序优化,但不会提供原子性操作。下面详细解...
面试题:Java 中的 List 接口有哪些实现类?
Java中的 List 接口有多个实现类,每个实现类都有其特定的使用场景和特性。以下是一些常见的 List 实现类: ArrayList 基于动态数组的数据结构。 支持对元素的快速随机访问...
面试题:什么是 Java 中的 ABA 问题?
在Java中,ABA问题是出现在使用无锁算法(如CAS操作,Compare-And-Swap)时的一种潜在的竞争条件问题。 这个问题通常发生在多线程环境下,当一个线程尝试进行CAS操作时,它会检查某个值是否仍然...