自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(152)
  • 收藏
  • 关注

原创 arkts组件SideBarContainer :让侧边栏像呼吸一样自然

SideBarContainer 是 ArkTS 中专门处理「侧边栏+内容区」布局的容器组件,就像给应用装了一个智能抽屉——需要时滑出,不需要时自动隐藏。

2025-12-10 21:12:19 931

原创 ArkTS ForEach 参数解析:组件与键值生成器

函数类型参数是否必选最佳实践组件生成器item: 是, index: 否根据需要决定是否使用index键值生成器item: 是, index: 否使用数据项的唯一ID,避免index。

2025-12-10 21:08:11 453

原创 介绍Uvicorn

是 Python 世界里的"光速引擎",专为 ASGI 而生。Uvicorn 就是这个标准下的。传统 WSGI 服务器(如 Flask 自带的 Werkzeug)在面对高并发、长连接或实时通信时,性能瓶颈明显。FastAPI 实例本身就是 ASGI 应用,Uvicorn 作为协议翻译官,将 HTTP 请求转换为 ASGI 消息格式。"Uvicorn 就像 Python 世界的 Nginx,它不会让你的代码跑得更快,但会让你的代码飞得更远。,它让开发者可以专注于业务逻辑,而无需担心底层网络性能。

2025-12-02 13:38:43 559

原创 ArkTS之装饰器

这类装饰器用于定义和标记UI组件的结构和角色。装饰器作用使用场景@Component标记一个自定义组件构建可复用的UI单元@Entry标记应用的入口组件每个页面有且仅有一个@Preview用于DevEco Studio预览开发调试阶段。

2025-11-22 11:35:37 859

原创 ArkTS 关键字速查笔记

ArkTS 在 TypeScript 语法之上,针对鸿蒙生态与高性能场景做了。本笔记把官方文档与社区实践中最常用的关键字按场景分组,方便你随查随用。

2025-11-22 11:31:14 958

原创 mysql最新安装教程

然后 win+R 输入cmd 或者 找到终端。输入命令 mysql -u root -p。下载位置不要有中文,空格,特殊字符。然后一路点击确定退出来。然后输入刚才设置的密码。

2025-09-17 17:45:54 273

原创 【无标题】

配置环境变量(重要)

2025-09-15 17:39:28 172

原创 2025-安装集成环境XAMPP

如果之前安装过MySQL,可以不用管了。

2025-09-09 17:52:06 254

原创 MySQL锁的分类

能用行锁不用表锁,能用乐观锁不用悲观锁,锁的粒度越小越好!

2025-08-17 11:06:20 255

原创 负载因子(Load Factor) :哈希表(Hash Table)中的一个关键性能指标

负载因子 (λ) = 哈希表中已存储的键值对数量 (n) / 哈希表的总容量(槽位数,桶数)(m)λ = n / mn:当前哈希表中实际存储的元素个数。m:哈希表底层数组的长度,也就是“桶”(bucket)或“槽”(slot)的总数。

2025-08-14 23:01:21 851

原创 解剖HashMap的put <五> JDK1.8

在 HashMap 的put流程中,—— 这是维持 HashMap 性能的关键一步。这一步是最后一步,以下完整代码。

2025-08-14 22:59:20 1038

原创 解剖HashMap的put <四> jdk1.8

— 这是实际执行数据存储的步骤,根据第三步(处理哈希冲突)的判断结果,要么更新已有 Key 的 value,要么将新 Key-value 插入到对应的数据结构中。

2025-08-14 22:51:33 368

原创 解剖HashMap的put <三> JDK1.8

完成了前两步,第三步是 “处理哈希冲突”—— 当计算出的索引对应的数组位置(桶)已经有元素时,需要根据桶中元素的结构(链表或红黑树)进行针对性操作。第三步的核心是 “在冲突中平衡正确性与效率”:既要通过 Key 的唯一性检查保证数据准确,又要通过合理的存储方式和结构优化(链表转红黑树)避免冲突导致的性能下降,最终维持 HashMap “高效存取” 的核心优势。经过第一步(计算哈希值)和第二步(计算索引)后,我们得到了元素要放入的桶索引。此时会检查数组的(即桶的头节点):JDK 1.8 中,桶的结构有两种:链

2025-08-14 22:47:43 1066

原创 解刨HashMap的put流程 <二> JDK 1.8

