自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 问答 (1)
  • 收藏
  • 关注

原创 动态规划优雅计算比特位数:从0到n的二进制中1的个数

本文介绍了一种高效的动态规划算法来计算整数的二进制表示中1的个数(汉明重量)。该算法利用二进制数的特性:通过位运算(i&(i-1))检测2的幂次,并以最高有效位为基准进行动态规划转移(bits[i]=bits[i-highBit]+1)。该方法仅需O(n)时间复杂度和O(1)额外空间,代码简洁优雅(约10行),适用于位图处理、密码学等场景,是动态规划与位运算结合的经典范例。

2025-06-12 18:17:18 415

原创 Java枚举详解:从基础到高级应用

《Java枚举高级特性与应用指南》摘要 本文全面解析Java枚举的核心特性和高级用法。首先介绍枚举作为类型安全常量的基础定义,然后详细讲解其高级特性:1)添加属性和方法实现业务逻辑;2)通过接口实现统一行为规范;3)利用抽象方法实现策略模式。文章还总结了枚举的关键API方法,并重点分析了其在设计模式中的经典应用,包括线程安全的单例实现和状态机模式。最后,文章明确了枚举的最佳使用场景(如状态码、错误码等)及其存在的局限性。通过系统的实例演示,展现了枚举作为功能完备类的强大能力,是Java开发中处理固定集合、实

2025-05-30 17:31:40 247

原创 如何用 SQL 找到最受欢迎的用户?

本文介绍了如何通过SQL查询找出社交网络中好友数量最多的用户。使用RequestAccepted表(包含requester_id和accepter_id字段),通过UNION ALL合并所有好友关系,统计每个用户ID出现的次数即好友数量,最后按数量降序取最大值。关键点在于使用UNION ALL保留重复记录确保准确计数,而LIMIT 1则返回好友数量最多的单个用户。该方案简洁高效,能快速识别最受欢迎用户。

2025-05-26 23:13:56 657

原创 基于MyBatis的学生管理系统实现详解

本文通过学生管理系统案例,详细讲解了MyBatis动态SQL的实现方法。主要内容包括:1)项目结构设计;2)核心功能实现:动态条件查询(使用<where>和<if>标签)、批量插入(<foreach>标签)、批量删除、自增ID获取;3)常见问题解决方案:条件不生效、批量插入报错等;4)最佳实践建议:启用SQL日志、参数校验等。文中提供了完整的XML配置和Java测试代码,展示了如何灵活运用MyBatis处理复杂SQL场景,特别适合需要实现动态查询和批量操作的开发场景。

2025-05-24 16:28:57 242

原创 深入解析MySQL中的HAVING关键字:从入门到实战

HAVING关键字在SQL查询中用于对GROUP BY分组后的结果进行条件过滤,特别是在需要基于聚合函数(如SUM、AVG、COUNT)或分组后的列值筛选数据时。与WHERE不同,HAVING在分组后执行,适用于处理“组”而非“行”。典型应用场景包括筛选订单总数超过特定值的客户或平均工资高于公司整体的部门。使用HAVING时,应优先使用WHERE减少数据量以优化性能,并避免在HAVING中进行复杂计算。通过实际案例,如电商数据分析,展示了HAVING在筛选高消费低退货率客户中的实际应用。掌握HAVING的使

2025-05-23 21:44:16 861

原创 Java包装类与128陷阱:你必须知道的细节

本文详细介绍了Java中的包装类及其相关机制。首先,基本类型与包装类的对应关系及其缓存范围被明确列出,如Integer缓存范围为-128~127。其次,自动装箱与拆箱机制通过代码示例进行了说明,自动装箱使用valueOf()方法,而自动拆箱则调用intValue()等方法。此外,文章深入解析了“128陷阱”,通过比较基本类型和包装类在不同情况下的比较结果,揭示了缓存机制和对象创建方式的差异。最后,总结了包装类的缓存机制、对象创建原则、比较规则及其对性能的影响,强调了在高频操作中优化自动装箱/拆箱的必要性以及

2025-05-14 23:52:52 367

原创 Java基础之静态代理和动态代理

静态代理和动态代理是两种常见的代理模式,用于在不修改原有代码的情况下增强或扩展功能。静态代理在编译期确定代理类,需要手动编写代理类并实现与被代理类相同的接口,适用于对已有业务代码进行增强的场景。动态代理则在运行时动态生成代理对象,通过java.lang.reflect.Proxy和InvocationHandler实现,具有代码解耦、灵活扩展和运行时决策的优势。静态代理的代码结构包括抽象主题、真实主题和代理类,而动态代理通过InvocationHandler处理方法的调用,减少了重复代码的编写。两种代理模式

