java共193篇

面试题:什么是 Java 的 Integer 缓存池?

Java中的Integer缓存池是指在JVM启动时预先创建的一系列Integer对象,这些对象代表了一定范围内的整数值。这一机制是为了提高性能和减少内存使用而设计的。具体来说,在Integer类中有一个名为In...
程序百科的头像-程序百科程序百科1年前
6811

面试题:Java G1 相对于 CMS 有哪些进步的地方?

G1(Garbage First)垃圾收集器相较于CMS(Concurrent Mark-Sweep)在多个方面有所改进和进步,主要包括以下几个关键点: 1. 可预测的停顿时间 G1:设计目标之一是提供可预测的停顿时间。通过设...
程序百科的头像-程序百科程序百科1年前
6811

面试题:Java 创建线程池有哪些方式?

在Java中,创建线程池主要通过 java.util.concurrent 包下的 Executors 工具类和直接实例化 ThreadPoolExecutor 或 ScheduledThreadPoolExecutor 来实现。以下是几种常见的创建线程池的方式: 1...
程序百科的头像-程序百科程序百科1年前
687

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

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

面试题:JVM 有那几种情况会产生 OOM(内存溢出)?

Java虚拟机(JVM)在运行过程中可能会遇到多种原因导致的内存溢出(OutOfMemoryError,简称OOM)。以下是几种常见的OOM情况及其产生原因: Java堆空间不足(Java heap space): 当创建对象时,...
程序百科的头像-程序百科程序百科1年前
6715

面试题:Java 方法重载和方法重写之间的区别是什么?

在 Java 中,方法重载(Overloading)和方法重写(Overriding)是两种不同的机制,它们用于在类的设计中实现多态性。尽管两者都涉及方法的定义,但它们的目的、实现方式以及应用场景都有所不同...
程序百科的头像-程序百科程序百科1年前
6710

面试题:为什么 Java 不支持多重继承?

Java 设计时决定不支持多重继承,主要是为了避免由多重继承带来的复杂性和潜在的问题。虽然多重继承在某些情况下看起来很有吸引力,因为它允许一个类从多个基类继承方法和字段,但它也引入了一...
程序百科的头像-程序百科程序百科1年前
676

面试题:什么是 Java 的 CountDownLatch?

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

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

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

面试题:为什么 Java 中某些新生代和老年代的垃圾收集器不能组合使用?比如 ParNew 和 Parallel Old

在Java中,某些新生代和老年代的垃圾收集器不能组合使用的原因主要在于它们的设计理念、工作方式以及相互之间的兼容性问题。 以ParNew(并行的新生成代收集器)和Parallel Old(并行的老年代收...
程序百科的头像-程序百科程序百科1年前
666