自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (1)
  • 收藏
  • 关注

原创 ArrayList动态数组源码分析深度解析

ArrayList作为动态数组实现,通过1.5-2倍的扩容策略实现了高效可变长度容器。其核心设计包含:倍增扩容的均摊O(1)时间复杂度、非对称的扩容/缩容阈值设置、连续内存带来的优秀缓存局部性。性能特征上,尾部操作O(1)而中间操作O(n),适合以查询为主的场景。标准实现非线程安全,需外部同步。实践建议包括预分配容量、批处理操作和及时内存回收。通过LRU缓存等案例展示了其实际应用价值,体现了数据结构选择需要权衡具体场景需求。

2025-10-29 19:00:46 774

原创 Array数组的底层实现深度解析

本文探讨了仓颉语言中Array数据结构的底层实现与性能优化策略。主要内容包括:1)Array采用连续内存布局,实现O(1)随机访问和缓存友好性,但扩容成本较高;2)强类型检查与内存管理机制确保类型安全,同时优化内存布局;3)性能优化实践如预分配容量、顺序访问优化、边界检查处理等;4)通过多维数组和写时复制示例展示实际应用场景。文章强调理解底层机制对编写高性能代码和选择合适数据结构的重要性,提供了从理论到实践的完整指导。

2025-10-29 18:57:20 607

原创 仓颉语言 Queue 队列的实现方式:从顺序到链式的优雅演进

摘要:本文深入分析华为仓颉编程语言中队列的实现机制,重点探讨顺序队列、循环队列和链式队列三种实现方式。仓颉语言通过类型安全泛型、Option空值处理和自动内存管理等特性,在保证安全性的同时实现了高性能。循环队列通过取模运算解决假溢出问题;链式队列则提供了动态扩展能力。文章还对比了不同队列的适用场景,并介绍了在广度优先搜索等算法中的实际应用。仓颉语言独特的并发模型使队列在多线程环境下也能保持线程安全,展现了现代编程语言在性能与安全性方面的平衡设计理念。

2025-10-29 18:55:15 562

原创 仓颉TreeMap红黑树结构深度解析

摘要:仓颉语言中的TreeMap基于红黑树实现,提供了有序键值对存储功能。相比HashMap,TreeMap通过红黑树的五大约束规则(节点着色、根叶节点规则等)保持O(logn)时间复杂度,并天然支持有序遍历和范围查询。其核心优势在于插入删除时通过旋转和重新着色维持平衡,特别适合时间序列、优先级队列等场景。选择时需权衡:HashMap适合快速查找,TreeMap则擅长有序操作。文末代码演示了基本使用和自定义比较器实现,展示了TreeMap在有序数据管理中的实践价值。

2025-10-29 18:52:44 454

原创 仓颉言 Stack 栈的实现细节:从底层设计到性能优化

华为仓颉编程语言(2024.6发布)的栈实现展现了其在性能与安全性间的精妙平衡。顺序栈采用1.5倍扩容策略和及时内存收缩机制,优化移动端资源利用;链栈体现函数式思想,支持结构共享。语言特性包括Option类型空值安全、泛型支持和自动内存管理。栈实现适用于表达式求值等场景,并发时可通过并发对象库保证线程安全。仓颉通过类型系统和精细内存管理,在安全性、性能和易用性间取得平衡,为AI和分布式场景的未来扩展预留空间。

2025-10-29 18:48:00 1004

原创 Rust 内存泄漏检测与防范:所有权系统下的隐蔽陷阱

Rust虽然通过所有权系统保证了内存安全,但并不完全免疫内存泄漏。本文剖析了Rust中内存泄漏的常见场景:循环引用(Rc/Arc)、全局静态变量、未正确join的线程等,并提供了相应的解决方案(Weak引用、容量限制、JoinHandle等)。文章还介绍了内存检测工具(Valgrind、Heaptrack)和防范策略(RAII模式、DropBomb)。虽然Rust降低了泄漏风险,但仍需开发者理解其内存管理边界,谨慎使用mem::forget等特性,结合工具监控和良好设计来确保系统健壮性。

2025-10-29 17:31:03 1026

原创 Rust 日志级别与结构化日志:构建可观测的生产级应用

