排序
面试题:Java 中静态方法和实例方法的区别是什么?
在Java中,静态方法和实例方法是两种不同类型的方法,它们在定义、调用方式以及使用场景上都有显著的区别。以下是它们之间的主要差异: 1. 定义与声明 静态方法:使用static关键字来声明。这意...
面试题:Java 面向对象编程与面向过程编程的区别是什么?
Java 面向对象编程(OOP, Object-Oriented Programming)与面向过程编程(Procedural Programming)代表了两种不同的编程范式,它们在程序设计的理念、结构以及解决问题的方式上有着显著的区别...
面试题:Java 中有哪些垃圾回收算法?
Java中的垃圾回收(GC)机制是自动管理内存的一个重要特性,它通过不同的算法来识别和回收不再使用的对象所占用的内存。以下是几种常见的垃圾回收算法: 标记-清除算法(Mark-Sweep): 这是最...
面试题:Java 中的 IdentityHashMap 是什么?
IdentityHashMap 是 Java 中 Map 接口的一个特殊实现,位于 java.util 包中。与传统的 HashMap 不同,IdentityHashMap 在比较键是否相等时使用的是对象的引用(reference)而不是对象的内容,也...
面试题:JVM 新生代垃圾回收如何避免全堆扫描?
新生代垃圾回收过程中避免全堆扫描的关键在于利用了对象分配的局部性和分代假设。以下是几个主要机制和技术,使得JVM在进行新生代(Young Generation)垃圾回收时能够高效地工作而无需对整个堆...
面试题:数组和链表在 Java 中的区别是什么?
数组和链表是两种基础的数据结构,在 Java 中它们有着不同的特性和使用场景。以下是数组和链表的主要区别: 1. 数据存储方式 数组:在内存中是连续存储的,这意味着每个元素都紧挨着前一个元素...
面试题:JVM 方法区是否会出现内存溢出?
是的,JVM的方法区也可能会出现内存溢出的情况。方法区主要用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码缓存等数据。 在不同的JVM实现和版本中,方法区的具体实现...
面试题:你遇到过 ConcurrentModificationException 错误吗?它是如何产生的?
ConcurrentModificationException 是 Java 中常见的运行时异常之一,通常在不当修改集合(如 List、Set 或 Map)时抛出。这种错误特别容易在多线程环境下出现,但单线程程序也可能触发它。 如何...
面试题:什么条件会触发 Java 的 young GC?
Young GC(也称为Minor GC),主要针对的是Java堆中的年轻代(Young Generation)进行垃圾回收。触发Young GC的条件主要包括以下几点: 1. Eden区空间不足 最常见的触发条件:当尝试在Eden区中...
面试题:Java 创建线程池有哪些方式?
在Java中,创建线程池主要通过 java.util.concurrent 包下的 Executors 工具类和直接实例化 ThreadPoolExecutor 或 ScheduledThreadPoolExecutor 来实现。以下是几种常见的创建线程池的方式: 1...
