- 博客(14)
- 收藏
- 关注
原创 Servlet学习笔记
Servlet (接口)↑GenericServlet (抽象类,适用于所有协议)↑HttpServlet (抽象类,专为 HTTP 协议设计,不需要你实现 service(),而是通过内部逻辑自动分派doGet()doPost()等方法)@Override@Override自定义Servlet 继承HttpServlet ,实现doGet 和doPost 即可,不推荐重写service方法,因为HttpServlet的service方法已经设计好了方法分发。
2025-11-28 10:25:43
910
原创 RabbitMQ高级
每个只能配置一个,因此我们可以在配置类中统一设置。我们在publisher模块定义一个配置类:@Slf4j@Overridelog.error("触发return callback,");});由于每个消息发送时的处理逻辑不一定相同,因此ConfirmCallback需要在每次发消息时定义。具体来说,是在调用RabbitTemplate中的convertAndSend方法时,多传递一个参数:id:消息的唯一标示,MQ对不同的消息的回执以此做判断,避免混淆。
2025-08-04 18:50:26
613
原创 RabbitMQ基础
多个消费者绑定到一个队列,同一条消息只会被一个消费者处理通过设置prefetch来控制消费者预取的消息数量交换机的作用是什么?接收publisher发送的消息将消息按照规则路由到与之绑定的队列不能缓存消息,路由失败,消息丢失FanoutExchange的会将消息路由到每个绑定的队列描述下Direct交换机与Fanout交换机的差异?Fanout交换机将消息路由给每一个与之绑定的队列Direct交换机根据RoutingKey判断路由给哪个队列。
2025-08-04 15:02:05
1687
原创 Redis 内存回收
Redis之所以性能强,最主要的原因就是基于内存存储。然而单节点的Redis其内存大小不宜过大,会影响持久化或主从同步性能。我们可以通过修改配置文件来设置Redis的最大内存:Redis本身是一个典型的key-value内存存储数据库,因此所有的key、value都保存在之前学习过的Dict结构中。不过在其database结构体中,有两个Dict:一个用来记录key-value;另一个用来记录key-TTL。
2025-08-02 19:13:35
1379
原创 原理篇-数据结构
我们都知道Redis中保存的Key是字符串,value往往是字符串或者字符串的集合。可见字符串是Redis中最常用的一种数据结构。不过Redis没有直接使用C语言中的字符串,因为C语言字符串存在很多问题:获取字符串长度的需要通过运算非二进制安全不可修改Redis构建了一种新的字符串结构,称为简单动态字符串(Simple Dynamic String),简称SDS。
2025-07-30 19:13:53
1635
原创 Redis多级缓存
多级缓存就是充分利用请求处理的每个环节,分别添加缓存,减轻Tomcat压力,提升服务性能:浏览器访问静态资源时,优先读取浏览器本地缓存访问非静态资源(ajax查询数据)时,访问服务端请求到达Nginx后,优先读取Nginx本地缓存如果Nginx本地缓存未命中,则去直接查询Redis(不经过Tomcat)如果Redis查询未命中,则查询Tomcat请求进入Tomcat后,优先查询JVM进程缓存如果JVM进程缓存未命中,则查询数据库在多级缓存架构中,,因此这样的nginx服务不再是一个。
2025-07-29 12:18:54
792
原创 Java IO流 学习(全网最)
在 Java 中,File类是java.io包中的一个重要类,用于表示文件和目录(文件夹)的。它,而是对文件或目录的抽象表示,可以用于创建、删除、重命名文件和目录,以及获取文件属性等操作。
2025-07-23 18:45:12
561
原创 WebSocket Java简单demo
WebSocket是一种基于TCP的全双工通信协议,实现了服务器与客户端之间的实时双向数据传输。与HTTP协议相比,WebSocket只需一次握手即可建立持久连接,具有通信效率高、实时性强等特点。文章详细对比了两种协议的通信模式、连接方式和适用场景,并提供了Java实现WebSocket的完整代码示例,包括服务端配置、连接管理以及前端页面交互。通过定时推送和消息收发演示,展现了WebSocket在即时通讯、实时推送等场景中的优势。
2025-07-21 11:23:38
864
原创 Redis常用指令,全网最不全的总结
Redis()是一个,它可以用作。Redis 以其和,广泛应用于高性能系统中。总结就是Redis 是在内存中非SQL数据库,以Key-value 存储。
2025-07-16 13:40:27
306
原创 利用AOP来实现公共字段填充 案例
数据库有多张表都有创建时间、创建用户、更新时间、更新用户的字段,每次做更新或者新增的时候,总要重复写一些代码,如何让每次在新增或者更新时自动添加上这些字段呢,这就使用到了切面编程的思想,下面是具体的实现过程。
2025-07-14 12:06:19
300
原创 JAVA反射学习
这是GPT给出的回答,看不懂举个例子就明白了反射”就是“程序在运行时,通过字符串或类型动态地获取类的信息,并进行方法调用或字段访问”。可以看出,
2025-07-08 15:27:35
723
原创 多线程&JUC学习总结
继承Thread类实现简单,适合任务逻辑简单的场景。缺点是单继承限制,不利于线程任务和线程控制的解耦。实现Runnable接口可实现多继承,任务和线程分离。实现Callable接口可以有返回值,可以抛出异常,缺点是复杂一点,需要FutureTask封装。java也支持自定义线程池,自定义的线程池更灵活 更安全。使用来构造线程池。// 1️⃣ 自定义线程池参数// 核心线程数:线程池中始终保留的线程数量,即使空闲也不会回收// 最大线程数:线程池允许创建的最大线程数(含核心线程)
2025-07-07 16:12:15
592
原创 Git 指令
创建文件夹 git init 初始化 把当前目录初始化为一个 Git 仓库初始化之后 有个.git文件夹 里包含了 Git 所需的所有元数据和版本信息(如提交历史、配置、分支等) 如图objects文件夹: Git 实际上是把所有内容都压缩成对象保存在这里。
2025-07-06 17:04:48
724
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
2