java共193篇

面试题:Java 泛型擦除是什么?

Java中的泛型擦除(Generics Erasure)是Java编译器在处理泛型时采用的一种机制。这种机制主要源于Java的设计历史和向后兼容性的考虑。简单来说,泛型信息只存在于源代码级别,在编译成字节码时...
程序百科的头像-程序百科程序百科4个月前
4710

面试题:JDK 和 JRE 有什么区别?

JDK 和 JRE 是 Java 平台的两个主要组件,它们各自有着不同的用途和功能。以下是它们之间的主要区别: JDK(Java Development Kit) 定义:JDK 是 Java 开发工具包,是为开发人员提供的一个环境...
程序百科的头像-程序百科程序百科4个月前
5010

面试题:Java 中 ArrayList 和 LinkedList 有什么区别?

在 Java 中,ArrayList 和 LinkedList 都实现了 List 接口,但它们基于不同的数据结构实现,因此在性能、内存使用和适用场景方面存在显著差异。以下是它们的主要区别: 1. 数据结构基础 ArrayLi...
程序百科的头像-程序百科程序百科4个月前
5910

面试题:为什么 JDK 9 中将 String 的 char 数组改为 byte 数组?

在JDK 9中,String的内部表示从使用char[]数组改为使用byte[]数组,这一改变主要是为了优化内存使用和提高性能。 具体来说,之前的String实现使用的是char[]数组,每个字符占用2个字节(16位)...
程序百科的头像-程序百科程序百科4个月前
6310

面试题:什么是 Java 中的直接内存(堆外内存)?

在Java中,直接内存(也称为堆外内存)是指不位于JVM堆空间中的内存区域。它独立于Java堆之外,通常通过java.nio.ByteBuffer的allocateDirect方法或其他NIO工具类进行分配。直接内存允许数据存...
程序百科的头像-程序百科程序百科4个月前
4810

面试题:什么是 Java 的 Semaphore?

Java 中的 Semaphore 是 java.util.concurrent 包提供的一个资源访问控制工具类,用于限制同时访问的线程数量,从而实现对共享资源的并发控制。它是基于 AQS(AbstractQueuedSynchronizer) 实...
程序百科的头像-程序百科程序百科4个月前
2710

面试题:什么是 Java 的 SPI(Service Provider Interface)机制?

Java的SPI(Service Provider Interface)机制是一种服务发现机制,它提供了一种服务接口与具体实现解耦的方式,允许第三方为这些接口提供实现。简单来说,SPI是一种动态发现和加载服务提供者(...
程序百科的头像-程序百科程序百科4个月前
3310

面试题:Java 中 final、finally 和 finalize 各有什么区别?

在Java中,final、finally 和 finalize 是三个不同的概念,各自有不同的用途和意义。下面分别介绍它们的区别: final 用途:final 是一个关键字,可以用来修饰类、方法或变量。 当用于类时(如 ...
程序百科的头像-程序百科程序百科4个月前
5210

面试题:Java 中常见的垃圾收集器有哪些?

在Java中,垃圾收集器是Java虚拟机(JVM)的一部分,负责自动管理内存,回收不再使用的对象所占用的内存。 随着Java的发展,出现了多种不同的垃圾收集器,每种都有其特定的应用场景和优化目标。...
程序百科的头像-程序百科程序百科4个月前
2710

面试题:你了解 Java 的 ZGC(Z Garbage Collector)吗?

ZGC,全称Z Garbage Collector,是自Java 11引入的一种可扩展的低延迟垃圾收集器。它的设计目标主要是为了满足大堆内存(多TB级别)的需求,同时保持非常低的停顿时间(通常在几毫秒内),从而...
程序百科的头像-程序百科程序百科4个月前
3510