- 博客(27)
- 收藏
- 关注
原创 【Java并发】读写锁 ReadWriteLock
读写锁允许多个线程同时读取共享资源,但在写入时则需要独占访问。这种机制特别适用于读操作远多于写操作的场景。本文梳理了什么是读写锁、什么时候使用读写锁和怎么使用读写锁。
2024-12-31 09:00:00
1144
原创 【Java并发】CAS 机制详解和 ABA 问题的解决
CAS(Compare-And-Swap)是一种用于在多线程编程中实现原子操作的技术,它比较内存中的某个值是否为预期值,如果是,则更新为新值,否则不做修改。本文对CAS机制的概念、使用和优缺点进行了详细的总结,并对CAS机制常出现的ABA问题进行了分析和解决。
2024-12-30 09:00:00
1369
原创 【Java并发】内存模型 JMM 详解
Java内存模型(Java Memory Model,JMM)是Java虚拟机(JVM)定义的一种规范,用于描述多线程程序中变量(包括实例字段、静态字段和数组元素)如何在内存中存储和传递的规则。本文详细整理了JMM 的概念、原理和作用,以及JMM的核心happens-before和重要关键字volatile。
2024-12-29 09:00:00
917
原创 【Java并发】线程池的原理和使用
线程池是一种池化技术的思想,通过预先创建好多个线程,放在池中,这样可以在需要使用线程的时候直接获取,避免多次重复创建、销毁带来的开销。本文详细梳理了线程池的概念、特点、创建线程池的不同方法和自定义线程池的参数设置、以及线程池的底层执行原理。
2024-12-28 09:00:00
1699
原创 【Java并发】阻塞队列 BlockingQueue
Java 的阻塞队列(Blocking Queue)是一种特殊的队列,主要用来阻塞队列的插入和获取操作,当队列满了的时候插入操作会被阻塞,直到队列有空位。当队列为空的时候获取操作会被阻塞,直到队列有值。本文对阻塞队列的概念和使用上做了体系化的总结和解析。
2024-12-27 09:00:00
3161
原创 【Java并发】辅助类CountDownLatch、CyclicBarrier、Semaphore
本文总结了JUC常用三大辅助类CountDownLatch、CyclicBarrier、Semaphore的使用方法(含示例代码和方法解析)。
2024-12-25 09:00:00
3068
原创 【Java并发】使用synchroinzed和lock锁实现线程通信
线程通信指的是在多线程环境中,线程之间通过某种方式交换信息或协调它们的行为。等待/通知机制是线程通信的一种方式,而synchroinzed和lock是两个常用于实现等待/通知机制的具体方法。
2024-12-24 09:00:00
892
原创 【Java并发】Lock锁详解
JUC提供了比关键字更灵活、更强大的锁机制,其中Lock接口及其实现类是JUC中锁机制的核心。本文总结了Lock锁三个实现类(ReentrantLock、ReentrantReadWriteLock和StampedLock)的概念、用法和特点。
2024-12-23 12:14:00
1878
原创 【Java并发】synchronized锁详解
在Java中,synchronized关键字是一种同步机制,用于控制多个线程对共享资源的访问,以保证在任意时刻只有一个线程可以执行特定的代码段。本文总结了synchronized的概念、用法、锁升级和特点。
2024-12-22 13:47:11
1465
原创 【Java并发】创建和使用线程常用方法总结
线程是操作系统中的基本执行单元(能够直接执行的最小代码块),它是进程中的⼀个实体,是CPU调度和分派的基本单位。本文总结了java中关于线程的一些基本知识点,包括创建和使用线程常用方法。
2024-12-21 21:33:46
1220
原创 Java集合 HashMap 原理解读(含源码解析)
HashMap是Java中基于哈希表实现的Map接口的一个非同步实现类,是以key-value存储形式存在,即主要用来存放键值对。本文系统性梳理和总结了该集合类的几乎所有知识点,进行了源码级的解读。
2024-12-17 20:38:16
1239
原创 Springboot项目基于RxJava + SSE流式调用AI
RxJava 是一个基于事件驱动的、利用可观测序列来实现异步编程的类库,是响应式编程在 Java 语言上的实现;SSE的单向通信、长时间链接、自动重连等特点天然适合对话AI的场景。.本文分享了Springboot项目如何使用RxJava + SSE流式调用AI,并提供了通用流程和模板。
2024-12-07 21:25:17
985
原创 使用Stream流过滤List常用方法总结
Stream流是Java 8引入的一种数据处理抽象,它允许以声明式方式对集合进行操作。Stream流不是数据结构,而是一种操作集合的高级迭代器。它支持链式调用,使得多个操作可以串联成一个处理流水线。filter:基于条件筛选元素,不改变元素类型或数量。map:转换元素,每个输入元素映射为一个输出元素,不改变元素数量。flatMap:转换元素并将结果展平,每个输入元素可以映射为多个输出元素,改变元素数量。执行操作,对流中的每个元素应用给定的函数,不返回值,主要用于产生副作用。
2024-12-05 19:14:16
1794
原创 Springboot封装通用AI模块实现平台智能化(封装和使用AI详细教程)
本文详细讲述了如何封装通用AI模块(以智谱AI为例),提供了设计Prompt的常用技巧、和调用AI赋能项目的详细流程和具体代码实现。
2024-12-04 09:00:00
3260
1
原创 Springboot使用策略模式和自定义注解实现多种判题策略切换
Springboot使用策略模式和自定义注解实现了多种判题策略的声明式切换,简洁美观,符合开闭原则,扩展性强。
2024-12-03 15:19:12
650
原创 使用EasyExcel实现excel文件导入导出(附实战源码)
EasyExcel是一个由阿里巴巴开源的Java库,专注于处理大数据量的Excel文件读写操作。它以高性能、低内存占用和简单易用著称,特别适合处理大规模数据。EasyExcel通过异步处理和NIO技术优化了读写性能,同时提供了丰富的API和注解支持,使得数据导入导出变得简单快捷。
2024-12-02 11:25:14
1098
1
原创 使用布隆过滤器解决缓存穿透问题(超详细原理解读)
布隆过滤器(Bloom Filter)是一种解决缓存穿透的常用方法,本文介绍了缓存穿透是什么、怎么用布隆过滤器解决,并对布隆过滤器原理做了深入解读,并提供了具体代码实现。
2024-11-25 16:53:16
1738
3
原创 RedisTemplate和Redisson的区别和使用总结
RedisTemplate和Redisson都是操作Redis的Java客户端库。RedisTemplate更适合于简单的Redis操作,比如简单缓存、简单消息队列;而Redisson则提供了更高级的功能,比如分布式系统、集群和哨兵模式、RxJava集成。
2024-11-24 15:37:00
1467
1
原创 Springboot后端基础模板(实现了简单的用户注册、登录和管理员管理用户功能)
总结了一份Springboot后端模板 ,实现了用户注册、登录、管理员查询修改用户等基础功能。
2024-10-18 14:43:13
1502
3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人