排序
面试题:Java 中堆和栈的区别是什么?
在Java中,堆(Heap)和栈(Stack)是两种不同的内存区域,它们各自服务于不同的目的,并且有着显著的区别。以下是堆和栈的主要区别: 1. 内存分配方式 堆:堆是一个共享的内存区域,所有的对象...
面试题:如何合理地设置 Java 线程池的线程数?
合理设置 Java 线程池的线程数是优化应用程序性能的关键步骤之一。这涉及到对任务类型的理解(I/O 密集型 vs CPU 密集型)、系统资源限制以及应用的具体需求。下面是一些指导原则和建议,帮助你...
面试题:Synchronized 和 ReentrantLock 有什么区别?
在 Java 中,Synchronized 和 ReentrantLock 都是用于实现线程同步的机制,但它们之间存在一些关键的区别。以下是两者的主要区别: 1. 实现方式 Synchronized:它是Java语言的关键字,是一种隐...
面试题:JVM 由哪些部分组成?
Java虚拟机(JVM)是一个抽象的计算模型,其实现可以由不同的供应商提供,但所有的实现都遵循Java虚拟机规范。一个典型的JVM主要包括以下几个关键组件: 类加载器子系统(Class Loader Subsyste...
面试题:Java 线程池内部任务出异常后,如何知道是哪个线程出了异常?
在 Java 中,当你使用线程池(如 ThreadPoolExecutor 或其更高级别的封装如 Executors.newFixedThreadPool() 等)执行任务时,如果任务内部抛出了未捕获的异常,默认情况下这个异常不会直接反馈...
面试题:什么是 Java 的 AOT(Ahead-Of-Time)?
Java的AOT(Ahead-Of-Time)编译是指在程序运行之前将Java字节码转换成本地机器代码的过程,与之相对的是JIT(Just-In-Time)编译,它是在程序运行时动态地进行编译。 AOT编译的主要目标是提高...
面试题:Java 中 Thread.sleep 和 Thread.yield 的区别?
Thread.sleep() 和 Thread.yield() 都是用于控制线程执行的静态方法,但它们的目的和行为有着明显的区别: Thread.sleep(long millis) 目的:使当前正在执行的线程暂停执行指定...
面试题:Java 中的 IdentityHashMap 是什么?
IdentityHashMap 是 Java 中 Map 接口的一个特殊实现,位于 java.util 包中。与传统的 HashMap 不同,IdentityHashMap 在比较键是否相等时使用的是对象的引用(reference)而不是对象的内容,也...
面试题:你了解 Java 中的读写锁吗?
是的,Java 中的读写锁(ReadWriteLock)是一种并发控制机制,它允许多个线程同时读取共享资源,但写操作必须独占锁。这种设计在“读多写少”的场景下能显著提高并发性能。以下是关于 Java 中读...
面试题:Java 中 final、finally 和 finalize 各有什么区别?
在Java中,final、finally 和 finalize 是三个不同的概念,各自有不同的用途和意义。下面分别介绍它们的区别: final 用途:final 是一个关键字,可以用来修饰类、方法或变量。 当用于类时(如 ...