java共193篇

面试题:Volatile 与 Synchronized 的区别是什么?

在 Java 中,volatile 和 synchronized 都是用于确保线程之间的可见性和有序性,但它们的作用和使用场景有着明显的区别。以下是它们的主要区别: 1. 可见性 volatile:保证了变量的可见性,即当...
程序百科的头像-程序百科程序百科1年前
557

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

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

面试题:Java 的 CopyOnWriteArrayList 和 Collections.synchronizedList 有什么区别?分别有什么优缺点?

CopyOnWriteArrayList 和 Collections.synchronizedList() 都是 Java 中用于实现线程安全的列表操作的方式,但它们的工作机制、适用场景和性能特点有着显著的不同。以下是两者的...
程序百科的头像-程序百科程序百科1年前
567

面试题:Java 的 CMS 垃圾回收流程是怎样的?

CMS(Concurrent Mark-Sweep)垃圾收集器是为了解决老年代垃圾回收问题而设计的一种低延迟的垃圾收集器。它的主要目标是在执行垃圾收集时尽量减少“Stop the World”事件的发生,从而降低应用的...
程序百科的头像-程序百科程序百科1年前
667

面试题:什么是 Java 的 BigDecimal?

BigDecimal 是 Java 中用于表示任意精度的十进制数的一个类,它位于 java.math 包中。与基本数据类型如 float 和 double 相比,BigDecimal 提供了更高的精度和更精确的数值计算能力,尤其适用于...
程序百科的头像-程序百科程序百科1年前
837

面试题:什么是 Java 中的动态代理?

在 Java 中,动态代理是一种强大的机制,允许程序在运行时创建一个实现了一组指定接口的代理对象。这种机制主要用于在不修改原始类的情况下,为方法调用添加额外的行为,比如日志记录、事务管理...
程序百科的头像-程序百科程序百科1年前
517

面试题:说说 Java 的执行流程?

好的,我们来详细说说 Java 程序的执行流程。Java 程序的执行流程可以概括为以下几个关键步骤: 1. 编写源代码 (Writing Source Code) 操作:开发者使用文本编辑器或集成开发环境(IDE)编写 Ja...
程序百科的头像-程序百科程序百科1年前
447

面试题:JIT 编译后的代码存在哪?

JIT(Just-In-Time,即时编译)编译后的代码(即本地机器码)主要存储在 Java 虚拟机(JVM)的 Code Cache(代码缓存区) 中。 以下是更详细的解释: Code Cache(代码缓存区): 这是 JVM 堆外...
程序百科的头像-程序百科程序百科1年前
957

面试题:什么是三色标记算法?

三色标记算法(Three-Color Marking Algorithm)是垃圾收集器中用于追踪和管理对象可达性的一种方法。 它主要用于支持并发或增量式垃圾收集,允许垃圾收集过程与应用程序的执行并行进行而不必完...
程序百科的头像-程序百科程序百科1年前
716

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

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