排序
面试题:BigDecimal 为什么能保证精度不丢失?
BigDecimal 是 Java 中用于高精度数值计算的类,特别适用于金融、科学计算等对精度要求非常高的场景。它之所以能保证精度不丢失,主要依赖于其底层的设计原理和实现机制。 ✅ 一、为什么浮点数...
面试题:Java 中 Thread.sleep(0) 的作用是什么?
在Java中,Thread.sleep(0) 的使用实际上是为了让当前线程放弃剩余的时间片,并允许具有相同优先级的其他线程有机会运行。这被称为“线程礼让”,尽管它并不能保证这些其他线程会立即执行,因为...
面试题:什么是 Java 中的 logging write barrier?
在Java中讨论的“write barrier”通常与垃圾回收(Garbage Collection, GC)机制相关,而不是直接与日志记录(logging)有关。一个write barrier是JVM为了支持某些类型的垃圾收集算法而实现的一...
面试题:说说 Java 中 HashMap 的原理?
Java 中的 HashMap 是一种基于哈希表实现的键值对(key-value)映射结构,它允许我们快速地根据键来存储和检索值。下面详细介绍 HashMap 的工作原理: 1. 基本概念 哈希表:HashMap 内部使用数...
面试题:Java 线程安全的集合有哪些?
在Java中,线程安全的集合类主要分为两类:传统线程安全集合和现代并发集合。以下是常见的线程安全集合及其特点: 1. 传统线程安全集合 这些集合通过 synchronized 关键字或全局锁实...
面试题:为什么 G1 垃圾收集器不维护年轻代到老年代的记忆集?
G1垃圾收集器的设计初衷是为了高效管理大堆内存,同时提供可预测的停顿时间。 为了实现这些目标,G1引入了分区(Region)的概念,并且在不同代之间使用记忆集(Remembered Set, RS)来跟踪跨代...
面试题:在 Java 中主线程如何知晓创建的子线程是否执行成功?
在Java中,主线程想要知晓其创建的子线程是否执行成功,可以通过以下几种方式来实现: 1. 使用 Thread.join() 方法 join() 方法允许一个线程等待另一个线程完成。通过调用子线程...
面试题:Java 泛型的作用是什么?
Java中的泛型(Generics)提供了一种让类型(类、接口)成为参数的机制,允许编写可以处理不同类型数据的代码而无需在具体使用时进行类型转换。以下是泛型的主要作用: 1. 提高类型安全性 泛型...
面试题:JDK 1.8 对 HashMap 除了红黑树还进行了哪些改动?
在 JDK 1.8 中,除了引入红黑树(用于优化链表过长时的查询效率)外,HashMap 还进行了多项重要改动,以下是主要的优化点: 1. 哈希函数的优化 改进计算方式:在 JDK 1.7 中,HashMap 的哈希值...
面试题:你了解时间轮(Time Wheel)吗?有哪些应用场景?
时间轮(Time Wheel)概述 时间轮是一种用于处理定时任务的高效数据结构,常被应用于需要大量定时器的场景中。 它模仿了时钟的工作原理,通过一个循环队列来存储定时任务,并以固定的时间间隔向...
