java共193篇

面试题:Java 中的访问修饰符有哪些?

在Java中,访问修饰符用于定义类、方法、变量以及构造函数的访问级别,控制它们是否可以被其他代码访问。Java提供了四种主要的访问修饰符,按照从最严格到最宽松的顺序分别是: private(私有的...
程序百科的头像-程序百科程序百科6个月前
3914

面试题:JVM 新生代垃圾回收如何避免全堆扫描?

新生代垃圾回收过程中避免全堆扫描的关键在于利用了对象分配的局部性和分代假设。以下是几个主要机制和技术,使得JVM在进行新生代(Young Generation)垃圾回收时能够高效地工作而无需对整个堆...
程序百科的头像-程序百科程序百科6个月前
398

面试题:什么是协程?Java 支持协程吗?

什么是协程? 协程(Coroutine) 是一种用户态的轻量级线程,它允许在特定的地方暂停执行并在稍后恢复执行。 与传统的线程相比,协程的切换由程序本身控制,而不是由操作系统内核管理。 这使得...
程序百科的头像-程序百科程序百科6个月前
395

面试题:当 Java 的 synchronized 升级到重量级锁后,所有线程都释放锁了,此时它还是重量级锁吗?

当一个 Java 对象的锁通过 synchronized 升级到重量级锁之后,即使所有线程都释放了这个锁,该对象的锁仍然保持为重量级锁的状态。 这是因为锁膨胀(Lock Escalation)在 JVM 中是单向的,一旦...
程序百科的头像-程序百科程序百科6个月前
385

面试题:说说 Java 中 HashMap 的原理?

Java 中的 HashMap 是一种基于哈希表实现的键值对(key-value)映射结构,它允许我们快速地根据键来存储和检索值。下面详细介绍 HashMap 的工作原理: 1. 基本概念 哈希表:HashMap 内部使用数...
程序百科的头像-程序百科程序百科6个月前
3814

面试题:Java 中的 synchronized 轻量级锁是否会进行自旋?

在 Java 中,synchronized 的实现涉及到几种不同的锁状态,包括无锁状态、偏向锁、轻量级锁和重量级锁。这些状态之间的转换是根据运行时的并发情况动态调整的。 对于轻量级锁来说,它并不直接涉...
程序百科的头像-程序百科程序百科6个月前
3811

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

Java 并发库(java.util.concurrent 包)提供了多种线程池实现,这些实现通过 Executors 工厂类提供便捷的创建方法。以下是几种常见的线程池类型及其特点和适用场景: 1. FixedThreadPool 创建...
程序百科的头像-程序百科程序百科6个月前
388

面试题:Java 中如何判断对象是否是垃圾?不同实现方式有何区别?

在Java中,判断对象是否为垃圾(即不再被使用的对象)主要是通过垃圾收集器来完成的。垃圾收集器会自动追踪哪些对象是可达的,并回收那些不可达的对象所占用的内存空间。 判断对象是否为垃圾的...
程序百科的头像-程序百科程序百科6个月前
3811

面试题:你了解时间轮(Time Wheel)吗?有哪些应用场景?

时间轮(Time Wheel)概述 时间轮是一种用于处理定时任务的高效数据结构,常被应用于需要大量定时器的场景中。 它模仿了时钟的工作原理,通过一个循环队列来存储定时任务,并以固定的时间间隔向...
程序百科的头像-程序百科程序百科6个月前
3813

面试题:什么是 Java 中的锁自适应自旋?

在 Java 中,锁自适应自旋(Adaptive Spinning)是一种优化同步性能的技术,主要应用于 synchronized 关键字背后的重量级锁机制。 这一技术旨在减少线程因获取锁而进入阻塞状态的频率,从而提高...
程序百科的头像-程序百科程序百科6个月前
3811