- 博客(13)
- 收藏
- 关注
原创 时间复杂度与空间复杂度详解
本文详细解析了时间复杂度和空间复杂度的概念与应用。主要内容包括:1)时间复杂度衡量算法执行时间的增长趋势,使用大O表示法描述;2)推导时间复杂度的基本规则(加法规则、乘法规则和简化原则);3)分支语句的时间复杂度分析;4)对数阶O(log n)的特点与计算;5)常见复杂度对比及增长趋势;6)查找算法的时间复杂度实例分析;7)线性对数阶O(n log n)的原理与示例。文章通过代码示例和数学推导,帮助读者掌握算法复杂度分析的核心方法。
2026-02-05 15:59:48
681
原创 Java 泛型详解:原理与语法
Java泛型详解:类型安全与参数化编程 摘要:Java泛型是JDK5引入的核心特性,通过参数化类型实现编译期类型检查,消除强制转换并提高代码复用性。本文详细介绍了泛型的基本语法(泛型类、接口、方法)及其类型擦除原理,解释了Java采用伪泛型设计(运行时擦除类型信息)的原因是为了保持二进制兼容性。文章还分析了泛型与原始类型的区别,并通过示例展示了类型擦除如何通过桥接方法维持多态性。理解这些机制对避免ClassCastException和编写类型安全代码至关重要。
2026-01-02 15:22:12
936
原创 Java中三大异常处理方式(try-catch、throw、throws)
让我们把这三个关键词串联在一个完整的业务逻辑中:假设我们有一个银行转账// 1. throws 声明:// 这个方法告诉外界:“我可能会遇到钱不够的情况,调用者要准备好处理”// 2. throw 抛出:// 程序员发现逻辑错误(转账金额为负),主动制造异常扔出去throw new IllegalArgumentException("转账金额不能是负数!");// 3. throw 抛出:// 发现余额不足,主动制造一个“余额不足异常”扔出去。
2025-12-30 16:34:09
1328
原创 接口和抽象类有什么区别?
摘要: 接口与抽象类的主要区别体现在: 方法实现:接口方法默认抽象(Java8后支持默认/静态方法),抽象类可包含具体方法; 继承机制:接口支持多继承,抽象类仅单继承; 成员变量:接口变量默认为public static final常量,抽象类支持多种变量类型; 构造方法:接口无构造方法,抽象类有构造方法用于子类初始化; 设计理念:接口定义"Can-do"能力(如Flyable),抽象类定义"Is-a"关系(如Animal)。 核心差异在于接口强调功能规范,抽象类侧重
2025-12-30 14:40:52
1134
原创 详解Java中的多态
Java多态的实现方式主要有两种:方法重载和对象多态。方法重载是在同一个类中定义多个同名方法,通过参数不同(类型、数量或顺序)来区分,编译时即可确定具体调用哪个方法。对象多态则是子类对象可以转换为父类类型,但实际调用的是子类重写的方法,运行时根据对象实际类型决定执行哪个方法,实现"同一接口,不同表现"的特性。这两种机制共同构成了Java多态的核心特征。
2025-12-28 09:11:09
556
原创 服务熔断和降级保护
服务熔断与降级保护概述 服务熔断和降级是现代分布式系统中的重要容错机制。熔断类似电路保险丝,当检测到下游服务故障时会自动切断调用,防止雪崩效应;降级则是在系统压力大时主动关闭非核心功能,保障核心业务。二者常配合使用,熔断触发后通常执行降级逻辑。 核心区别:熔断是被动保护机制,关注服务调用链路;降级是主动策略,侧重业务功能取舍。典型应用场景包括第三方API调用、大促期间的资源优化等。主流实现框架有Hystrix、Resilience4J和Sentinel等。
2025-12-28 08:04:14
1163
原创 MyBatis-Plus 从入门到精通
MyBatis-Plus(MP)是MyBatis的增强工具,以"简化开发、提高效率"为核心目标。它提供通用CRUD操作、Lambda查询、代码生成器等强大功能,大幅减少SQL编写量。本文档详细讲解MP与Spring Boot的集成方法,包括项目初始化、依赖配置(mybatis-plus-boot-starter)、数据库连接设置及核心特性。学习MP将显著提升开发效率,特别适合需要快速开发数据库应用的Java程序员。通过代码示例展示基础
2025-06-16 16:05:11
1139
原创 创建一个对象用什么运算符?对象实例与对象引用有何不同?
类是一个模板,定义了对象的结构和行为,而对象实例则是根据这个模板创建出来的具体的实体。在Java中,对象是存储在堆内存(Heap Memory)中的,而对象引用则存储在栈内存(Stack Memory)中。栈内存中的对象引用指向堆内存中的对象实例。对象引用(Object Reference)是一个变量,它用来存储对象实例的内存地址。通过对象引用,我们可以访问对象实例的属性和方法。当说“对象引用指向对象实例”时,意味着对象引用变量保存了对象实例的内存地址。在Java中,多个对象引用可以指向同一个对象实例。
2025-04-09 22:22:20
653
原创 antPathMatcher.match()路径匹配详解
antPathMatcher.match是一个非常强大的工具,用于基于模式匹配路径。它支持多种通配符,能够灵活地定义路径匹配规则,广泛应用于 Spring 框架中的路径匹配场景。
2025-03-27 14:35:47
939
原创 Spring、Spring MVC 和 Spring Boot区别
Spring是一个IOC容器,用来管理Bean,使用依赖注入实现控制反转,可以很方便的整合各种框架,提供AOP机制弥补OOP的代码重复问题、更方便将不同类不同方法中的共同处理抽取成切面、自动注入给方法执行,比如日志、异常等Spring MVC是spring对web框架的一个解决方案,提供了一个总的前端控制器Servlet,用来接收请求,然后定义了一套路由策略(url到handle的映射)及适配执行handle,将handle结果使用视图解析技术生成视图展现给前端。
2025-03-26 23:03:40
1333
原创 Spring Cloud Gateway 中 chain.filter(exchange) 的含义
在Spring Cloud Gateway中,请求的处理是通过一系列的过滤器链(GatewayFilterChain)来完成的。每个过滤器(GlobalFilter或GatewayFilter)都可以对请求进行处理,但通常不会直接处理完所有逻辑,而是将请求传递到下一个过滤器,直到所有过滤器都处理完毕,最终将请求发送到目标服务。是 Spring Cloud Gateway 过滤器链机制的核心,通过这个方法调用,可以确保请求能够继续传递到后续的过滤器,最终到达目标服务。在实际开发中,正确使用。
2025-03-26 14:52:45
1491
1
原创 零基础学会Java反射:从入门到实践
反射是工具而不是银弹(何为银弹?狼人传说中,只有银弹(银质子弹)才能制服这些猛兽。对应到软件开发活动中,银弹特指开发者们寻求的一种克服软件开发这个难缠的猛兽的“万能钥匙“),合理使用能让代码更灵活,滥用会导致维护困难。建议在框架开发、动态扩展等场景中使用,常规业务代码优先使用传统面向对象方法。阅读包源码尝试实现简单的IoC容器结合注解实现更优雅的反射编程学习反射在热门框架(如Spring)中的应用。
2025-02-16 11:10:17
692
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