java共193篇

面试题:为什么 Netty 不使用 ThreadLocal 而是自定义了一个 FastThreadLocal ?

Netty 使用 FastThreadLocal 而不是标准的 Java ThreadLocal,主要是为了提高性能和优化内存使用。 虽然 ThreadLocal 提供了线程本地存储的能力,允许每个线程拥有其变量的一个独立初始化的副本...
程序百科的头像-程序百科程序百科8个月前
428

面试题:Java 中的 CMS 和 G1 垃圾收集器如何维持并发的正确性?

CMS(Concurrent Mark-Sweep)和 G1(Garbage First)垃圾收集器在Java中通过不同的机制来维持并发操作的正确性,即确保在应用程序线程与垃圾收集器线程同时运行时不会导致数据不一致或错误。 ...
程序百科的头像-程序百科程序百科8个月前
408

面试题:Java 并发库中提供了哪些线程池实现?它们有什么区别?

Java 并发库(java.util.concurrent 包)提供了多种线程池实现,这些实现通过 Executors 工厂类提供便捷的创建方法。以下是几种常见的线程池类型及其特点和适用场景: 1. FixedThreadPool 创建...
程序百科的头像-程序百科程序百科8个月前
398

面试题:什么是 Java 的 CountDownLatch?

Java 中的 CountDownLatch(倒计数锁存器)是 java.util.concurrent 包提供的一个同步工具类,用于协调多个线程之间的执行顺序。它的核心功能是允许一个或多个线程等待一组操作完成后再继续执行...
程序百科的头像-程序百科程序百科8个月前
458

面试题:你使用过哪些 JDK 提供的工具?

JDK(Java Development Kit)提供了多种工具来帮助开发、调试和监控Java应用程序。以下是一些常用的JDK自带工具: javac:Java编译器,用于将Java源代码编译为字节码文件(即.class文件)。 jav...
程序百科的头像-程序百科程序百科8个月前
448

面试题:Java 中的 InheritableThreadLocal 是什么?

InheritableThreadLocal 是 Java 中 ThreadLocal 类的一个子类,它提供了一种机制来在线程创建时将 ThreadLocal 变量的值从父线程传递给子线程。 这意味着当一个新的子线程被创建时,它可以继承...
程序百科的头像-程序百科程序百科8个月前
458

面试题:JVM 新生代垃圾回收如何避免全堆扫描?

新生代垃圾回收过程中避免全堆扫描的关键在于利用了对象分配的局部性和分代假设。以下是几个主要机制和技术,使得JVM在进行新生代(Young Generation)垃圾回收时能够高效地工作而无需对整个堆...
程序百科的头像-程序百科程序百科8个月前
518

面试题:什么是 Java 的 CAS(Compare-And-Swap)操作?

CAS(Compare-And-Swap) 是一种原子操作,用于实现无锁(lock-free)数据结构和算法。它在多线程编程中扮演着非常重要的角色,特别是在需要保证线程安全的情况下避免使用传统的锁机制带来的性...
程序百科的头像-程序百科程序百科8个月前
498

面试题:Java 中堆和栈的区别是什么?

在Java中,堆(Heap)和栈(Stack)是两种不同的内存区域,它们各自服务于不同的目的,并且有着显著的区别。以下是堆和栈的主要区别: 1. 内存分配方式 堆:堆是一个共享的内存区域,所有的对象...
程序百科的头像-程序百科程序百科8个月前
658

面试题:Java 中 Exception 和 Error 有什么区别?

在 Java 中,Exception 和 Error 都是 Throwable 类的直接子类,它们都用于表示程序运行期间发生的异常情况。尽管它们有相似之处,但各自代表了不同类型的异常状况,并且在处理方式上也有所区别...
程序百科的头像-程序百科程序百科8个月前
358