2025-05-14 23:28:13 338

原创 深入理解Java反射机制:原理与实践

反射是Java提供的一种动态获取类信息的能力。通过反射,开发者可以在程序运行期间完成以下操作:获取类的名称、字段、方法、构造方法等元数据动态创建对象实例调用对象的方法或修改字段值实现泛型擦除后的类型判断反射的核心类是,它代表了类的元数据,是反射操作的入口。

2025-05-08 00:30:31 649

原创 删除排序链表中的重复元素:三种解法详解

对于已排序链表,方法三是最优解,其时间复杂度和空间复杂度均为最优。递归法和迭代法虽然逻辑简单,但在处理大规模数据时性能不足。建议根据链表是否有序选择合适的算法。

2025-05-06 22:27:36 1035

原创 MySQL JOIN详解:掌握数据关联的核心技能

在关系型数据库中,数据通常被拆分到不同的表中以提高存储效率。当我们需要从多个表中组合数据时,JOIN操作就成为了最关键的技能。通过本文,您将全面掌握MySQL中7种JOIN操作,并学会如何在实际场景中灵活运用。复合索引顺序:(join_column, selected_column)使用建议:可通过调换表顺序转换为LEFT JOIN。遍历employees表的每条记录。注意风险:可能产生意外的字段匹配。分层统计:保留所有父级记录。应用场景:数据差异对比分析。:获取两个表的交集数据。:生成所有可能的排列。

2025-05-05 23:26:51 707

原创 比较两种判断相同二叉树的方法:递归与遍历序列对比

在二叉树操作中,判断两棵树是否相同是一个常见的问题。和,分析它们的优缺点,并探讨为何递归法是更优的选择。

2025-05-05 22:19:46 469

原创 深入理解StringBuilder:高性能字符串操作的利器

StringBuilder是Java中用于高效处理字符串的类。由于String的不可变性,频繁拼接字符串会创建大量新对象,导致性能低下和内存占用高。相比之下,StringBuilder通过可变字符数组实现字符串操作,避免了频繁的对象创建和垃圾回收。其核心原理包括字符数组作为底层数据结构,以及当容量不足时触发的扩容机制(新容量为原容量的两倍加二)。StringBuilder提供了一系列API,如append、insert、delete和reverse等,支持灵活的字符串操作。此外,StringBuilder还

2025-05-05 00:25:07 153

原创 Java基础之继承与多态

通俗的讲继承就好比方:上世纪开国之后我国的的工人,加入你的父亲时一名工人,由于年龄的原因不得不退休,你可以顶替你父亲的名额继续当工人,你拥有你父亲的资源,这个就叫继承 父类就是你的父亲, 子类就是你, 超类就是被继承的类 语法:class 子类 extends 超类 { ... } 定义父类 public class father{ } 定义子类: public you exte

2025-04-17 16:50:06 512

原创 Java基础第一章Java 的基本程序设计结构

char 类型原本用于表示单个字符。不过,现在情况已经有所变化。如今,有些 Unicode 字符可以用一个 chai•值描述,另外一些 Unicode 字符则需要两个 char 值。char 类型的字面量值要用单引号括起来。例如:W 是编码值为 65 所对应的字符常量。它与 "A" 不同,"A" 是包含一个字符 A 的字符串, char 类型的值可以表示为十六进制值,其 范围从 \u0000 到 \Uffff。例如:W2122 表示注册符号 ( ), \u03C0 表示希腊字母 it。

2025-04-02 20:19:56 585

原创 平衡二叉树

符合满二叉树又任意节点的高度差不少超过1。

2025-03-31 12:48:00 139

原创 mysql中关于日期的语法和函数

格式YYYY-MM-DD,仅存储日期。:格式HH:MM:SS,仅存储时间。:格式,存储日期和时间。:与DATETIME类似,但受时区影响,范围较小(1970-2038)。:存储年份(4位或2位格式)。-- 语句执行时刻的时间-- 2023-- 10-- 5-- 14-- 30-- 0-- October-- 第40周(默认周日为周首)-- 202310。

2025-03-28 00:01:25 992

原创 mysql 中 update语句执行流程

update语句详细执行流程

2025-03-25 16:30:30 278

原创 innobd和Myisam的区别

支持(原子性、一致性、隔离性、持久性),适合需要高数据完整性的场景提供COMMIT和ROLLBACK操作,确保复杂操作可回滚。

