排序
面试题:什么是 Java 的 Semaphore?
Java 中的 Semaphore 是 java.util.concurrent 包提供的一个资源访问控制工具类,用于限制同时访问的线程数量,从而实现对共享资源的并发控制。它是基于 AQS(AbstractQueuedSynchronizer) 实...
面试题:Java 中的 List 接口有哪些实现类?
Java中的 List 接口有多个实现类,每个实现类都有其特定的使用场景和特性。以下是一些常见的 List 实现类: ArrayList 基于动态数组的数据结构。 支持对元素的快速随机访问...
面试题:JVM 垃圾回收时产生的 concurrent mode failure 的原因是什么?
在使用CMS(Concurrent Mark-Sweep)垃圾收集器时,'Concurrent Mode Failure'(并发模式失败)是一个重要的概念。这种失败通常发生在CMS尝试以并发模式执行老年代的垃圾回收时,但由于某些原因...
面试题:Java 是如何实现跨平台的?
Java实现跨平台的关键在于其“编写一次,到处运行”(Write Once, Run Anywhere)的设计理念。这一特性主要依赖于以下几个核心技术点: 1. Java虚拟机(JVM) 字节码与JVM:Java源代码首先被编...
面试题:Java 中 Exception 和 Error 有什么区别?
在 Java 中,Exception 和 Error 都是 Throwable 类的直接子类,它们都用于表示程序运行期间发生的异常情况。尽管它们有相似之处,但各自代表了不同类型的异常状况,并且在处理方式上也有所区别...
面试题:Java 中的序列化和反序列化是什么?
在 Java 中,序列化和反序列化是用于将对象的状态转换为字节流(序列化),以及从字节流恢复对象的状态(反序列化)的过程。这一机制使得对象可以通过网络传输或保存到文件系统中,并在需要时重...
面试题:Java 的类加载过程是怎样的?
Java 类的加载过程是由 Java 虚拟机(JVM)负责执行的,主要分为加载、链接(验证、准备、解析)、初始化这几个步骤。下面详细介绍每个阶段的内容: 1. 加载(Loading) 在加载阶段,JVM 需要完...
面试题:什么是 Java 中的迭代器(Iterator)?
在Java中,迭代器(Iterator)是一种设计模式的实现,用于遍历集合(如列表、集合或映射的键集等)中的元素,而无需暴露该集合的底层表示形式。迭代器提供了一种统一的方式来访问集合中的元素,...
面试题:Java 中 String、StringBuffer 和 StringBuilder 的区别是什么?
在 Java 中,String、StringBuffer 和 StringBuilder 都是用来处理字符串的类,但它们之间有一些关键的区别,主要体现在可变性、线程安全和性能方面。 String 不可变性:String 类的对象一旦创...
面试题:Java 中 ConcurrentHashMap 的 get 方法是否需要加锁?
在 Java 的 ConcurrentHashMap 中,get 方法的设计旨在保证高效的并发读操作。为了实现这一目标,get 方法在大多数情况下是不需要加锁的。这是通过使用一种称为“无锁算法”的机制来实现的,这...
