Java共437篇

面试题: Java 中的强引用、软引用、弱引用和虚引用分别是什么?

在 Java 中,引用类型决定了对象与垃圾回收器(GC)之间的交互方式。Java 提供了四种引用类型:强引用、软引用、弱引用和虚引用。它们的主要区别在于垃圾回收器对待这些引用的方式不同。 1. 强...
程序百科的头像-程序百科程序百科45天前
0438

面试题:你了解 Java 的逃逸分析吗?

是的,逃逸分析(Escape Analysis)是 Java 虚拟机(JVM)中的一种优化技术,用于分析对象的动态作用域,以确定对象是否可以在栈上分配,而不是在堆上分配。逃逸分析的目的是减少堆内存的压力和...
程序百科的头像-程序百科程序百科45天前
03512

面试题: 什么是 Java 的 AOT(Ahead-Of-Time)?

Java 的 AOT(Ahead-of-time)编译是一种在程序运行之前将代码编译成机器码的技术。与传统的 JIT(Just-In-Time)编译不同,JIT 是在程序运行时将字节码动态编译为机器码,而 AOT 则在程序执行...
程序百科的头像-程序百科程序百科45天前
03815

面试题:什么是 Java 中的原子性、可见性和有序性?

在 Java 并发编程中,原子性(Atomicity)、可见性(Visibility) 和 有序性(Ordering) 是三个核心概念,它们共同保证了多线程环境下程序的正确性。以下是它们的详细解释: 1....
程序百科的头像-程序百科程序百科45天前
04510

面试题: 你了解 Java 中的读写锁吗?

是的,Java 中的读写锁是一种特殊的锁机制,允许多个线程同时读取共享资源,但在写操作时需要独占锁。这种机制可以提高并发性能,特别是在读多写少的场景中。 Java 提供了 ReentrantReadWr...
程序百科的头像-程序百科程序百科45天前
04915

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

Java 并发库(java.util.concurrent)提供了多种线程池实现,主要通过 Executors 工具类来创建。这些线程池实现各有特点,适用于不同的场景。以下是常见的线程池实现及其区别: 1.&nb...
程序百科的头像-程序百科程序百科45天前
05114

面试题: Java 线程池核心线程数在运行过程中能修改吗?如何修改?

在 Java 的标准线程池实现中,核心线程数(corePoolSize)在运行过程中是不能直接修改的。ThreadPoolExecutor 的核心线程数是通过构造函数设置的,并且在运行过程中没有提供直接修改它的方...
程序百科的头像-程序百科程序百科45天前
02312

面试题:Java 线程池中 shutdown 与 shutdownNow 的区别是什么?

在 Java 线程池中,shutdown() 和 shutdownNow() 是用于关闭线程池的两个方法,但它们的行为和效果有显著区别。以下是它们的详细对比: 1. shutdown() 行为: 平缓地关闭线...
程序百科的头像-程序百科程序百科45天前
02811

面试题:Java 线程池内部任务出异常后,如何知道是哪个线程出了异常?

在 Java 线程池中,如果任务执行过程中抛出异常,默认情况下异常会被线程池捕获并记录,但不会直接告诉你具体是哪个线程出了问题。为了定位异常发生的线程和任务,可以通过以下几种方式来实现:...
程序百科的头像-程序百科程序百科45天前
02814

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

DelayQueue 和 ScheduledThreadPool 是 Java 中用于处理延迟任务的两种不同机制,尽管它们都与时间相关,但在使用场景和实现方式上有显著区别。 1. DelayQueue DelayQueue ...
程序百科的头像-程序百科程序百科45天前
04713