刷新
了解泛型擦除吗?知道类型擦除会造成多态的冲突吗?如何解决?

博主头像 泛型的代码只存在于编译阶段,在进入JVM之前,与泛型相关的信息会被擦除掉,称之为类型擦除。 无限制类型擦除:当在类的定义时没有进行任何限制,那么在类型擦除后将会被替换成Object,例如<T>、<?> 都会被替换成Object。 有限制类型擦除:当类定义中的参数类型存在上下限(上下界),那么在类型擦 ...

ThreadLocal分析

博主头像 ThreadLocal 本文以JDK21为例子,其实大致方法和JDK8都一样。 1.基本介绍 ThreadLocal 是一个在多线程编程中常用的概念,不同编程语言中实现方式不同,但核心思想一致:为每个使用该变量的线程都提供一个独立的变量副本,每个线程都可以独立地改变自己的副本,而不会影响其他线程所对 ...

如何pdf转图片?完全免费!

博主头像 前言 大家好,我是小徐啊。我们在开发Java应用的时候,经常是需要和pdf文档打交道的。 这极大地帮助我们提高了开发效率,今天,小徐就来介绍下如何将pdf文件转换成图片,完全免费,没有水印。一起来看看吧! 如何pdf转图片?完全免费! 首先,我们打开微信,在搜索框里面,输入pdf编辑器小帮手,进行搜 ...

Java内部类 常用类

内部类和常用类 内部类 概念:在一个类的内部再定义一个完整的类 package com.object.demo01; public class Body { private String name; class Header{ //内部类也会生成一个class文件 编译之后可以生成独立的字节码文件 ...

RabbitMQ高级使用

博主头像 概述 在支付场景中,支付成功后利用RabbitMQ通知交易服务,更新业务订单状态为已支付。但是大家思考一下,如果这里MQ通知失败,支付服务中支付流水显示支付成功,而交易服务中的订单状态却显示未支付,数据出现了不一致。此时前端发送请求查询支付状态时,肯定是查询交易服务状态,会发现业务订单未支付,而用户 ...

Java 原生异步编程与Spring 异步编程 详解

博主头像 简介 Java 异步编程是现代高性能应用开发的核心技术之一,它允许程序在执行耗时操作(如网络请求、文件 IO)时不必阻塞主线程,从而提高系统吞吐量和响应性。 异步 vs 同步 同步:任务按顺序执行,后续任务需等待前任务完成。 public String syncTask() { // 模拟耗时操作 ...

RabbitMQ基础入门

博主头像 RabbitMQ介绍 RabbitMQ是基于Erlang语言开发的开源消息通信中间件,官网地址: Messaging that just works — RabbitMQ 接下来,我们就学习它的基本概念和基础用法。 安装 在安装命令中有两个映射的端口: 15672:RabbitMQ提供的管理控制台的 ...

程序员一线裸辞回老家了,真香!

博主头像 大家好,我是R哥。 这次要分享的,是一个让人既感动、又佩服、又励志的面试逆袭故事。 这个兄弟我管他叫小方吧,双非本科、30+、非科班出身,之前一直在一线城市打拼,过着租房、加班、通勤三点一线的生活,虽然努力、踏实,也算混得还可以。 但是,在外面呆久了,家里长辈年龄都大了,他突然意识到:不能再留在一线 ...

将数据导出 Excel 并异步发送到指定邮箱:一次性能优化实战

博主头像 使用 Spring Boot 实现 Excel 导出 + 邮件异步发送功能,解决接口阻塞问题 一、背景介绍最近我在开发一个跑团管理系统的数据导出功能,需求是将用户查询的成员信息、跑量统计等数据导出为 Excel 文件,并通过邮件自动发送至指定邮箱,而非让用户手动下载文件。虽然功能逻辑看起来不复杂,但 ...

如何压缩pdf文件大小,完全免费?

博主头像 前言 大家好,我是小徐啊。我们在开发Java应用的时候,经常是需要和PDF文档打交道的。 这极大地帮助我们提高了开发效率。 今天,小徐要来聊一聊,如何利用工具,将pdf文档压缩大小,方便我们上传,最重要的是,这是完全免费的。一起来看下吧! 如何压缩pdf文件大小,完全免费? 首先,我们打开微信,在搜 ...

Java实现minio上传文件加解密操作

博主头像 一、背景与需求 在云存储场景中,数据安全是核心需求之一。MinIO作为高性能对象存储服务,支持通过客户端加密(CSE)在数据上传前完成加密,确保即使存储服务器被攻破,攻击者也无法获取明文数据。本文将详解如何通过Java实现MinIO文件的加密上传与解密下载,结合AES对称加密算法和BouncyCas ...

Redis 8.0 正式发布,宣布再次开源!!

博主头像 大家好,我是R哥。 前几天 Redis 官方发布了一个重磅消息:Redis 8.0 正式发布!这次发布,不仅是版本号的迭代,更是一次态度上的回归——它宣布重新开源了! 你是不是好奇,Redis 本来不就是开源的吗? 不,从 Redis 7.4 开始,它就悄悄把核心协议换了: 没错,Redis 7.4 ...

SpringBoot三大组件之拦截器(Interceptor)

博主头像 一、概述 在Spring Boot中,拦截器是一种用于拦截和处理HTTP请求的机制。它是Spring框架提供的一种中间件,用于在请求到达控制器(Controller)之前或之后执行一些共享的逻辑。 Spring Boot的拦截器基于Spring MVC框架中的HandlerInterceptor接口 ...

SpringBoot三大组件之过滤器(Filter)

博主头像 一、概述 1.1 含义 过滤器是Web三大组件之一,也是项目中常用的工具。过滤器由Servlet提供,基于函数回调实现链式对网络请求和响应的拦截与修改。由于基于Servlet,几乎可以拦截Web服务器管理的所有资源(JSP、图片文件、HTML文件、CSS文件等)。 定义过滤器需要实现javax.se ...

【Elasticsearch】一文读懂ES向量搜索:原理剖析与技术全景

博主头像 大家好,我是大任,今天给大家分享一下Elasticsearch的向量搜索技术 注:本文若未说明ES版本则为7.10,其他版本会特别标记,由于ES版本不同,部分差异较大,具体请以官方文档为准 一、向量搜索的核心原理 1.1 向量化表示的本质 现代AI技术将文本、图像等非结构化数据转化为高维向量(通常1 ...

公司新招了个牛逼的架构师,把代码重构了一遍,老板决定裁掉一半人...架构师也被搞走!

博主头像 大家好,我是R哥。 最近看到一个很有意思的话题: 看完真让我哭笑不得。。 这件事可不是段子,而是真实的行业写照,虽然说不是每家公司都这么干,但这种现象在国内也并不少见。 有能力、有追求的技术人想做点事,碰到的不是技术挑战,而是职场人性难题。 说到底,这位架构师的问题不是技术不行,而是太理想主义。他以 ...

Excel如何插入指定数量的行或列?

博主头像 前言 大家好,我是小徐啊。Excel是我们在Java开发的时候,常用到的软件,非常方便,能帮助我们快速开发应用。 然后,有时候,我们需要在Excel里面进行数据的插入,比如插入几行或者几列。 今天,小徐就来介绍在如何在Excel里面插入指定数量的行或者指定数量的列。 Excel如何插入指定数量的行或 ...

<1···242526···57>