- 博客(28)
- 收藏
- 关注

原创 关于Arrays.copyOfRange()方法的使用
此方法是 java.util.Arrays下的一个方法源码: public static int[] copyOfRange(int[] original, int from, int to) { int newLength = to - from; if (newLength < 0) throw new IllegalArgum...
2019-09-04 09:49:37
17065
3
原创 RabbitMQ事务机制
在RabbitMQ中,生产者为了确保消息发送成功,一种是使用 confirm 确认机制,另一种就是使用事务机制,事务机制就是允许生产者在发送消息时,将多个消息操作作为一个原子单元进行处理,要么所有操作都成功执行,要么都不执行。
2025-05-09 14:25:49
486
原创 RabbitMQ消息的重复消费问题如何解决?
在RabbitMQ中,消息重复消费是一个常见问题,它通常发生在消费者处理消息时出现网络波动、节点故障或消费者自身处理逻辑异常,ACK 失败等情况,都会导致RabbitMQ 不能够正确感知消息已被成功处理,从而重新投递消息。
2025-05-09 14:12:41
850
原创 什么是延迟队列?RabbitMQ 如何实现延迟队列?
定义:延迟队列是一种特殊的队列,队列中的元素(消息)并不会立即被消费者获取并处理,而是在经过一段指定的延迟时间后,才会被消费者消费。它主要用于需要在特定时间点或经过一定时间间隔后执行的任务场景。// 延迟队列// 延迟交换机// 延迟路由键// 死信队列// 死信交换机// 死信路由键// 创建连接// 设置RabbitMQ服务器地址// 设置RabbitMQ服务器端口// 设置用户名// 设置密码// 初始化队列和交换机// 声明死信交换机。
2025-05-08 14:55:30
1851
原创 什么是死信队列?死信队列是如何导致的?
从结果可以看出,第一条消息 ttl 为 28301ms,被普通消费者进行消费,而产生的第二条消息得到 ttl 为 4332ms,由于第一条消息在消费时耗时较久,在此期间 第二条消息已经过期,不得不进入死信队列,由死信消费者进行处理,从前面的日志时间也可以看出,刚好间隔 4s 左右。下面将用代码举例,由于消息过期而进入死信队列。接收从其他队列中因特定原因变成死信的消息。
2025-05-08 14:53:31
808
原创 RabbitMQ中Exchange交换器的类型
在RabbitMQ中,Exchange(交换器)是消息路由的核心组件,它接收生产者发送的消息,并根据不同的规则将消息转发到一个或多个队列。
2025-05-07 11:19:57
1129
原创 RabbitMQ如何保证消息不丢失?
在RabbitMQ中,消息丢失可能发生在三个阶段:生产者发送消息时、消息在RabbitMQ服务器内部传递时、消费者接收消息时。
2025-05-07 11:17:41
771
原创 说下RabbitMQ的整体架构
RabbitMQ 是一个基于协议的开源消息中间件,RabbitMQ的整体架构围绕消息的生产、路由、存储和消费设计,旨在实现高效、可靠的消息传递,它由多个核心组件协同工作。
2025-05-06 15:13:13
979
原创 面试官:解释下JDK动态代理为什么要基于接口?
我们知道,扩展一个类,要么继承,要么实现接口,这两种方式都可以对方法进行增强。JDK 动态代理使用的是类和接口。在动态代理机制中,Proxy类通过实现代理类的接口来生成代理对象,并将方法调用委托给。因此,JDK 动态代理的工作原理也决定了它只能代理接口,而不能直接代理具体类。那么可以有其他方式不代理接口吗,有,就是CGLIB动态代理!
2024-11-30 10:25:28
917
原创 一文搞定LocalDate、LocalTime、LocalDateTime
使用自定义日期时间格式化类型,日期时间对象使用format()方法进行格式化输出为字符串使用parse()方法解析字符串为时间日期对象System.out.println("当前日期时间:" + dateTime);// 设置格式化样式DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");// 格式化。
2024-11-30 10:14:12
2962
原创 京东二面:说说Java序列化和反序列化
无论是传输数据、存储对象状态,还是在网络通信、缓存、分布式系统等场景中,序列化与反序列化的理解与应用至关重要。因此,序列化一个对象时,不会包含其类变量的值,因为类变量的值在JVM中是全局的,与特定的序列化实例无关。变量的值依然是类级别的当前状态,而不是从序列化的数据中获取。接口,在实际开发中,还有多种方式可以实现对象的序列化和反序列化,具体选择取决于应用场景、性能需求和数据格式的需求。:在Java中,可以通过序列化将对象保存到磁盘中,比如将一个Java对象保存到文件中,然后在需要时恢复该对象。
2024-11-29 17:27:11
994
原创 String中的substring()方法详解
substring()方法是 Java 中 String 类的一个常用方法,用于从一个字符串中提取其中的子串。
2024-05-21 13:47:43
6710
原创 @ControllerAdvice全局异常处理详解
@ControllerAdvice是Spring框架提供的一个注解,它可以用来集中处理应用程序中的异常情况,并且在一个地方进行全局的数据绑定和预处理。通常结合和注解来实现全局的异常处理全局数据绑定和全局数据预处理。
2024-05-11 11:10:27
1000
转载 openFeign,我的时间呢?
最近公司的项目需要从单体架构变为微服务架构,于是乎对项目的代码进行了重构,在处理服务之间的调用问题时,我们使用了openFeign组件,开发的时候都很顺利,但是当传递的参数使用的是Date类型的时候,却出现了意想不到的问题。
2024-04-11 09:57:00
255
2
原创 String、StringBuffer、StringBuilder 的区别?
String、StringBuffer、StringBuilder 的区别
2022-08-03 15:22:24
205
1
原创 CentOS7中命令 ip addr 不显示IP地址的解决办法之一
文章目录问题重现解决办法进入目录`ect/sysconfig/network-scripts`编辑文件`ifcfg-ens33`重启网络服务问题重现当我们使用命令ip addr时,看不到虚拟机的ip地址,如何解决呢?消除它的办法就是面对它????解决办法这是因为我们的虚拟机网络服务没有设置为开机自启动,现在我们来一步步设置下进入目录ect/sysconfig/network-scriptsc......
2020-01-06 16:29:55
8360
2
原创 在CentOS 7 上安装jdk8、tomcat8.5、mysql-8.0.17-linux-glibc2.12-x86_64.tar
文章目录1、准备工作2、安装jdk82.1 配置环境变量3、安装tomcat8.54、安装mysql84.1 创建用户和用户组并授权4.2 创建data文件夹4.3 初始化数据库4.4 配置my.cnf4.5 设置开机自启动4.6 注册服务4.7 配置环境变量4.8 登陆mysql4.9 修改密码4.10 使用Navicat进行远程连接1、准备工作首先在centos中,cd /usr 进入us...
2019-09-26 12:24:01
1038
原创 LeetCode_1 两数之和[java版]解法
文章目录题目描述1、Java解法1.1 暴力法(双重循环)1.2 一遍哈希表法题目描述给定一个整数数组 numsnumsnums 和一个目标值 targettargettarget,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。网址链接:leetcode 两数之和1、Java解法1.1 暴力...
2019-09-18 14:38:11
604
Tomcat 8 软件及源码
2024-04-30
Tomcat 10 软件及其源码
2024-04-30
Tomcat 9 软件及其源码
2024-04-30
Tomcat 11软件及其源码
2024-04-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人