泛型的代码只存在于编译阶段,在进入JVM之前,与泛型相关的信息会被擦除掉,称之为类型擦除。 无限制类型擦除:当在类的定义时没有进行任何限制,那么在类型擦除后将会被替换成Object,例如<T>、<?> 都会被替换成Object。 有限制类型擦除:当类定义中的参数类型存在上下限(上下界),那么在类型擦 ...
ThreadLocal 本文以JDK21为例子,其实大致方法和JDK8都一样。 1.基本介绍 ThreadLocal 是一个在多线程编程中常用的概念,不同编程语言中实现方式不同,但核心思想一致:为每个使用该变量的线程都提供一个独立的变量副本,每个线程都可以独立地改变自己的副本,而不会影响其他线程所对 ...
前言 大家好,我是小徐啊。我们在开发Java应用的时候,经常是需要和pdf文档打交道的。 这极大地帮助我们提高了开发效率,今天,小徐就来介绍下如何将pdf文件转换成图片,完全免费,没有水印。一起来看看吧! 如何pdf转图片?完全免费! 首先,我们打开微信,在搜索框里面,输入pdf编辑器小帮手,进行搜 ...
内部类和常用类 内部类 概念:在一个类的内部再定义一个完整的类 package com.object.demo01; public class Body { private String name; class Header{ //内部类也会生成一个class文件 编译之后可以生成独立的字节码文件 ...
问题现象 Java 应用在运行过程中突然报java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed错误。 开发童鞋表示不理解,毕竟应用没做任何变更,为什么会突然出现这个错误? 2025-03-31 ...
概述 在支付场景中,支付成功后利用RabbitMQ通知交易服务,更新业务订单状态为已支付。但是大家思考一下,如果这里MQ通知失败,支付服务中支付流水显示支付成功,而交易服务中的订单状态却显示未支付,数据出现了不一致。此时前端发送请求查询支付状态时,肯定是查询交易服务状态,会发现业务订单未支付,而用户 ...
简介 Java 异步编程是现代高性能应用开发的核心技术之一,它允许程序在执行耗时操作(如网络请求、文件 IO)时不必阻塞主线程,从而提高系统吞吐量和响应性。 异步 vs 同步 同步:任务按顺序执行,后续任务需等待前任务完成。 public String syncTask() { // 模拟耗时操作 ...
小伙伴们,你们好呀,我是老寇,跟我一起学习使用Vertx实现MQTT-Server 实现MQTT-Server【响应式】 vertx-mqtt地址 实现思路 1.启动MQTT Server并绑定很多端口记录到缓存,服务注册到Nacos,通过接口的方式获取IP和端口【负载均衡】 2.MQTT Clie ...
前言 sensitive-word-admin 最初的定位是让大家知道如何使用 sensitive-word,所以开始想做个简单的例子。 不过秉持着把一个工具做好的原则,也收到很多小伙伴的建议。 v2.0.0 在 ruoyi-vue(也非常感谢若依作者多年来的无私奉献) 的基础之上,对整体 UI 进 ...
RabbitMQ介绍 RabbitMQ是基于Erlang语言开发的开源消息通信中间件,官网地址: Messaging that just works — RabbitMQ 接下来,我们就学习它的基本概念和基础用法。 安装 在安装命令中有两个映射的端口: 15672:RabbitMQ提供的管理控制台的 ...
大家好,我是R哥。 这次要分享的,是一个让人既感动、又佩服、又励志的面试逆袭故事。 这个兄弟我管他叫小方吧,双非本科、30+、非科班出身,之前一直在一线城市打拼,过着租房、加班、通勤三点一线的生活,虽然努力、踏实,也算混得还可以。 但是,在外面呆久了,家里长辈年龄都大了,他突然意识到:不能再留在一线 ...
使用 Spring Boot 实现 Excel 导出 + 邮件异步发送功能,解决接口阻塞问题 一、背景介绍最近我在开发一个跑团管理系统的数据导出功能,需求是将用户查询的成员信息、跑量统计等数据导出为 Excel 文件,并通过邮件自动发送至指定邮箱,而非让用户手动下载文件。虽然功能逻辑看起来不复杂,但 ...
前言 大家好,我是小徐啊。我们在开发Java应用的时候,经常是需要和PDF文档打交道的。 这极大地帮助我们提高了开发效率。 今天,小徐要来聊一聊,如何利用工具,将pdf文档压缩大小,方便我们上传,最重要的是,这是完全免费的。一起来看下吧! 如何压缩pdf文件大小,完全免费? 首先,我们打开微信,在搜 ...
一、背景与需求 在云存储场景中,数据安全是核心需求之一。MinIO作为高性能对象存储服务,支持通过客户端加密(CSE)在数据上传前完成加密,确保即使存储服务器被攻破,攻击者也无法获取明文数据。本文将详解如何通过Java实现MinIO文件的加密上传与解密下载,结合AES对称加密算法和BouncyCas ...
大家好,我是R哥。 前几天 Redis 官方发布了一个重磅消息:Redis 8.0 正式发布!这次发布,不仅是版本号的迭代,更是一次态度上的回归——它宣布重新开源了! 你是不是好奇,Redis 本来不就是开源的吗? 不,从 Redis 7.4 开始,它就悄悄把核心协议换了: 没错,Redis 7.4 ...
一、概述 在Spring Boot中,拦截器是一种用于拦截和处理HTTP请求的机制。它是Spring框架提供的一种中间件,用于在请求到达控制器(Controller)之前或之后执行一些共享的逻辑。 Spring Boot的拦截器基于Spring MVC框架中的HandlerInterceptor接口 ...
一、概述 1.1 含义 过滤器是Web三大组件之一,也是项目中常用的工具。过滤器由Servlet提供,基于函数回调实现链式对网络请求和响应的拦截与修改。由于基于Servlet,几乎可以拦截Web服务器管理的所有资源(JSP、图片文件、HTML文件、CSS文件等)。 定义过滤器需要实现javax.se ...
大家好,我是大任,今天给大家分享一下Elasticsearch的向量搜索技术 注:本文若未说明ES版本则为7.10,其他版本会特别标记,由于ES版本不同,部分差异较大,具体请以官方文档为准 一、向量搜索的核心原理 1.1 向量化表示的本质 现代AI技术将文本、图像等非结构化数据转化为高维向量(通常1 ...
大家好,我是R哥。 最近看到一个很有意思的话题: 看完真让我哭笑不得。。 这件事可不是段子,而是真实的行业写照,虽然说不是每家公司都这么干,但这种现象在国内也并不少见。 有能力、有追求的技术人想做点事,碰到的不是技术挑战,而是职场人性难题。 说到底,这位架构师的问题不是技术不行,而是太理想主义。他以 ...
前言 大家好,我是小徐啊。Excel是我们在Java开发的时候,常用到的软件,非常方便,能帮助我们快速开发应用。 然后,有时候,我们需要在Excel里面进行数据的插入,比如插入几行或者几列。 今天,小徐就来介绍在如何在Excel里面插入指定数量的行或者指定数量的列。 Excel如何插入指定数量的行或 ...