JAVA
文章平均质量分 85
网络相关
阈雪
一个一言难尽的测试开发工程师 (微信:fengruxue)
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
RocketMQ分布式消息中间件
Apache RocketMQ 是一款为现代互联网和分布式系统而生的、功能全面的消息中间件。历经考验:诞生于全球最复杂的电商场景,稳定性和性能毋庸置疑。功能全面:提供了事务、顺序、定时、过滤、回溯等几乎所有你能想到的消息功能。生态友好:对 Java/Spring 生态支持极好,易于上手和集成。中文支持:作为国产开源项目的佼佼者,拥有丰富的中文文档和社区支持。因此,如果你的业务场景涉及核心交易、金融支付、数据同步。原创 2025-09-12 18:30:08 · 749 阅读 · 0 评论 -
HSF框架
HSF 是一款诞生于世界级互联网公司内部、经过最严苛业务场景考验的企业级 RPC 框架。它的核心优势不在于开源和生态,而在于其无与伦比的稳定性、性能和在阿里云平台上的无缝集成体验。降低技术门槛:无需组建团队研究和维护复杂的分布式系统组件。提升开发效率:聚焦业务开发,快速搭建微服务架构。获得稳定性保障:直接享受来自阿里巴巴的最佳实践和基础设施能力。获得企业级支持:遇到问题时,有专业的阿里云技术支持团队作为后盾。原创 2025-09-12 17:48:28 · 1754 阅读 · 0 评论 -
Dubbo 框架
这个 JAR 包需要被服务提供者和消费者共同依赖。// 定义服务接口// 定义实体类(需实现 Serializable)Apache Dubbo 的核心价值在于:它不仅仅是一个 RPC 框架,更是一套完整的服务治理解决方案。对于传统企业级应用:Dubbo 提供了开箱即用的高性能 RPC 和丰富的治理功能,能极大地提升开发效率和系统稳定性。对于微服务架构:Dubbo 是构建微服务间通信的绝佳选择,其服务发现、负载均衡、容错机制是微服务的基石。对于云原生未来。原创 2025-09-12 17:47:02 · 1287 阅读 · 0 评论 -
MyBatis 基本概念
MyBatis 的核心价值在于:它找到了 SQL 可控性和开发效率之间的完美平衡点。最佳实践:始终使用 Mapper 接口 +@Mapper注解,而不是古老的SqlSession模板方法。简单 SQL 用注解,复杂 SQL(尤其是动态 SQL)用 XML。开启驼峰命名映射,让user_name自动映射到userName。使用 ResultMap 处理复杂关联映射,而不是自动映射。善用动态 SQL 来构建灵活可复用的查询。。原创 2025-09-12 15:50:33 · 953 阅读 · 0 评论 -
MyBatis XML 映射文件中的标签
始终指定resultType或resultMap:对于<select>语句,必须指定返回结果类型。优先使用#{}:防止 SQL 注入,除非必须使用${}(如动态表名、列名)。善用动态 SQL:使用<where><if>等标签构建灵活查询,避免在 Java 代码中拼接 SQL。复杂映射用resultMap:对于字段名和属性名不一致或有关联关系的情况,使用。使用<sql>片段:提取公共 SQL 部分,提高代码复用性和可维护性。谨慎使用缓存。原创 2025-09-12 15:47:21 · 774 阅读 · 0 评论 -
Spring 中的Bean基本概念
在 Spring 框架中,Bean 就是一个由 Spring IoC 容器实例化、组装和管理的对象。简单来说,Bean 就是 Spring 容器里的“员工”。容器是“公司”,它负责招聘(实例化)、培训(装配)、分配任务(管理)这些员工,而你作为“老板”(开发者),只需要告诉公司你需要什么样的员工,公司就会帮你安排好一切。你需要告诉 Spring 容器:“嘿,这是我的一个员工(Bean),请你来管理它。概念比喻说明Spring IoC 容器公司。原创 2025-09-12 13:38:31 · 816 阅读 · 0 评论 -
Bean 的生命周期和作用域
Override@Override// 清理逻辑// 其他方法实现...// 注册自定义作用域@Override// 使用自定义作用域@Component// 每个线程有自己的实例生命周期:关注 Bean 从创建到销毁的完整过程,掌握各个扩展点(等)作用域:根据业务需求选择合适的作用域,理解不同作用域的生命周期和适用场景最佳实践:优先使用注解方式进行生命周期回调,合理选择作用域,注意作用域代理的使用。原创 2025-09-12 13:28:13 · 1000 阅读 · 0 评论 -
IOC 控制反转
IOC 不仅仅是技术,更是一种设计哲学好莱坞原则:"Don't call us, we'll call you"(不要打电话给我们,我们会打给你)依赖倒置原则:依赖抽象(接口),而不是具体实现单一职责原则:每个类只关注自己的核心功能,不负责依赖的创建✅ 代码解耦:组件之间松散耦合✅ 易于测试:可以轻松注入 mock 对象✅ 灵活配置:通过配置改变组件行为✅ 集中管理:统一的生命周期管理✅ 代码简洁。原创 2025-09-12 12:34:45 · 695 阅读 · 0 评论 -
AOP(面向切面编程)
Aspect // 声明这是一个切面@Component // 让 Spring 管理这个 bean// 1. 定义切入点:匹配 com.example.service 包下的所有方法// 2. 前置通知:在方法执行前执行System.out.println("方法 " + methodName + " 开始执行,参数: " + Arrays.toString(args));// 3. 返回后通知:在方法正常返回后执行。原创 2025-09-12 11:56:34 · 925 阅读 · 0 评论 -
Java Lambda 表达式深度解析
Lambda 表达式是一个匿名函数,即没有名称的函数。它允许你将函数作为方法参数传递,或者将代码本身作为数据处理。函数式接口是只有一个抽象方法的接口。Lambda 表达式需要依赖函数式接口来实现。// 自定义函数式接口@FunctionalInterface // 注解可选,但推荐使用(编译器会检查)// 只能有一个抽象方法// 但可以有默认方法和静态方法。原创 2025-09-11 23:57:02 · 925 阅读 · 0 评论 -
JAVA内部类解析
类型中文名定义位置是否持有外部类引用可包含 static 成员主要用途成员内部类与类成员平级是否逻辑上紧密关联,需要访问外部类实例成员静态嵌套类与类成员平级,用static修饰否是逻辑上相关,但不需要访问外部类实例局部内部类方法或作用域内是否仅在特定作用域内使用的辅助类匿名内部类通常作为方法参数是否快速创建一次性的类实现,常用于事件监听核心概念。原创 2025-09-11 23:44:59 · 687 阅读 · 0 评论 -
JVM 内存结构深度解析
JVM内存结构是Java性能优化的核心基础。理解各个内存区域的特性和相互关系,掌握内存分配、回收机制,能够有效解决内存溢出、GC频繁等问题。通过合理的监控和调优,可以显著提升应用性能和稳定性。关键要点堆内存是对象存储的主要区域,需要合理配置大小方法区(元空间)存储类元信息,避免动态类滥用虚拟机栈需要注意栈深度和线程数控制合理选择垃圾收集器和参数配置使用工具监控和分析内存使用情况。原创 2025-09-11 23:11:10 · 1035 阅读 · 0 评论 -
Java 线程与进程深度解析
考虑因素选择进程选择线程隔离性要求高(安全关键系统)低(内部组件)资源开销可接受较大开销要求低开销通信成本可接受较高IPC成本需要高效共享内存崩溃影响需要故障隔离可接受级联失败开发复杂度较高(跨进程协调)较低(共享内存)伸缩性垂直扩展(单机多进程)水平扩展(分布式线程)语言支持多语言混合单一语言环境典型场景微服务、批处理系统Web服务器、实时系统。原创 2025-09-11 19:55:30 · 1344 阅读 · 0 评论 -
Java I/O 模型深度解析:BIO、NIO、AIO 全面对比
在 Java 网络编程中,BIO、NIO 和 AIO 是三种不同的 I/O 模型,它们代表了网络通信技术的演进历程。理解这三种模型的区别对于构建高性能网络应用至关重要。原创 2025-09-11 19:41:33 · 1131 阅读 · 0 评论 -
Java I/O 流选择指南:字节流 vs 字符流
场景推荐方案原因图片/视频/音频文件字节流(BufferedInputStream)二进制数据网络数据传输字节流底层协议基于字节对象序列化字节流(ObjectOutputStream)Java序列化协议加密/压缩数据字节流算法操作字节级数据简单文本读写字符流(FileReader/FileWriter)简化文本处理需要指定编码的文本字符流(InputStreamReader)处理字符编码转换按行处理文本。原创 2025-09-11 19:26:33 · 841 阅读 · 0 评论 -
Java I/O 流深度解析
Java I/O(输入/输出)流是 Java 处理数据输入输出的核心机制,提供了统一的方式来处理各种数据源(文件、网络、内存等)的读写操作。I/O 流体系庞大而完善,是 Java 开发者必须掌握的重要技能。原创 2025-09-11 19:22:38 · 900 阅读 · 0 评论 -
Java 集合之Map
/ 必须重写equals和hashCode@Override@Override// 使用。原创 2025-09-11 19:00:56 · 708 阅读 · 0 评论 -
Java 集合框架深度解析
Java 集合框架(Java Collections Framework, JCF)是 Java 语言的核心组成部分,提供了一套高效、灵活的数据结构和算法实现。它是处理对象集合的标准架构,广泛应用于各种 Java 开发场景。原创 2025-09-11 18:32:24 · 872 阅读 · 0 评论 -
Java 反射机制深度解析
反射(Reflection)是 Java 语言的核心特性之一,它允许程序在运行时动态地获取类型信息、操作类和对象。反射机制打破了传统编程的静态限制,为 Java 提供了强大的动态能力。原创 2025-09-11 17:29:25 · 870 阅读 · 0 评论 -
Java 泛型深度解析
/ 使用。原创 2025-09-11 14:09:31 · 471 阅读 · 0 评论 -
Java 方法重写与重载深度解析
方法名、参数列表必须完全相同返回类型相同或是父类返回类型的子类(协变返回)访问权限不能比父类更严格不能抛出比父类更宽泛的异常方法名相同参数列表不同(类型、数量或顺序)返回类型、访问修饰符、异常声明可以不同。原创 2025-09-11 13:34:29 · 775 阅读 · 0 评论 -
Java 接口与抽象类深度解析
:不同类实现相同行为。原创 2025-09-11 13:24:42 · 979 阅读 · 0 评论 -
Java 多态深度解析
字面含义:多态 = "多种形态"(Poly + Morphism)技术定义:同一操作作用于不同类的实例,产生不同的执行结果关键原则:父类引用指向子类对象,并调用被子类重写的方法。原创 2025-09-11 13:11:48 · 1034 阅读 · 0 评论 -
设计模式系列:策略模式
核心思想:定义一系列算法,将每个算法封装成独立类,并使它们可以相互替换。关键价值:让算法独立于使用它的客户端变化,避免冗长的条件判断(if-else/switch-case)。原创 2025-09-10 16:51:08 · 486 阅读 · 0 评论 -
设计模式系列:装饰器模式
核心思想:动态地为对象添加额外职责,相比继承更加灵活。关键特征:装饰器与被装饰对象实现相同接口,通过嵌套组合实现功能叠加。原创 2025-09-10 16:50:15 · 388 阅读 · 0 评论 -
设计模式系列:工厂模式
/ 产品族:UI组件// 产品族实现:现代风格@Override public void render() { System.out.println("现代按钮");@Override public void check() { System.out.println("现代复选框");// 抽象工厂// 具体工厂:现代风格工厂// 使用// 输出:现代按钮核心价值:保证同一产品族的组件风格一致(如整套Modern UI)原创 2025-09-10 16:49:07 · 491 阅读 · 0 评论 -
设计模式系列:代理模式
核心思想:为其他对象提供一种代理(替身) 以控制对这个对象的访问。关键能力:在不修改原始对象的基础上,通过代理对象增强功能(如权限校验、延迟加载、日志监控)原创 2025-09-10 16:47:09 · 304 阅读 · 0 评论 -
设计模式系列:观察者模式
核心思想:定义对象间的一种一对多依赖关系,当一个对象(Subject)状态改变时,所有依赖它的对象(Observers)自动收到通知并更新。别名:发布-订阅(Publish-Subscribe)模式。原创 2025-09-10 16:46:00 · 634 阅读 · 0 评论 -
设计模式系列:单例模式
实现方式线程安全延迟加载防反射攻击性能代码复杂度饿汉式✅❌❌⭐⭐⭐⭐⭐懒汉式(非同步)❌✅❌⭐⭐⭐⭐⭐⭐懒汉式(同步方法)✅✅❌⭐⭐⭐双重检查锁(DCL)✅✅❌⭐⭐⭐⭐⭐⭐⭐静态内部类✅✅❌⭐⭐⭐⭐⭐⭐⭐枚举✅❌✅⭐⭐⭐⭐⭐。原创 2025-09-10 16:44:15 · 477 阅读 · 0 评论 -
Redis 知识点汇总
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结Redis 简介 Redis 是一个用C 开发的数据库 ,它不仅可以用来做缓存,也可以用来做分布式锁,还有消息队列;它支持多种数据类型,还支持事务,持久化,Lua脚本,多种集群方案提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该..原创 2022-05-15 22:23:12 · 464 阅读 · 0 评论 -
各种类型的树
目录二叉树满二叉树完全二叉树平衡二叉树B树和B+树红黑数二叉树二叉树的存储分为:链式存储,顺序存储二叉树的遍历: 先序(根左右) ,中序(左根右) ,后序 (右左根)满二叉树每一层的节点数都达到最大的值完全二叉树除了最后一层,其他层都是满的,最后一层可以是满的,或者是在右边缺少连续节点平衡二叉树左子树和右子数的高度绝对值不超过1B树和B+树区别:1)B+数的所有子节点都是通过指针连接到一起2)....原创 2022-05-22 18:49:21 · 439 阅读 · 1 评论 -
泛型的基础
泛型的基础原创 2022-10-08 19:15:14 · 248 阅读 · 1 评论
分享