排序
面试题:解释为什么 Java 里没有全局变量 ?
Java 中没有传统意义上的“全局变量”,这是由 Java 的面向对象设计和语言特性决定的。以下是主要原因: 1. 面向对象的设计原则 Java 是一门纯粹的面向对象编程语言,强调封装性和模块化。...
面试题:简述ConcurrentHashMap 和 Hashtable 的区别 ?
ConcurrentHashMap 和 Hashtable 都是 Java 中线程安全的键值对集合,但它们在实现方式、性能和使用场景上有显著区别。以下是两者的主要区别: 1. 锁的粒度 Hashtable: 使...
面试题:什么是 Java 的 CyclicBarrier?
CyclicBarrier 是 Java 并发包 (java.util.concurrent) 中的一个同步工具类,用于让一组线程互相等待,直到所有线程都到达某个屏障点(Barrier Point)后再继续执行。它可以用于多线程任务...
面试题:Spring 中的 FactoryBean 是什么?
FactoryBean 是 Spring 框架中的一个接口,用于创建复杂的 Bean 实例。它提供了一种灵活的方式来定义 Bean 的创建逻辑,而不是直接通过构造函数或工厂方法创建 Bean。FactoryBean 的...
面试题:Dubbo 和 Spring Cloud Gateway 有什么区别?
Dubbo 和 Spring Cloud Gateway 是两个不同的技术组件,分别用于不同的场景和目的。以下是它们的主要区别: 1. 定位和用途 Dubbo: Dubbo 是一个高性能的 RPC(远程过程调用)框架,主要...
面试题:单体应用、SOA、微服务架构有什么区别?
单体应用、SOA(面向服务架构) 和 微服务架构 是三种常见的软件架构风格,每种架构都有其特点和适用场景。以下是它们的详细对比: 1. 单体应用(Monolithic Application)...
面试题:RabbitMQ 的消息确认机制是如何工作的?
RabbitMQ 的 消息确认机制(Message Acknowledgements) 是一种确保消息被消费者成功处理的机制。通过消息确认机制,RabbitMQ 可以知道消息是否已经被消费者正确处理,从而决定是否将...
面试题:在 Java 中主线程如何知晓创建的子线程是否执行成功?
在 Java 中,主线程可以通过多种方式知晓创建的子线程是否执行成功。以下是几种常见的实现方式: 1. 使用 Thread.join() 方法 作用:主线程调用子线程的 join() 方法,等待子...
面试题:Java 线程池内部任务出异常后,如何知道是哪个线程出了异常?
在 Java 线程池中,如果任务执行过程中抛出异常,默认情况下异常会被线程池捕获并记录,但不会直接告诉你具体是哪个线程出了问题。为了定位异常发生的线程和任务,可以通过以下几种方式来实现:...
面试题:为什么 Java 的垃圾收集器将堆分为老年代和新生代?
Java 的垃圾收集器将堆内存分为 老年代(Old Generation) 和 新生代(Young Generation),主要是基于以下两个核心观察和假设: 1. 弱分代假设(Weak Generational Hypoth...