java共193篇

面试题:Java 中的 DelayQueue 和 ScheduledThreadPool 有什么区别?

在 Java 中,DelayQueue 和 ScheduledThreadPoolExecutor 都是用于处理延迟任务的工具,但它们的设计目的、使用方式和内部实现都有显著的区别。下面将详细介绍这两者的不同之处。 DelayQueue De...
程序百科的头像-程序百科程序百科4个月前
285

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

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

面试题:什么是 Java 内存模型(JMM)?

Java内存模型(Java Memory Model,简称JMM)是Java语言规范中定义的一种抽象概念,它描述了程序中各个线程如何通过内存进行交互。 JMM的目标是在不同的硬件架构和操作系统之上提供一个一致的内...
程序百科的头像-程序百科程序百科4个月前
285

面试题:Java 中包装类型和基本类型的区别是什么?

在 Java 中,基本类型(Primitive Types)和包装类型(Wrapper Classes)都用于存储数值数据,但它们之间存在一些关键的区别。以下是基本类型与对应的包装类型的对比及其主要区别: 基本类型 定...
程序百科的头像-程序百科程序百科4个月前
279

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

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

面试题:什么是 Java 中的指令重排?

在Java中,指令重排(Instruction Reordering)是指编译器或处理器为了优化程序性能而对程序中的指令顺序进行调整的过程。 尽管这种重排通常不会改变单线程程序的行为,但在多线程环境下可能导...
程序百科的头像-程序百科程序百科4个月前
279

面试题:什么是 Java 的 Semaphore?

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

面试题:Java 中 ConcurrentHashMap 的 get 方法是否需要加锁?

在 Java 的 ConcurrentHashMap 中,get 方法的设计旨在保证高效的并发读操作。为了实现这一目标,get 方法在大多数情况下是不需要加锁的。这是通过使用一种称为“无锁算法”的机制来实现的,这...
程序百科的头像-程序百科程序百科4个月前
266

面试题:Java 中的深拷贝和浅拷贝有什么区别?

在Java中,对象拷贝通常分为浅拷贝(Shallow Copy)和深拷贝(Deep Copy)。它们之间的主要区别在于如何处理对象中的引用类型成员变量。 浅拷贝(Shallow Copy) 定义:浅拷贝创建了一个新的对...
程序百科的头像-程序百科程序百科4个月前
2614

面试题:Java 中的参数传递是按值还是按引用?

在 Java 中,参数传递机制可以概括为“按值传递”(Pass by Value)。这意味着当一个方法被调用时,实际参数的值会被复制给形式参数。然而,理解这一点的关键在于区分基本数据类型和对象引用如...
程序百科的头像-程序百科程序百科4个月前
2614