2025-03-21 16:37:23 256

原创 若以框架代码生成部分

在数据库里面新建立一张stude表一定要在comment加上注释要不然后面选择表的时候不显示然后进入若以前端在进入代码生成部分。

2025-03-20 21:31:00 199

原创 八大排序之堆排序

【代码】 八大排序之堆排序。

2025-03-20 15:24:45 123

原创 二叉树之删除节点

1:删除叶子节点。

2025-03-19 23:53:10 527

原创 mysql史上最详细的忘记密码后修改密码(一步一步来肯定能成功)

选中你的msql服务右键点击停止如果有好多个那就全部都停止服务(一点影响都没有后面还会再次打开)在接下来输入下面这个代码2020是我的密码注意改成你自己想要的 最后的分号不要丢!回到刚才的服务界面右键启动你的服务(如果不知道是那个就全部启动没有任何影响)然后进入你的mysql安装地址下的bin目录。首先在左下角输入”服务“ 点击进入服务。出先上面这个界面直接回车什么都不要输入。在地址栏输入cmd进入下面那个界面。关闭原来不让关闭的那个界面!输入这个代码进入下面的界面。注意这个界面不要关闭!

2025-03-19 15:08:19 282

原创 mysql 多表联查

1:内联查询,2,做外联3:右外联4:笛卡尔积查询//这个不好一般不会用这个。

2025-03-18 16:58:10 277

原创 JAVA模拟栈和对列

与数组不同和链表不同限制在两端进行插入和删除栈顶默认初始值是-1,每次查入栈顶++删除栈顶--我们判断栈是否满了,我们可以设置一个值模拟栈的容量maxsize:每次插入之前判断栈顶下标和maxsize相比是否相等,删除看是否栈空将栈顶下标和-1进行对比。

2025-03-16 11:21:23 372

原创 SQL语言入门

创建数据库的语法创建数据库的语法基本的语法:数据库名称;正宗的语法:数据库名称编码collate校对规则查看数据库(重点)‐‐ 查看所有的数据库use 数据库名称;(*****) ‐‐ 使用数据库show create database 数据库名称;‐‐ 查询数据库的创建的信息‐‐ 查询当前正在使用的数据库3.删除数据库数据库名称;4.修改数据库数据库名称校对规则5.创建表表名称(字段1 类型(长度) 约束。

2025-03-15 19:19:52 387

原创 gitee工具建立仓库和使用

首先安装git和注册gitee仓库账号可以选择官网也可以看这篇文章。

2025-03-10 22:03:26 177

原创 基于仓库管理系统的增删

简单的商品增删改查

2025-03-10 21:47:42 153

原创 二分查找和删除数据(低时间复杂度和空间复杂度)

两个指针快的扫描是否等于待删除数据, 慢的将不需要删除的数据重写到数组时间复杂度O(n)空间复杂度O(1)

2025-03-10 21:45:40 189

原创 项目 流程

低耦合:

2025-03-09 09:24:23 212

原创 八大排序

arr[]两两千后进行比较 if ( arr[i]>arr[i+1]) { swap(arr[i],arr[i+1])}

2025-02-18 11:33:48 170

原创 SQL语句的使用(mysql 单表)

大于<小于>=大于等于<=小于等于<>不等于。

2025-02-07 10:11:39 280

原创 Javascript (同后js)基础语法

Javascrip(同后js) js 不同于其他的语言定义变量 需要加类型和";js定义变量统一用var + 变量名 或 var + 变量名=”**“(**指代 整数 ,小数,字符串 布尔类型)例子。

2025-01-25 14:10:27 300

原创 CSS搭配html

是一组样式设置的规则,用于控制页面的外观样式比如控制html中的样式。CSS:Cascading Style Sheet 层叠样式表。可以直接在html直接写 也可以引用css文件。

2025-01-16 21:29:05 108

原创 HTML各种标签的使用

首先是整体在一块的加入span标签后插入换行标签br后箭头位置两个换行符div标签没有什么特别的语义与sapan标签类似分割相比于其他的换行标签,p标签每段中间有段落间距。

2025-01-15 13:58:32 193

原创 线性代数向量组

2024-07-26 17:19:48 292

原创 线性代数矩阵

矩阵的基本知识点。

2024-07-26 16:20:36 305

原创 线代第一讲行列式知识点总结

2024-07-22 14:14:47 345

私服Nexus:maven开发必备常识

nexus 的rar安装包

2025-06-06

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除