11 2024 档案
摘要:在 Spring Boot 中,使用 Swagger 2 可以非常方便地构建和测试 RESTful APIs。Swagger 提供了交互式的 API 文档页面,使开发者和用户能够直观地了解和使用 API。 以下是如何在 Spring Boot 中集成 Swagger 2 的详细步骤。 1. 添加 M
阅读全文
摘要:过滤器的实际用途 过滤器主要用于拦截和处理 HTTP 请求和响应。它在 Web 开发中有许多实际用途,以下是一些常见场景和源码例子: 1. 安全性 用途: 检查用户是否登录(身份认证)。 验证用户的权限(权限校验)。 防范常见的安全攻击(如 SQL 注入、XSS)。 示例代码:验证用户是否登录 @W
阅读全文
摘要:ArrayBlockingQueue 概述 ArrayBlockingQueue 是 Java 中 java.util.concurrent 包下的一个阻塞队列实现,底层基于数组,是线程安全的。它是一个 有界队列,需要在创建时指定容量大小。此类的主要特性包括: 线程安全: 使用 独占锁(Reentr
阅读全文
摘要:公平锁和非公平锁是多线程编程中对锁获取策略的两种不同实现,主要区别在于锁对等待线程的调度方式。 公平锁 公平锁(Fair Lock)遵循 先来先服务 的原则,线程按照请求锁的顺序依次获取锁。 特点 排队机制: 线程请求锁时,如果锁被占用,会进入一个等待队列。 当锁被释放时,队列中等待最久的线程优先获
阅读全文
摘要:在 Java 中,实现线程安全的单例模式有多种方式。以下是几种常用的线程安全单例模式实现: 1. 饿汉式(线程安全,类加载时初始化) 特点:简单且线程安全,但如果实例过于占用资源且程序可能不使用它,会造成内存浪费。 public class Singleton { private static fi
阅读全文
摘要:在多线程编程中,理解线程的 原子性、可见性 和 有序性 是构建正确并发程序的基础。以下是它们的详细解释: 1. 原子性 (Atomicity) 定义 原子性指的是操作不可被中断,要么全部执行完成,要么完全不执行。 特性 原子性操作在执行时不会被其他线程干扰。 如果多个线程同时访问共享资源,原子性可以
阅读全文
摘要:在多线程编程中,锁机制是确保数据一致性和线程安全的关键技术。悲观锁和乐观锁是两种常见的锁机制,它们在不同的场景下有着各自的优势和适用范围。 悲观锁和乐观锁的概念 悲观锁(Pessimistic Locking)假设在并发环境中会发生冲突,因此在访问共享资源时总是先加锁,确保在事务期间没有其他线程可以
阅读全文
摘要:wait() 方法与 await() 方法的区别 这两种方法都与线程或异步任务的协调有关,但它们用于不同的场景,并且行为和语法都不相同。 1. wait() 方法 定义与场景 所属:java.lang.Object 类。 用途:用于线程间的通信,通常与 notify() 或 notifyAll()
阅读全文