- 博客(30)
- 收藏
- 关注
原创 分布式锁实现
在 Spring Boot 项目中,实现分布式锁可以通过多种方式,常见的有使用 Redis、数据库等。以下是通过 Redis 和数据库两种方式来实现分布式锁的示例。
2024-09-24 10:26:54
443
原创 JAVA继承和多态
继承是面向对象编程中的一种机制,它允许一个类(子类)继承另一个类(父类)的属性和方法。通过继承,子类可以复用父类的代码,同时还可以扩展或修改父类的行为。1、在子类中重写父类的方法时,确保方法名、参数列表和返回类型与父类方法一致。否则,子类中的方法不会真正重写父类的方法,而是创建了一个新的方法。1、子类的构造函数在执行时,首先会调用父类的构造函数。因此,确保父类的构造函数完成后再初始化子类的特有属性。修饰符允许子类访问父类的成员,但不能被其他类访问。:在子类中重写父类的方法,以实现子类特有的行为。
2024-09-06 15:38:44
536
原创 Redis持久化和使用中相关问题
缓存穿透指的是查询一个缓存中不存在的数据,且该数据在数据库中也不存在。这会导致每次请求都直接访问数据库,绕过缓存,从而对数据库造成压力。
2024-08-31 15:32:22
809
原创 RocketMQ
RocketMQ 是一款功能强大、灵活的分布式消息队列系统,支持高性能、高可靠性和高可用性。它在处理大规模消息传递和分布式系统集成中表现出色,适用于各种应用场景。
2024-08-21 17:32:49
1082
原创 spring事务
声明式事务管理使用注解或 XML 配置,将事务管理的关注点从业务逻辑中分离出来,更加简洁易用。编程式事务管理允许在代码中显式地控制事务边界,适用于需要动态控制事务的场景,但增加了代码的复杂性。
2024-08-19 17:10:06
757
1
原创 Docker学习
Docker 是一个开源平台,用于开发、传输和运行应用程序。它利用容器化技术,将应用程序及其所有依赖项打包到一个标准化的单元(即容器)中,确保在任何环境中都能一致地运行。以下是 Docker 的详细介绍以及常用命令的说明。
2024-08-16 15:48:39
855
原创 Vue组件之间的通信
Props 和 Events:通过父组件传递 props 给子组件,子组件使用$emit发送事件到父组件。Event Bus:使用一个中央事件总线来跨组件通信。Vuex:使用 Vuex 进行全局状态管理,以便在任何组件间共享状态。Provide / Inject:祖先组件使用provide传递数据,后代组件通过inject接收数据。$refs:父组件通过ref获取子组件实例,直接调用其方法或访问属性。Scoped Slots:使用插槽在父组件中传递数据到子组件,允许子组件根据传递的
2024-08-09 17:37:35
813
原创 AOP详解
AOP 是一种编程范式,用于将横切关注点从应用的核心业务逻辑中分离出来。横切关注点包括日志记录、性能统计、安全控制等与核心业务逻辑无关但又普遍存在的功能。通过AOP,可以将这些横切关注点模块化,提高代码的重用性、可维护性和可扩展性。AOP的核心概念是切面(Aspect),切面是横切关注点的模块化实现。切面通过特定的方式与应用的核心逻辑进行交互,通常通过注入的方式在代码运行时织入(weave)到核心逻辑中。
2024-08-08 14:37:04
1370
原创 MyBatis常用的XML标签
这些是 MyBatis 中常用的 XML 标签,通过它们可以灵活地配置 SQL 查询、映射关系和条件逻辑,完成数据库操作。: 用于定义结果集与 Java 对象之间的映射关系,可以定义复杂的映射关系。: 用于定义 SQL 片段,可以在多个 SQL 语句中重复使用。: 用于执行查询操作的标签,可以获取一条记录或多条记录。: 用于执行插入操作的标签,将数据插入到数据库中。: 用于执行更新操作的标签,更新数据库中的数据。: 用于执行删除操作的标签,从数据库中删除数据。取代,不再推荐使用。
2024-08-06 16:41:53
1416
原创 JDBC入门和使用
JDBC API 提供了一种标准方法,使得Java应用程序可以通过SQL访问数据库。它包含两个核心部分:1、JDBC API:定义了Java程序如何访问数据库的接口。2、:实现了JDBC API,每个数据库厂商都需要提供自己的JDBC驱动程序来实现这些接口。
2024-08-01 11:12:24
1068
原创 线程池基本原理
线程池是一种管理和复用线程的机制,它在多线程编程中被广泛使用,主要目的是提高线程的利用率和性能,减少线程创建和销毁的开销。线程池通过预先创建一定数量的线程,并维护一个任务队列,有效地处理多个任务。
2024-07-30 17:26:32
1014
原创 AQS解析及应用
AQS是 Java 并发包中一个重要的框架,用于实现同步器,如锁和同步器等。它提供了一种基于 FIFO 等待队列的机制,帮助实现各种并发控制组件。
2024-07-29 22:01:52
810
原创 悲观锁和乐观锁详解
乐观锁和悲观锁是并发控制的一种机制,用于多线程或多进程环境下对共享资源的访问管理,以防止数据不一致或竞态条件。它们的主要区别在于对待冲突的策略。
2024-07-28 22:24:36
8995
2
原创 JAVA并发-多线程
线程(Thread)是程序中执行的单元,是操作系统能够进行运算调度的最小单位。一个进程可以包含多个线程,每个线程都是独立运行的,但它们共享相同的内存空间和资源。
2024-07-27 15:32:30
1144
原创 BigDecimal 详解
BigDecimal 是一个 Java 类,用于高精度的十进制运算。在 Java 中,通常使用double或float类型来处理浮点数,但这些类型存在精度限制,可能导致精度丢失或计算结果不准确。为了避免这些问题,特别是在需要精确计算货币、科学计算或其他精确度要求高的场景下,可以使用 BigDecimal 类。
2024-07-26 17:51:27
1587
原创 JAVA IO流
Java 的 I/O 流(输入/输出流)是处理数据输入和输出的核心机制。Java 提供了丰富的 I/O 类库来处理各种 I/O 操作,包括文件操作、网络通信、数据序列化等。I/O 流可以分为两大类:字节流和字符流。
2024-07-24 22:02:31
710
原创 Java动态代理
实现原理JDK 动态代理是基于接口的代理,通过Proxy类和接口实现,要求目标类必须实现接口。CGLIB 动态代理是基于继承的代理,通过继承目标类并生成目标类的子类实现,可以代理没有实现接口的类。性能JDK 动态代理在创建代理对象时比较高效,但在调用时由于使用反射,可能会稍慢。CGLIB 动态代理在创建代理对象时较慢,但在调用时由于是通过方法绑定到子类上,调用速度比 JDK 动态代理快。适用场景JDK 动态代理适合对实现了接口的类进行代理。
2024-07-22 16:42:40
603
原创 HashMap的几种常见遍历方式
以上展示了五种遍历HashMapentrySet:同时需要键和值的情况。keySet:只需要键或需要键后获取值的情况。values:只需要值的情况。Iterator:需要在遍历过程中删除元素的情况。forEach:使用 Java 8 及以上版本的简洁遍历方式。
2024-07-21 21:29:20
423
原创 Vuex状态管理
Vuex 提供了一种集中式存储管理应用所有组件状态的方式,使用起来非常方便且可预测。通过状态(State)、突变(Mutation)、动作(Action)、派生状态(Getter)和模块化(Module)五个核心概念,我们可以轻松地管理复杂的应用状态。
2024-07-20 22:44:43
468
原创 生成式AI的未来发展方向:智能对话系统还是自主代理能力?
生成式AI的未来发展不应局限于智能对话系统或自主代理能力的单一方向,而是需要综合利用两者的优势,探索更广泛、更深远的应用场景。例如,Google的BERT模型和OpenAI的GPT系列模型,通过预训练和微调,在多个任务上展现出了令人印象深刻的表现,为智能对话系统的实现提供了坚实基础。自主代理的发展不仅需要强大的感知和理解能力,还需要高效的决策和规划能力。然而,关于生成式AI未来的发展方向,究竟是在智能对话系统(Chat)中展现智慧,还是在自主代理(Agent)中体现能力,这一问题引发了广泛的讨论和探索。
2024-07-19 09:20:00
480
原创 跨域问题几种解决方法
跨域(Cross-Origin)指的是浏览器限制脚本中发起的 HTTP 请求,以防止恶意网站通过脚本访问用户的敏感信息。同源策略(Same-Origin Policy)是浏览器的一种安全策略,它要求网页中的脚本只能读取来自同一来源的数据,这里的“来源”指的是协议(如http或https)、主机名和端口号的组合。例如,如果你的前端代码运行在,试图从发起请求时,就会面临跨域问题,因为它们的端口号不同。跨域请求可能会引入安全风险,必须谨慎配置CORS策略,避免开放过多权限。
2024-07-18 20:42:24
941
原创 jdk1.8下载、安装与环境配置
4、在系统变量中点击新建,编辑系统变量,变量名为JAVA_HOME,值为步骤二所安装的jdk1.8的路径C:\Program Files\Java\jdk-1.8,然后点击确定。有一个注意的地方,中间步骤可以更改安装路径,如果不想安装在默认路径可以更改,这里我就默认安装在路径了。6、最后,在系统变量中找到path,点击编辑,然后新增,输入%JAVA_HOME%\bin,点击确定。win+R,输入cmd打开命令窗口,输入java -version 命令出现如下结果,则安装成功。1
2024-07-18 15:18:49
1393
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人