
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
LeetCode 2379(得到 K 个黑块的最少涂色次数)和 2841(几乎唯一子数组的最大和)是定长滑动窗口的两道经典题。前者在固定窗口内统计特定字符数量,后者结合 HashMap维护窗口内不同元素的个数。本文从暴力枚举出发,逐步优化到 O(n) 滑动窗口解法,涵盖 Java代码实现、复杂度分析和示例推演,文末还给出了定长滑窗的通用模板,帮你一次掌握这类题型的解题框架。

LeetCode 2461(长度为 K 子数组中的最大和)和 1423(可获得的最大点数)是定长滑动窗口的两道进阶题。2461 要求在固定窗口内所有元素互不相同,核心是用 HashMap维护频次表,当 map.size() == k 时更新最大和;1423则需要巧妙的补集转化——将"首尾拿牌求最大"转化为"中间连续窗口求最小",用定长滑窗一次遍历即可。本文从暴力枚举到滑动窗口逐步优化,附完整 Ja

本文是《Java基础核心知识点全解》系列第 1 篇,面向 Java 初学者,从 .java -> javac -> .class -> JVM 这条主线出发,讲清 Java 程序从源码到运行结果的完整过程,并结合 HelloWorld 示例拆解 JDK、JRE、JVM、package、import、classpath 的关系。文章最后整理“找不到或无法加载主类”等常见问题排查方法,帮助读者建立 J

本文是 Java 基础核心知识点全解系列第 2 篇,系统梳理 Java 数据类型与运算符的入门核心内容,包括八种基本数据类型、引用类型、变量赋值规则、字面量默认类型、自动类型转换、强制类型转换、包装类装箱拆箱、字符串 equals 比较、整数除法、复合赋值、短路逻辑和浮点数精度等常见易错点,帮助初学者建立清晰的 Java 类型系统认知。

本文系统讲解 Java 基础中的流程控制与数组,围绕 if-else、switch-case、while、do-while、for、break、continue、return 等语法展开,并结合一维数组、多维数组、数组遍历、数组默认值、数组越界和数组引用共享问题,帮助初学者建立清晰的执行流程和数组使用认知。

本文围绕 Java 面向对象基础展开,系统讲解类与对象的关系、字段与成员方法、new 创建对象、构造方法与构造器重载、this 关键字、static 静态成员,以及 Java 参数传递和对象引用共享的常见误区。适合已经掌握变量、流程控制和数组,准备进入面向对象编程的初学者阅读。

本文系统讲解 Java 面向对象中的封装机制,围绕 private、public、protected、包级权限、Getter/Setter、数据不变式和 API 边界展开,并补充 DTO、record、返回副本、Collections.unmodifiableList 等真实工程中的权衡场景。适合已经掌握类与对象,想进一步理解封装如何维护对象状态、降低耦合并设计清晰接口的初学者阅读。

本文系统讲解 Java 继承机制,围绕 extends、父子类关系、super、构造方法链、方法重写、Object 类、equals/hashCode、字段隐藏和 final 展开,并进一步分析继承的工程代价,包括脆弱基类、CountingHashSet 计数问题、组合优先以及 is-a 行为契约判断。适合已经掌握类、对象和封装,准备深入理解 Java 面向对象继承设计的初学者阅读。

本文系统讲解 Java 多态的核心机制,围绕编译时类型、运行时类型、动态方法查找展开,说明父类引用为什么能指向子类对象、为什么只能访问父类视角下的成员,以及重写方法为什么会在运行时执行子类版本。文章还结合向上转型、向下转型、instanceof、字段隐藏、方法重载等常见误区,帮助初学者真正理解多态背后的编译器检查与 JVM 动态绑定规则。

本文面向已经理解继承、方法重写和多态的 Java 初学者,系统讲解抽象类与接口的核心用法。内容包括 abstract class、抽象方法、interface、implements、默认方法、静态方法、接口常量、多接口实现和默认方法冲突,并通过“共同模板”和“能力约定”对比抽象类与接口的适用场景,帮助读者理解面向接口编程的基础思想。