Rust日志系统通过log和tracing框架实现了高性能的结构化日志记录。文章探讨了日志级别语义、结构化日志实践、分布式追踪中的请求ID传播、性能优化技巧及敏感信息处理。最佳实践包括:合理划分日志级别、采用JSON格式输出、利用span自动传播上下文、实现懒求值优化性能,以及集成监控系统。Rust的类型安全和零成本抽象特性使其成为构建可观测性基础设施的理想选择,日志系统应既能快速定位问题又能深入理解系统行为。

2025-10-29 17:26:55 471

原创 Rust 数据结构选择与性能影响:从理论到实践的深度剖析

本文深入分析了Rust中常用数据结构(Vec、HashMap、BTreeMap等)的性能特点与适用场景。通过基准测试验证,当元素少于32个时,Vec的线性搜索通常比HashMap快2-3倍;BTreeMap在有序数据场景下表现优越;预分配容量可有效避免动态增长带来的性能损失;SoA模式在并行计算场景性能提升显著。文章提出实用建议:小数据集优先考虑Vec,中等规模无序数据用HashMap,有序需求选择BTreeMap,队列场景使用BinaryHeap,并强调性能优化需要结合具体场景通过基准测试验证假设。

2025-10-29 17:19:34 871

原创 Rust 线程安全性保证:Send 与 Sync 的深度解析

Rust 的核心竞争力之一是在编译期消除数据竞争(Data Race),而这一切的基础正是 Send 和 Sync 两个关键的 trait。与其他语言中依赖运行时检查或开发者自觉遵循规范不同,Rust 通过类型系统将并发安全性提升到了语言层面。理解 Send 和 Sync 不仅是编写并发代码的必修课,更是深刻领会 Rust 设计哲学的关键。

2025-10-29 13:47:21 722

原创 Rust 中 WebSocket 支持的实现:从协议到生产级应用

WebSocket 作为现代 Web 应用中实现全双工通信的核心协议,在实时应用场景中扮演着不可或缺的角色。Rust 凭借其零成本抽象、内存安全和强大的并发模型,成为构建高性能 WebSocket 服务的理想选择。本文将深入探讨 Rust 生态中 WebSocket 的实现机制,并通过实践展示如何构建生产级的 WebSocket 应用。

2025-10-29 13:38:55 685

原创 zigbee防止已入网的设备被touchlink抢走(泰凌微SDK)

基于泰凌微zigbeeSDK中,防止已经入网的设备被touchlink抢走

2025-01-20 13:31:40 509

原创 Home Assistant快速入门(附国内安装教程)

本文主要讲HomeAssistant的快速入门,包括HomeAssistant的概念以及如何安装及使用

2025-01-20 11:59:24 10726

原创 C++实现自动生成c++类中的属性的get和set方法

C++自动生成类中属性的get和set方法

2024-06-22 17:37:05 1124

原创 C语言笔试题:实现把一个无符号整型数字的二进制序列反序后输出

C语言笔试题:实现把一个无符号整型数字的二进制序列反序后输出

2024-06-22 10:42:33 728

原创 LVGL中LV_IMG_DECLARE的使用方法(自定义显示图片)【LVGL系列】

本文主要讲LV_IMG_DECLARE的使用方法

2024-05-19 20:25:14 2381 7

原创 在Linux下,用C语言实现TCP文件传输以及下载

本文使用TCP进行文件传输,支持不同的主机进行传输文件

2024-05-12 18:46:21 1001 3

原创 TCP服务器实现将客服端发送的信息广播发送(使用内核链表管理客户端信息)

本文实现了类似UDP的广播发送,可以设置一台TCP服务器,支持多台客户端连接,并且实现将客户端发送的信息广播发送到其他主机

2024-05-12 18:20:04 578 1

原创 Linux下,使用c语言实现共享内存的文件传输(文件拷贝)

在Linux环境下,使用C语言实现共享内存实现文件传输(文件拷贝)

2024-04-29 20:27:38 869

原创 gec6818开发板显示时间(显示字体)【gec6818系列】

使用gec6818开发板显示时间,显示字体。该显示字体不需要取模软件,而是通过已经封装好的库进行快速开发。

2024-04-19 10:58:27 3238 4

原创 Linux环境下,使用C语言获取文件字节数,文件大小(两种方法)

返回:若成功则返回新的文件位移量(绝对偏移量,相对于文件的头),若出错为-1。功能:定位一个已打开的文件。:(传出参数)存放文件属性。st_size表示大小。

2024-03-28 21:33:29 1232

原创 c语言(read、write)和(fread、fwrite)和(fgets、fputs)三对函数分别实现文件拷贝功能, 模拟Linux下的cp命令