好的,我们接着 HashMap 的put流程往下讲)。第一步已经计算出了 Key 的哈希值,。这一步是连接哈希值与实际存储位置的关键,核心目标是:将第一步计算出的哈希值(32 位整数,范围极大)“映射” 到数组的有效索引范围内(0 ~ 数组容量 - 1)。

2025-08-14 22:36:26 649

原创 这个就是哈希冲突

哈希冲突(Hash Collision),也称为哈希碰撞,是指。简单来说,就是不同的“钥匙”(键)打开了同一把“锁”(哈希地址)。

2025-08-14 22:26:26 962 1

原创 解剖HashMap的put流程 <一> (JDK 1.8)

第一步是计算哈希值:这是 HashMap 将 Key 映射到数组索引的基础,是实现高效存取的前提。解决的核心问题:将任意类型 Key 转换为可用于数组索引的整数,同时通过优化分布减少冲突,保证效率。计算逻辑hashCode()→ 扰动函数(混合高低位) → 位运算()→ 得到索引。这种设计既利用了数组的快速访问特性,又通过哈希优化平衡了时间和空间效率,是 HashMap 高性能的关键。

2025-08-14 22:16:38 700

原创 Java数据结构之LinkedList

优点缺点插入/删除效率高(O(1),已知位置)随机访问效率低(O(n))尾部添加无需扩容内存占用高(每个节点有指针)支持双向遍历(不适合频繁随机访问的场景考点答案底层结构双向链表随机访问性能O(n)(需遍历)插入/删除性能O(1)(已知位置)内存占用高(每个节点有指针)与 ArrayList 的区别链表 vs 数组,插入删除 vs 随机访问线程安全否,需用或fail-fast 机制与 ArrayList 一致,迭代时修改会抛异常适用场景。

2025-08-12 18:25:18 802

原创 Java数据结构之ArrayList

底层是Object[]数组,支持随机访问。自动扩容(1.5倍),但扩容成本高。线程不安全,适合单线程场景。尾部操作高效,中间插入/删除慢。是List接口最常用实现。

2025-08-12 17:54:46 571

原创 Java数据结构之数组

数组是一种线性数据结构,用于存储相同类型的元素的固定大小的集合。在 Java 中,数组本质上是一个对象,它存储一组连续的内存空间,用于存放相同类型的元素,并通过索引(index)来访问这些元素。// 声明一个长度为5的整型数组数组是固定大小、连续内存、同类型的集合。是 Java 中最基础的数据结构,访问快(O(1)),但增删慢(O(n))。多维数组是“数组的数组”。推荐使用工具类进行操作。虽然功能有限,但它是ArrayListHashMap等集合类的底层基础。

2025-08-12 17:43:00 733

原创 JJWT 核心工具类 Jwts 源码解析

Jwts类是 JJWT 库的工厂类,提供了创建 JWT 相关组件(Header、Claims、Builder、Parser)的静态方法。它是一个不可实例化的工具类,所有方法都是静态的。private Jwts() {} // 私有构造器防止实例化。

2025-08-02 16:52:43 535

原创 PasswordEncoder是什么,有什么用

在当今数字时代,密码安全是系统设计的基石。PasswordEncoder 作为 Spring Security 框架的核心组件,承担着保护用户凭证的关键职责。,主要用于处理密码加密算法的升级场景,虽然不是核心的加密 / 验证逻辑,但在系统安全迭代中具有重要实用价值。这两个方法构成了密码处理的完整生命周期(加密与验证),是所有实现类必须实现的核心逻辑。最后,如果还是觉得抽象,或者觉得没有理解到位,可以找我,我这里有可视化帮助大家理解。:验证用户输入的密码与存储的密文是否匹配。:支持密码加密策略的无缝升级。

2025-08-02 16:22:35 568

原创 在 Java 中,枚举类型为什么不能通过构造器来实例化

因此,Java 枚举类型有一些特殊的规则和限制,其中之一就是它们不能通过构造器来实例化。通过限制枚举常量的实例化方式,Java 确保枚举类型只能包含预定义的常量,从而避免了运行时可能出现的错误和不一致状态。:由于枚举常量是在编译时确定的,Java 可以对其进行编译时检查和优化。如果允许通过构造器实例化枚举,Java 将无法进行这种优化,因为实例化可以在运行时发生。的枚举常量,它们通过枚举内部的构造器进行初始化。因此,Java 枚举类型不允许通过构造器来实例化,而是通过在枚举定义中直接列出常量来创建。

2025-07-24 16:13:25 167

原创 为什么要写RedisUtil这个类

直接使用 RedisTemplate使用 RedisUtil需要记住各种 opsForXxx() 方法提供业务语义明确的方法需要手动处理异常异常已统一处理散落在各业务类中集中管理 Redis 操作灵活性高一致性高适合简单场景适合中大型项目所以我们的理解没有错,直接使用确实可以完成所有操作,但在实际项目中,使用RedisUtil这样的工具类能带来更好的可维护性、一致性和开发效率。

2025-07-03 10:41:56 671

原创 Spring Data Redis 常用接口和类

选择合适的客户端:生产环境推荐使用Lettuce,它支持异步和反应式编程合理配置序列化:根据数据类型选择合适的序列化方式使用连接池:特别是高并发场景下合理使用事务:注意Redis事务与关系型数据库事务的区别考虑缓存策略:合理设置过期时间,避免内存浪费监控连接状态:实现健康检查机制异常处理:妥善处理Redis连接异常和超时情况键命名规范:使用统一的命名规范,如"业务:类型:ID"格式这些接口和类的合理使用可以充分发挥Redis的高性能特性,同时保持代码的可维护性和扩展性。

2025-07-03 10:30:05 650

原创 设计模式篇:灵活多变的策略模式

最后,策略模式不仅仅是一种编码技巧,它体现了"分而治之"的古老智慧。作为行为型设计模式的代表,策略模式让我们能够定义一系列算法,并将每个算法封装起来,使它们可以相互替换。的模式,在软件设计中同样普遍存在。System.out.println("计算最快路线...考虑实时路况");System.out.println("计算最快路线...考虑实时路况");设计模式的最高境界是"无招胜有招"——不是机械地套用模式,而是理解其思想后自然地融入设计中。System.out.println("请先设置路线策略");

2025-07-03 10:10:14 951

原创 设计模式篇:理解工厂模式

当你需要一辆汽车时,你会怎么做?是亲自去采矿炼钢、制造零件、组装车辆,还是直接走进一家汽车4S店告诉销售员你需要的车型?显然,我们都会选择后者。在软件设计中,扮演的正是这个"4S店"的角色 - 它帮助我们以一种更优雅的方式创建对象,而无需关心对象构建的复杂细节。作为最常用的创建型设计模式之一,工厂模式在Spring、Hibernate等主流框架中随处可见。本文将带你深入理解工厂模式的核心思想、实现方式及其在实际开发中的应用价值。

2025-07-03 09:48:55 622

原创 锁是什么?分布式锁又是什么?他们为什么被发明出来?有什么用?

就在你点击“购买”按钮的瞬间,成千上万的用户也在做同样的事情。资源本身是分布式的(如共享数据库中的某一行记录、分布式文件系统中的一个文件、缓存集群中的一个Key)或需要跨节点协同(如主节点选举、全局唯一ID生成)。性能较差(锁操作是数据库IO),对数据库压力大,可靠性高度依赖DB,锁释放依赖应用层(需设置超时),不是最佳实践。只有拿到锁(钥匙/令牌)的线程,才能进入被锁保护的代码区域(临界区)进行操作。确保在分布式环境下,对共享资源(如数据库行、缓存Key、文件)的操作是互斥的,避免超卖、重复处理等。

2025-07-01 11:46:55 813

原创 说ConcurrentHashMap线程安全机制

ConcurrentHashMap是Java并发包中线程安全的Map实现,其线程安全机制经历了JDK7和JDK8两次重大演进。下面我将从底层实现角度详细解析其线程安全原理。

2025-05-21 15:36:02 1042

原创 JVM类加载机制

Override// 1. 读取类文件字节码// 2. 调用defineClass。

2025-05-19 11:27:11 1053

原创 JVM的内存划分

区域线程私有存储内容常见异常程序计数器✅字节码行号无虚拟机栈✅方法栈帧(局部变量、操作数栈等)本地方法栈✅Native方法栈帧堆❌对象实例、数组方法区(元空间)❌类信息、常量、静态变量直接内存❌堆外内存(NIO直接缓冲区)

2025-05-19 11:25:42 950

原创 JVM之GC常见的垃圾回收器

特点:单线程、STW(Stop-The-World)区域:新生代(复制算法)适用场景:客户端模式(如)、单核CPU参数:总结:简单高效,但停顿时间长。特点:Serial 的多线程版本区域:新生代(复制算法)适用场景:配合CMS使用(JDK8及之前)参数:总结:多线程提升GC效率,但仍有STW。特点:多线程、关注吞吐量()区域:新生代(复制算法)适用场景:后台计算型任务(如批量处理)参数:总结:适合不关心延迟,追求高吞吐的场景。特点:Serial 的老年代版本区域:老年代(标记-整理算法)适用场景:与Para

2025-05-19 11:10:53 867

原创 JVM的垃圾回收机制

垃圾回收(Garbage Collection, GC)是JVM自动管理内存的机制,主要负责:分配内存确保被引用的对象保持在内存中回收不再被引用的对象占用的内存。

2025-05-19 10:47:59 1267

原创 HashMap 与 HashTable 的区别

特性HashMapHashTable线程安全不安全安全(synchronized)null键值允许不允许性能更高较低迭代器Iterator继承类Dictionary初始容量1611扩容方式2n2n+1推荐使用场景单线程/高并发替代遗留系统。

2025-05-12 09:57:35 624

原创 Vue3中emits和emit

/ 返回 true 表示校验通过。,Vue 会知道这些是自定义事件,不会尝试将其作为原生 DOM 事件处理。,Vue 仍然可以接收事件,但会发出警告(如你的代码所示)。emits: ['事件1', '事件2', ...]'事件名': (payload) => {,Vue 会认为你可能误写了事件名,发出警告。,提高代码可读性,并避免 Vue 的警告。:让其他开发者一眼看出组件会触发哪些事件。,避免警告,并让组件的接口更清晰。

2025-05-08 14:28:59 1068

原创 Java中的super与this关键字

使用super主要是为了在子类中明确访问父类的成员,避免与子类成员混淆使用this主要是为了在类内部明确访问当前对象的成员,避免与局部变量混淆两者都可以用于构造器调用,但都必须位于构造器的第一行在静态上下文中,两者都不能使用。

2025-04-27 11:59:15 958

原创 Ollama 在本地分析文件夹中的文件

使用 Ollama 在本地分析文件夹中的文件,通常需要结合模型的能力(如 LLaMA、CodeLLaMA 等)和文件预处理步骤。ollama run llama3 "$(cat combined_content.txt) 请分析上述内容并总结要点。Ollama 目前不支持直接上传文件夹,需先将文件内容合并为单一上下文。:模型有 token 限制(如 LLaMA3 约 8k),大文件需分块处理。response = query_engine.query("你的问题")>>> 请根据这些内容回答我的问题...

2025-04-27 11:53:02 1742

原创 参数校验有什么意义

(Parameter Validation)是一个非常重要的环节,其目的是保证传入方法的参数符合预期,防止因无效或不合法的参数导致程序异常、错误或不可预测的行为。(Parameter Validation)是一个非常重要的环节,其目的是保证传入方法的参数符合预期,防止因无效或不合法的参数导致程序异常、错误或不可预测的行为。在实际开发中,参数校验是保障代码质量和系统稳定性的关键步骤,特别是在多系统集成或分布式环境下的复杂场景中,参数校验的重要性更加突出。

2025-04-27 11:49:00 1087

原创 布隆过滤器(Bloom Filter)简介

的巧妙设计,以极小内存实现高效存在性判断,是解决缓存穿透的经典方案。:有一定的误判率(False Positive,可能误报存在),且。若业务允许少量误判(如爬虫去重),可接受较高误判率以节省内存。:占用内存极少,查询效率高(O(k),k为哈希函数数量)。(如MurmurHash、SHA-1),确保均匀分布。对元素执行所有哈希函数,将对应的位数组位置设为1。若需精确判断(如金融场景),需结合数据库二次验证。:越大误判率越低,但占用内存越多。),并注意其局限性(误判、不可删除)。存在(可能有误判)。

2025-04-27 11:26:47 752

原创 AMQP(高级消息队列协议)标准

AMQP(高级消息队列协议)是一个开放的、应用层的协议,用于在不同的应用程序或系统之间进行可靠的消息传递。它允许软件组件之间通过消息队列进行通信,支持异步处理、解耦和流量控制等功能。

2025-04-24 09:08:09 333

原创 为什么Spring中@Bean注解默认创建单例Bean

在Spring框架中,使用@Bean注解定义的对象默认确实是单例的,这是由Spring容器的设计哲学和实际需求决定的。下面我从多个角度解释这一设计选择的原因和机制。

2025-04-23 21:32:34 1038

空空如也

空空如也

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

TA关注的人

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