- 博客(163)
- 收藏
- 关注
原创 Kafka 深入研究:从架构革新到性能优化的全面解析
Kafka 作为领先的分布式消息系统,经历了从依赖 ZooKeeper 到自管理的 KRaft 模式的重大架构变革,实现了更高的可靠性、可扩展性和性能。Kafka 4.0 的发布标志着这一演进的重要里程碑,彻底移除了对 ZooKeeper的依赖,引入了增量式重平衡协议和共享组等新特性,大幅提升了系统的灵活性和效率。关键技术演进点KRaft替代 ZooKeeper:Kafka 4.0 默认采用 KRaft 模式,实现了元数据的自管理,简化了部署和运维,提升了可扩展性和故障恢复能力。消费者组协议优化。
2025-09-04 02:27:34
1312
原创 redis哨兵模式的使用
通过以上步骤,Java 项目就能正确使用 Redis 哨兵模式,实现对 Redis 集群的高可用访问。当主节点发生故障时,整个过程对应用程序是透明的,无需人工干预即可自动切换到新的主节点。
2025-09-03 13:27:19
620
原创 Java类加载机制
继承,重写方法(推荐)或方法。应用场景:热部署、加密类解密、从非标准来源加载类等。Java 类加载机制通过 “加载 - 验证 - 准备 - 解析 - 初始化” 的流程,结合双亲委派模型,保证了类的安全加载和 JVM 的稳定性。理解类加载机制对排查类冲突、实现热部署等场景至关重要。
2025-09-01 22:23:45
780
原创 理解JVM
线程私有区(每个线程单独拥有):程序计数器、虚拟机栈、本地方法栈线程共享区(所有线程共用):堆、方法区(元空间)、运行时常量池程序计数器 = 员工的工作进度表虚拟机栈 = 员工的工作台(临时放正在处理的文件)本地方法栈 = 外包团队的工作台堆 = 公司的仓库(放所有货物)方法区 = 公司的档案库(存规章制度、人员结构)运行时常量池 = 档案库中的字典(快速查询常用信息)这样每个区域的职责和特点就比较清晰了~
2025-08-30 13:20:06
665
原创 理解Cookie 和Session
Cookie 是 “你手里的凭证”:存你设备上,帮你 “告诉网站你是谁”(靠 SessionID 或简单信息);Session 是 “网站手里的档案”:存服务器上,帮网站 “确认你是谁、能做什么”(靠 Cookie 传的 SessionID 找档案);没有 Session,Cookie 只能存简单信息(比如浏览记录),没法实现 “登录后保持身份”;没有 Cookie,Session 的 SessionID 传不到你手里,网站也认不出你。
2025-08-29 21:35:28
890
原创 java序列化
/ 自定义序列化逻辑// 先执行默认序列化// 自定义处理(如加密敏感字段)// 自定义反序列化逻辑// 先执行默认反序列化// 自定义处理(如解密)// 示例加密方法(简化)Java 序列化是对象持久化和网络传输的基础机制,通过实现接口、合理使用和transient关键字,以及自定义序列化逻辑,可以灵活应对各种场景。但需注意其安全性和性能问题,在分布式系统中可考虑更高效的序列化方案。
2025-08-29 21:30:10
998
原创 java中线程创建的四种方式
方式优点缺点适用场景继承 Thread简单直接单继承限制简单的线程任务实现 Runnable无继承限制,资源共享无法返回结果多线程共享资源实现 Callable可返回结果,可抛异常用法相对复杂需要获取执行结果线程池高效管理线程,复用线程需要理解线程池参数实际开发中推荐使用在实际开发中,推荐使用Runnable接口配合线程池的方式,既避免了单继承限制,又能高效管理线程资源。如果需要获取线程执行结果,则使用Callable接口。
2025-08-29 14:02:51
291
原创 java中sleep与wait的区别
特性sleep()wait()所属类Thread(静态方法)Object(实例方法)锁释放不释放锁释放锁使用场景控制执行间隔线程间通信(等待 / 唤醒)唤醒方式时间到自动唤醒需notify()或超时调用前提无需同步环境必须在中调用。
2025-08-28 21:57:26
350
原创 JDK8升级到JDK17的注意事项
升级过程中,建议建立详细的测试矩阵,确保所有功能在新 JDK 下正常工作,特别是涉及低级别 API 和反射的代码。
2025-08-28 20:02:31
516
原创 Java 项目中的安全认证体系
Java 项目的安全认证体系是一个多层级的综合方案,需结合框架(Spring Security/Shiro)、认证方式(用户名密码 / Token/OAuth2.0)、加密算法(BCrypt)和防护措施(HTTPS/CSRF),根据系统规模和场景灵活选择。核心目标是在安全性和用户体验之间找到平衡,既防止未授权访问,又不影响合法用户的操作效率。
2025-08-26 16:52:13
1399
原创 java保证代码的安全性方法
Java 代码的安全性需要 “防御式编程” 思维,从输入到输出的全链路进行安全控制,结合语言特性、标准库、安全框架及工具链,同时遵循行业最佳实践(如 OWASP Top 10),才能有效降低安全风险。
2025-08-25 23:00:10
540
原创 JAVA限流方法
/ 窗口大小(毫秒)// 窗口内最大请求数// 记录每个时间片的请求数(key:时间片起始时间,value:请求数)// 计算当前窗口的起始时间// 移除过期的时间片// 统计当前窗口总请求数// 记录当前时间片的请求(精确到100ms,可调整精度)// 使用示例(在Controller中)// 10秒内最多允许5次请求(按IP限流)// 为每个IP创建独立的限流器if (!return "IP:" + ip + " 请求过于频繁";
2025-08-24 23:19:49
726
原创 Hibernate详解
Hibernate 是 Java 领域最流行的 ORM(Object-Relational Mapping,对象关系映射)框架之一,它致力于解决 Java 对象与关系型数据库之间的映射问题,简化数据持久化操作,让开发者可以以面向对象的方式操作数据库,而无需过多关注底层 SQL 实现。
2025-08-24 23:15:39
1822
原创 MyBatis 和 MyBatis-Plus对比
选MyBatis:若项目业务复杂(多复杂查询)、对 SQL 可控性要求高(需频繁优化),或团队更习惯直接写 SQL。选:若项目以基础 CRUD 为主(如后台管理系统)、追求快速开发,或需减少重复代码(如自动填充、分页),可大幅提升效率。实际开发中,两者常结合使用:基础 CRUD 用 MP 简化开发,复杂查询用 MyBatis 的 XML 写原生 SQL,兼顾效率与灵活性。
2025-08-24 23:12:01
1118
原创 mybatis过渡到mybatis-plus过程中需要注意的地方
升级的核心是 **“增强而非重构”**:通过替换依赖、调整配置、适配注解,保留原有业务逻辑的同时,逐步引入 MP 的通用功能和插件。关键是确保版本兼容、测试覆盖,并根据团队情况逐步迁移,充分利用 MP 简化开发的优势。
2025-08-24 23:07:35
1051
1
原创 Java接口响应速度优化
减少不必要的计算和 IO(数据库、网络);利用缓存、并行、异步等手段提升效率;通过监控工具精准定位问题,避免盲目优化。需根据业务场景选择合适的方案(如高频读场景优先缓存,高并发写场景优先分库分表),同时兼顾代码可维护性。
2025-08-23 22:31:52
719
原创 Spring发布订阅模式详解
Spring 的发布订阅模式基于事件驱动,通过三大组件实现,配合@Async等注解,提供了灵活、解耦的组件通信方式。其核心价值在于降低组件间耦合度,提高系统的可扩展性和可维护性。
2025-08-22 23:48:10
819
原创 Java 项目中 MySQL 数据向 Redis 迁移的技术实践与深度剖析
将 MySQL 数据存入 Redis 的过程,本质上是 “根据数据的访问特征,将合适的数据分配到合适的存储资源”—— 让 MySQL 承担 “持久化、高一致性” 的职责,让 Redis 承担 “高频访问、高并发” 的职责,二者协同构建高效的存储层。在 Java 项目中落地时,需避免 “为了用 Redis 而用 Redis” 的误区:需先分析业务场景(如数据的访问频率、修改频率、一致性要求),再选择同步方式、读写策略;同时关注细节(如 key 的命名、过期时间的设置、异常处理),才能真正发挥两者的协同价值。
2025-08-21 23:12:30
1018
原创 JAVA中向量数据库(Milvus)怎么配合大模型使用
在 Java 中,向量数据库(以 Milvus 为例)与大模型的配合是实现 "增强大模型能力" 的核心方案,主要用于解决大模型 "知识时效性差"、"上下文长度有限"、"幻觉生成" 等问题。。
2025-08-20 23:55:05
1306
原创 JVM参数优化
JVM 参数优化的核心是 “基于应用特性 + 监控数据” 的动态调整:先通过基础参数搭建框架,再用工具定位瓶颈,最后针对性优化内存分配与 GC 策略。关键不是 “记住参数”,而是理解 “参数与内存 / GC 的关系”,并结合实际场景灵活调整。
2025-08-19 23:00:14
836
原创 向量数据库
大规模生产场景:优先选Milvus(开源、可扩展)或Pinecone(云托管、零运维);轻量原型 / 小应用:选Chroma(零配置)或Qdrant(简单部署);混合检索(向量 + 结构化 / 文本):选Weaviate(易用)或Vespa(大规模);纯检索库(需自主搭服务):选Faiss(速度快、轻量)。实际选择时需结合 “数据规模、成本预算、运维能力、功能需求” 综合评估,必要时可先通过小规模测试验证性能。
2025-08-17 23:35:37
1221
原创 Java项目中短信的发送
发送短信的核心流程是:通过第三方服务商的 API 接口,将短信内容、接收号码等参数传递给服务商服务器,由服务商完成短信的实际下发。选择第三方短信服务商并完成注册配置;获取调用 API 所需的凭证(如 AccessKey、密钥等);在项目中引入服务商提供的 SDK 或通过 HTTP 请求调用 API;编写代码封装发送逻辑(参数校验、请求构建、响应处理);处理异常情况(网络错误、参数错误、余额不足等)。
2025-08-17 16:13:03
1037
原创 JAVA项目中邮件发送功能
Session: 表示邮件会话,是所有邮件操作的基础Message: 表示邮件消息,是邮件内容的容器Address: 表示邮件地址Transport: 负责发送邮件Store: 负责接收邮件(本文不涉及): 表示 MIME 类型的邮件消息: 表示多部分内容的容器,用于构建带附件或 HTML 内容的邮件必要的依赖库和配置核心类的作用和使用方法完整的邮件发送工具类实现发送不同类型邮件的示例常见问题及解决方案在 Web 应用中的集成建议。
2025-08-17 15:17:55
1188
原创 java项目怎么实现用户行为分析、漏斗转化、数据可视化报表。
在 Java 项目中实现用户行为分析、漏斗转化和数据可视化报表是一个系统性的工作,需要从数据采集、存储、分析到展示的完整链路设计。
2025-08-16 23:54:34
711
原创 java中消息推送功能
后端消息推送服务的核心是 **“连接管理”+“消息路由”**,小规模场景可用 Spring WebSocket + 本地会话;中大规模集群需结合 Redis 实现分布式会话与跨节点通信;物联网场景优先选 MQTT 协议。根据实时性和规模需求,可逐步迭代优化(从单机到集群,从基础功能到可靠性保障)。
2025-08-16 18:04:50
1264
原创 Java 中使用阿里云日志服务(SLS)完整指南
准备 SLS 资源与依赖→初始化客户端→调用 SDK 接口实现日志收发与管理。通过本文介绍的步骤,能快速将 Java 应用与 SLS 对接,实现日志的高效存储与灵活查询。实际开发中,可根据业务需求扩展功能,例如结合 SLS 的 “索引配置” 实现更精准的日志检索,或通过 “消费组” 实现日志的实时消费。如需更复杂的操作(如日志分析、告警等),可参考阿里云 SLS 官方文档获取详细指南。
2025-08-15 23:18:23
1569
原创 Java项目中地图功能如何创建
Java 后端实现地图功能的核心是集成第三方地图 API,辅以地理数据存储、缓存、坐标系转换等能力。优先使用成熟第三方服务,避免重复造轮子。重视空间索引和缓存,提升查询性能。处理好坐标系转换,避免地图偏移。做好 API 密钥保护和接口限流,保障服务稳定。通过以上方案,可快速实现稳定、高效的地图后端服务。
2025-08-13 21:50:42
759
原创 pom.xml父子模块配置
properties:统一管理版本号、路径等常量(子模块可直接引用)。:声明依赖版本(子模块引用时无需指定版本,统一由父模块管控)。:声明插件版本(类似依赖管理,子模块引用插件时无需指定版本)。build:公共的构建配置(如资源目录、插件等,子模块可继承或覆盖)。配置复用:公共配置(版本、插件)集中在父 POM,减少重复代码。版本统一:通过和确保所有子模块依赖版本一致,避免冲突。批量操作:父模块通过modules聚合子模块,支持 "一键构建 / 打包所有子模块"。
2025-08-11 18:27:26
1283
原创 java配置沙箱支付
沙箱支付是支付平台(如支付宝、微信支付)提供的模拟支付环境,包含测试用的 APPID、密钥、网关、测试账号等资源,其接口逻辑与正式环境一致,但交易仅为模拟,不涉及真实资金。核心作用:验证支付下单、支付跳转、异步通知、订单查询等全流程的正确性。
2025-08-10 23:09:29
1569
原创 接口和抽象类
在 Java 中,接口(Interface)和抽象类(Abstract Class)都是实现抽象化的重要机制,用于定义规范和复用代码,但两者在设计目的、语法规则和使用场景上有显著区别。:可以有静态成员(变量、方法),静态变量在接口被首次使用时初始化(如被实现类引用),且接口没有构造代码块和构造器。关键字修饰的类,是 "不完整的类",可以包含抽象方法(未实现的方法)和具体方法(已实现的方法)。是其子类("狗是动物","猫是动物"),抽象类中可包含动物共有的方法(如。(在定义时已初始化),不需要构造器初始化。
2025-08-10 13:57:28
550
原创 java常见算法
每次从剩余元素中找到最小元素,放到已排序序列的末尾。重复比较相邻元素,将大的元素 "冒泡" 到末尾。采用分治法,将数组分成两半分别排序,再合并。在有序数组中,每次将搜索范围减半。将元素逐个插入到已排序的序列中。逐个检查每个元素直到找到目标。
2025-08-10 10:38:26
203
原创 java中Bean的生命周期
在 Spring 框架中,Bean 的生命周期是一个非常精细的过程,涉及多个阶段和扩展点。接口、初始化 / 销毁方法等,在各个阶段插入自定义逻辑,实现对 Bean 的精细控制。✅ 销毁逻辑通常包括:释放资源(关闭数据库连接、网络连接)、清理临时文件等。✅ 初始化逻辑通常包括:资源加载(数据库连接、文件读取)、缓存初始化等。通过上述生命周期,Spring 提供了强大的扩展能力,开发者可通过。实现 Spring 提供的接口,在属性赋值完成后执行。实现 Spring 提供的接口,执行销毁逻辑。
2025-08-10 00:11:35
592
原创 微服务的好与坏
Java 使用微服务的核心价值在于支持大规模复杂应用的灵活扩展和快速迭代,适合业务场景复杂、团队规模大、需要长期演进的系统(如电商平台、金融核心系统)。但其劣势也很明显 ——分布式复杂性、运维成本、团队能力要求都远高于单体应用。因此,是否采用微服务需结合实际场景:小型应用(如内部管理系统)用 Spring Boot 单体架构更高效;大型复杂系统则可通过 “先单体后微服务” 的渐进式拆分(如 DDD 领域驱动设计)平衡收益与成本。
2025-08-08 23:23:18
1175
原创 java分布式定时任务
Component@Autowired@Autowired// 初始化定时任务(每分钟执行一次)// 执行任务(加分布式锁)try {// 执行核心逻辑} else {log.info("任务被其他节点执行,当前节点跳过");// 释放锁。
2025-08-08 22:51:15
1168
【企业信息化开发】金蝶云星空应用开发考试题库:单选与判断题解析及插件开发技术要点
2025-11-04
Java核心技术详解:从基础语法到并发编程及Spring框架的全面解析
2025-07-25
【铁路智能运维管理】基于Spring AI的铁路设备维修系统设计与实现:集成ZhiPu AI对话模型和RAG功能
2025-05-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