java共193篇

面试题:Java 是如何实现跨平台的?

Java实现跨平台的关键在于其“编写一次,到处运行”(Write Once, Run Anywhere)的设计理念。这一特性主要依赖于以下几个核心技术点: 1. Java虚拟机(JVM) 字节码与JVM:Java源代码首先被编...
程序百科的头像-程序百科程序百科4个月前
319

面试题: Java 中 ReentrantLock 的实现原理是什么?

ReentrantLock 是 Java 提供的一个显式锁实现,位于 java.util.concurrent.locks 包中。 它提供了与 synchronized 类似的同步功能,但相比 synchronized,它更加灵活,并提供了更多的特性,如公...
程序百科的头像-程序百科程序百科4个月前
317

面试题:常用的 JVM 配置参数有哪些?

JVM(Java虚拟机)提供了丰富的配置参数,用于调整其运行时行为以优化性能或解决特定问题。以下是一些常用的JVM配置参数: 堆内存设置 -Xms<size>:设置JVM启动时的初始堆大小。 -Xmx<siz...
程序百科的头像-程序百科程序百科4个月前
316

面试题: Synchronized 能不能禁止指令重排序?

在 Java 中,Synchronized 关键字主要用于确保线程安全,它通过提供可见性和原子性来保证共享资源的正确访问。 关于 Synchronized 是否能禁止指令重排序,我们需要从 Java 内存模型(JMM, Java ...
程序百科的头像-程序百科程序百科4个月前
309

面试题: ConcurrentHashMap 和 Hashtable 的区别是什么?

ConcurrentHashMap 和 Hashtable 都是 Java 中线程安全的哈希表实现,但它们在实现机制、性能以及使用场景方面存在显著差异。以下是它们的主要区别: 1. 实现方式和锁粒度 Hasht...
程序百科的头像-程序百科程序百科4个月前
306

面试题:在 Java 中主线程如何知晓创建的子线程是否执行成功?

在Java中,主线程想要知晓其创建的子线程是否执行成功,可以通过以下几种方式来实现: 1. 使用 Thread.join() 方法 join() 方法允许一个线程等待另一个线程完成。通过调用子线程...
程序百科的头像-程序百科程序百科4个月前
307

面试题:你使用过哪些 Java 并发工具类?

在 Java 并发编程中,我使用过以下常用的并发工具类(均属于 java.util.concurrent 包),它们各自适用于不同的并发控制和线程协作场景: ✅ 1. CountDownLatch(倒计数锁存器) 📌 使用场景: ...
程序百科的头像-程序百科程序百科4个月前
3014

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

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

面试题:Java 中的序列化和反序列化是什么?

在 Java 中,序列化和反序列化是用于将对象的状态转换为字节流(序列化),以及从字节流恢复对象的状态(反序列化)的过程。这一机制使得对象可以通过网络传输或保存到文件系统中,并在需要时重...
程序百科的头像-程序百科程序百科4个月前
297

面试题:什么是 Java 的 happens-before 规则?

在Java中,happens-before 规则是Java内存模型(JMM, Java Memory Model)的一部分,用于定义程序中操作之间的部分有序关系,确保多线程环境下的可见性和顺序性。 通过这些规则,程序员可以确定...
程序百科的头像-程序百科程序百科4个月前
2913