Linux环境下,c语言(read、write)和(fread、fwrite)和(fgets、fputs)三对函数分别实现文件拷贝功能, 模拟Linux下的cp命令

2024-03-28 21:22:49 679

原创 文件IO:(C语言)在Linux环境下用STDOUT_FILENO实现printf功能

文件IO:(C语言)在Linux环境下用STDOUT_FILENO实现printf功能

2024-03-27 21:00:50 693 1

原创 (c语言)数组指针和指针数组分别实现将一维数组拆分成二维数组

实现数组指针和指针数组将一维数组拆分成二维数组。探究指针数组和数组指针如何使用。

2024-03-23 22:46:47 433 1

原创 Booth(布斯)算法——补码乘法运算过程

Booth算法手写解题过程,补码乘法运算规则

2022-09-21 16:11:14 2298 3

原创 Shell脚本编写学生成绩管理系统(附源码)

shell脚本编写学生成绩管理系统,此篇既能当做课设大作业也能学习一些基本的shell编程的语法

2022-06-15 14:52:34 12032 3

原创 Java一键对比未交作业学生信息名单(使用Hutool工具类)【SmallProject系列】

目录功能概述开发工具与环境导入依赖操作步骤1.准备学生信息Excel2.准备学生作业存放文件夹3.代码实现4.效果展示功能概述用来对比所交作业的情况,查看谁没交作业。支持有扩展名的所有文件类型如:.txt、.java、.zip等和子文件夹的对比。开发工具与环境1.IntelliJ IDEA 2021.2.22.jdk 1.8.0_1443.Maven导入依赖导入Hutool工具类,具体详见官网:Hutool<dependencie.

2022-05-26 15:06:41 1585 2

原创 迷宫问题代码(DFS和BFS)java版

本文章用一个简单的问题引入问题描述:下面表示迷宫(5*4)的地图,1表示为可通过,2表示为障碍,不能通过,起点是(1,1),终点是(4,3),按优先级为:右 ,下, 左, 上 的顺序走,请问最短路径是多少?1 1 2 11 1 1 11 1 2 11 2 1 11 1 1 2升华版无非就是地图大了,或者要打印路径,都只需在此基础稍微添加一些代码即可,当然当规模变大时,此代码还需优化,需添加一些条件来去掉一些答案(剪枝),否则提交要么超时,要么一下运行不出来。此...

2022-03-14 21:21:13 1489

原创 个人收藏的网站(会更新)

个人收藏的一些学习以及工具的网站,本篇会持续更新。

2021-12-19 23:30:12 2618

原创 JavaWeb搭建学生管理系统(手把手)

本文章仅供参考,适合新手搭建以及期末课设做JavaWeb,用到了mysql,tomcat,servlet+filter等开发工具与环境1.IntelliJ IDEA 2021.2.22.MySQL 8.0.203.jdk 1.8.0_144...

2021-12-18 16:08:26 50863 41

原创 用腾讯云搭建自己的网站

之前看学长一直在群里展示自己的博客,然后想想自己都大二了还没有个人的博客,都不会搭建自己的网站,加上之前也想做一个。所以趁着一时的冲劲,自己去各个网站查询如何搭建,看了很多也试了很多,有些方法不知道是我没配置好还是本来就有问题,所以从开始研究到成功搭建花了将近两天的时间,中间还请教了学长一些问题。 废话少说,经过自己的实践我把我如何搭建的过程分享一下。因为腾讯云送了我15天的体验卡,所以本篇我以腾讯云来搭建。 因为我的是win10专业版...

2021-10-07 09:53:50 532

原创 Java写单机版五子棋

前言 用Java写的单机版五子棋,可实现悔棋,设置游戏时间、认输等功能,界面如下图所示。主函数入口public class TestWuZiQi { public static void main(String[] args) { new GameFace().init(); }}所导入的包import java.awt.Color;import java.awt.Container;import java...

2021-09-11 21:59:34 1007 1

chip-tool【下载即可用】

已编译好的chip-tool,该工具可用于调试 matter 设备

2025-07-10

疫苗管理系统(SpringBoot+VUe)

技术栈:SpringBoot+Vue+ElementUi

2023-04-24

班费管理系统IEDA+Jsp+Tomcat+Servlet.zip

班费管理系统IEDA+Jsp+Tomcat+Servlet.zip

2021-12-04

空空如也

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

TA关注的人

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