当前位置: 首页 > news >正文

锚定基础与拥抱融合:C 语言在编程教育与技术社区的破圈之路

引言

在 Python 占据 TIOBE 指数榜首的 2025 年,C 语言以 23.4% 的稳定份额(2025 年 5 月数据)持续稳居前三,这一现象在编程教育领域尤为显著:全球 92% 的计算机科学本科课程仍将 C 语言作为必修基础课,而顶尖高校与技术社区正以创新姿态重塑 C 语言的教育价值 —— 从北京大学将 MoonBit 语言纳入课程体系,到 PGConf.dev 聚焦 C 与 Rust/Go 的互操作性,C 语言正以 "基石 + 桥梁" 的双重身份,在现代编程教育生态中开辟新赛道。

一、高校课程改革:从单一语法教学到系统思维培养

1. 北京大学的 "双语言" 教学范式

北大软件与微电子学院 2025 年推出的《系统级编程语言设计》课程,创造性地将 C 语言与 MoonBit 语言(一种聚焦系统级编程的新兴语言)结合:

  • 底层原理层:通过 C 语言讲解指针算术、内存布局、调用约定等核心概念,例如分析int* p = malloc(4); p += 1;对内存地址的实际影响:
    // C语言指针操作示例  
    void pointer_analysis() {  int* p = (int*)0x1000;  printf("p: %p, p+1: %p\n", p, p+1); // 输出0x1000与0x1004,直观展现指针偏移  
    }  
    
  • 现代设计层:引入 MoonBit 的类型安全特性,对比讲解 C 语言未定义行为的风险。例如 MoonBit 强制要求数组越界检查,而 C 语言的arr[i]可能导致缓冲区溢出,通过双语言代码对比,学生能深刻理解 "效率与安全的设计权衡"。

课程负责人王选计算机研究所李教授指出:"C 语言是理解计算机系统的 ' 显微镜 ',而 MoonBit 是观察现代语言设计的 ' 望远镜 ',二者结合让学生既能触摸硬件本质,又能把握语言进化方向。"

2. 工程实践能力的阶梯式培养

MIT 的《6.033 计算机系统工程》课程构建了 "C 语言核心 + 跨语言项目" 的培养体系:

  • 基础阶段:通过 xv6 操作系统内核开发,掌握 C 语言在中断处理、内存管理中的底层实现;
  • 进阶阶段:要求学生用 Rust 重写部分设备驱动,对比 C 语言的裸指针操作与 Rust 所有权模型的安全优势。某学生项目中,将 C 语言编写的硬盘驱动转换为 Rust 时,通过 FFI 接口保留核心性能代码,同时消除了 3 处潜在 UAF 漏洞。

这种 "以 C 为基,向新语言延伸" 的模式,使毕业生在嵌入式开发(需 C 语言功底)与新兴领域(如区块链智能合约开发,需 Rust/Go 技能)中展现出更强适应性。

二、技术社区破圈:从语言孤岛到生态融合

1. 行业会议的互操作性革命

在 2025 年 PGConf.dev 峰会上,"C 语言与现代语言的共生之道" 成为焦点议题,多个落地案例展现技术融合的实战价值:

  • SynchDB 项目:通过 C 语言扩展实现 Java 版 Debezium 的数据捕获引擎,在 PostgreSQL CDC(变更数据捕获)场景中,C 语言编写的底层存储过程与 Java 业务逻辑通过 JNA(Java Native Access)无缝协作,性能较纯 Java 实现提升 40%,同时利用 Java 的垃圾回收机制规避 C 语言内存泄漏风险;
  • Go + 语言的 c2go 工具:将 legacy C 代码自动转换为 Go 语言,保留指针操作的高效性同时注入 Go 的切片安全检查。某物联网平台使用该工具重构设备驱动层,代码量减少 35%,缓冲区溢出漏洞归零。

会议主办方发布的《C 语言互操作性白皮书》指出,当前 78% 的工业物联网平台采用 "C 语言驱动层 + 上层应用语言" 架构,这种分层模式正成为跨语言协作的标准范式。

2. 开源社区的教育资源共建
  • GCC 教学版项目:推出面向初学者的-pedantic-education编译选项,将未定义行为(如有符号整数溢出)升级为编译错误,而非警告。例如:

    c

    int x = 2147483647 + 1; // 启用该选项后触发编译错误:"signed integer overflow is undefined behavior"  
    

    该功能被纳入 Codecademy 的 C 语言课程,使新手在编码初期就建立 "未定义行为有害" 的安全意识。
  • LeetCode 系统编程专题:新增 "C 语言内存管理" 专项训练,要求选手在 OJ 平台上实现安全的malloc/free模拟,同时通过 Valgrind 在线版实时检测内存泄漏,累计已有 56 万开发者参与,相关题解浏览量超 2000 万次。

三、编程思维基石:C 语言不可替代的教育价值

1. 计算思维的底层建构

ACM 计算机课程体系(2025 版)明确指出:C 语言的指针、数组、结构体等特性,是理解 "数据在内存中的映射关系" 的最佳载体。对比 Python 的列表抽象,C 语言的数组指针操作能让学生直观理解:

// C语言数组与指针的内存等价性  
int arr[3] = {1, 2, 3};  
int* p = arr;  
*(p+1) = 10; // 等价于arr[1] = 10,直接操作内存地址  

这种对内存地址的显式操作,是掌握计算机系统 "存储层次结构"" 数据局部性 " 等核心概念的必要前提。

2. 错误处理的逆向思维训练

C 语言缺乏自动垃圾回收和边界检查,迫使开发者直面底层错误:

  • 空指针解引用:通过调试segmentation fault,理解操作系统内存保护机制;
  • 缓冲区溢出:借助 GDB 调试core dump,分析栈帧布局与返回地址覆盖原理。

哈工大计算机学院的对比实验显示,经过 C 语言严格训练的学生,在后续学习 Java/C# 时,对 NullPointerException、IndexOutOfRangeException 等高层语言异常的理解深度,比直接学习高层语言的学生高出 63%。

四、未来趋势:在变革中坚守本质价值

1. AI 辅助教学工具的深度融合

Codecademy Pro 推出的 C 语言智能导师,基于 GPT-5 代码理解模型实现:

  • 实时漏洞诊断:在学生编写strcpy时,自动提示 "未检查缓冲区边界,可能导致溢出",并提供strncpy的安全替代方案;
  • 内存布局可视化:动态绘制指针、数组在内存中的分布,帮助理解malloc返回地址与堆空间的关系。
2. 新硬件架构催生教学创新

随着 RISC-V 架构的普及,清华大学开设 "RISC-V 汇编与 C 语言混合编程" 课程,要求学生在蜂鸟 E203 开发板上实现:

// RISC-V特权指令与C语言协作  
void set_mstatus(uint32_t mstatus) {  asm volatile ("csrw mstatus, %0" : : "r"(mstatus)); // 嵌入汇编直接操作CPU状态寄存器  
}  

这种 "硬件架构 - 汇编 - C 语言" 的立体教学,使学生在掌握高级语言的同时,建立 "软件与硬件协同设计" 的系统级思维。

结语

当 Python 以易用性抢占编程入门市场,C 语言正以 "基础性"" 系统性 ""融合性" 重新定义自身教育价值。从高校课堂的双语言教学到开源社区的互操作性实践,从编程思维的底层建构到 AI 工具的赋能创新,C 语言始终是连接计算机原理与工程实践的桥梁。正如图灵奖得主 David Patterson 在《计算机体系结构:量化研究方法》中所言:"不理解 C 语言的内存模型,就无法真正掌握计算机系统的运作本质。" 在这个编程语言快速迭代的时代,C 语言的教育使命早已超越语法本身 —— 它是培养 "系统级思维" 的载体,是打开计算机世界底层大门的钥匙,更是不同技术栈实现深度融合的通用语言。对于新一代开发者而言,精通 C 语言不仅意味着掌握一门工具,更代表着具备穿透技术表象、洞察系统本质的核心能力,这正是 C 语言在编程教育中历久弥新的根本原因。

相关文章:

锚定基础与拥抱融合:C 语言在编程教育与技术社区的破圈之路

引言 在 Python 占据 TIOBE 指数榜首的 2025 年,C 语言以 23.4% 的稳定份额(2025 年 5 月数据)持续稳居前三,这一现象在编程教育领域尤为显著:全球 92% 的计算机科学本科课程仍将 C 语言作为必修基础课,而…...

深度学习入门:从神经网络基础到前向传播全面解析

深度学习入门:从神经网络基础到前向传播全面解析 🔥 重磅干货! 本文是《深度学习基础与核心技术详解》专栏的开篇之作,将系统性地带你走进深度学习的世界!建议收藏+关注,错过可能要找很久哦~ 目录 深度学习概述神经网络基础 2.1 生物神经元与人工神经元2.2 感知机模型2.…...

Lambda表达式能用在哪些场景?

Lambda表达式是Java 8引入的一种强大特性,它允许以简洁的方式表示匿名函数(即没有名字的函数)。Lambda表达式可以用于许多场景,尤其是在与函数式接口、Stream API、并发编程等结合时,能够显著简化代码并提高开发效率。…...

英语听力口语词汇--2.宣传类

1.approach uk /əˈprəʊtʃ/ n.(思考问题的)方式,方法,态度 2.foreign uk /ˈfɒr.ən/ adj.外国的 3.alliance uk /əˈlaɪ.əns/ n.结盟国家(或团体),同盟国家(或团体)&...

『 测试 』测试基础

文章目录 1. 调试与测试的区别2. 开发过程中的需求3. 开发模型3.1 软件的生命周期3.2 瀑布模型3.2.1 瀑布模型的特点/缺点 3.3 螺旋模型3.3.1 螺旋模型的特点/缺点 3.4 增量模型与迭代模型3.5 敏捷模型3.5.1 Scrum模型3.5.2 敏捷模型中的测试 4 测试模型4.1 V模型4.2 W模型(双V…...

Pandas 时间处理利器:to_datetime() 与 Timestamp() 深度解析

Pandas 时间处理利器:to_datetime() 与 Timestamp() 深度解析 在数据分析和处理中,时间序列数据扮演着至关重要的角色。Pandas 库凭借其强大的时间序列处理能力,成为 Python 数据分析领域的佼佼者。其中,to_datetime() 函数和 Ti…...

支持向量机的回归用法详解

支持向量机的回归用法详解 在机器学习的广阔领域中,支持向量机(SVM)是一种极具影响力的算法,它不仅在分类任务上表现出色,在回归任务中同样有着独特的应用价值。本文将深入探讨 SVM 的回归用法,包括其基本…...

计算机基础

今天不和大家分享算法了,最近为什么一直分享算法题,一个是因为最近很忙加上状态不太在线,第二个是因为我报了ICPC的比赛,也就是大学生程序设计大赛,所以平时刷算法比较多一些,虽然说结果上也没有很多的收获…...

用C语言实现的——一个支持完整增删查改功能的二叉排序树BST管理系统,通过控制台实现用户与数据结构的交互操作。

一、知识回顾 二叉排序树(Binary Search Tree,BST),又称二叉查找树或二叉搜索树,是一种特殊的二叉树数据结构。 基本性质: ①有序性 对于树中的每个节点,其左子树中所有节点的值都小于该节点的…...

uniapp-商城-53-后台 商家信息(更新修改和深浅copy)

1、概述 文章主要讨论了在数据库管理中如何处理用户上传和修改商家信息的问题,特别是通过深浅拷贝技术来确保数据更新的准确性和安全性。 首先,解释了深拷贝和浅拷贝的区别:浅拷贝使得两个变量共享相同的内存地址,而深拷贝则创建新…...

vue数据可视化开发echarts等组件、插件的使用及建议-浅看一下就行

在 Vue 项目中使用 ECharts 进行数据可视化开发时&#xff0c;可以结合 Vue 的响应式特性和 ECharts 的强大功能&#xff0c;实现动态、交互式的图表展示。 一、ECharts 基础使用 1. 安装 ECharts npm install echarts2. 在 Vue 组件中使用 ECharts <template><div…...

百度AI战略解析:文心一言与自动驾驶的双轮驱动

百度AI战略解析&#xff1a;文心一言与自动驾驶的双轮驱动 系统化学习人工智能网站&#xff08;收藏&#xff09;&#xff1a;https://www.captainbed.cn/flu 文章目录 百度AI战略解析&#xff1a;文心一言与自动驾驶的双轮驱动摘要引言一、技术架构&#xff1a;大模型与自动…...

MCP Streamable HTTP 传输层的深度解析及实战分析

一、Streamable HTTP 传输层设计革新 1. 核心设计思想 协议融合:将 HTTP/1.1、HTTP/2 与 SSE 协议特性深度整合动态协商:通过 HTTP Header 实现传输协议动态协商(X-MCP-Transport)流式优先:默认启用流式传输,支持半双工通信背压控制:基于 HTTP/2 流级流量控制实现智能速…...

六大设计模式--OCP(开闭原则):构建可扩展软件的基石

写在前面&#xff1a;一个真实的项目悲剧 某电商平台促销功能每次迭代都需要修改核心订单类&#xff0c;导致&#xff1a; ✅ 双十一活动修改导致支付功能崩溃 ✅ 新人优惠引发会员系统连环故障 ✅ 每次发布需全量回归测试 根本原因&#xff1a;系统架构违反开闭原则 一、开闭…...

ActiveMQ 生产环境问题排查与调优指南(一)

一、引言 在当今复杂的分布式系统架构中&#xff0c;消息中间件扮演着至关重要的角色&#xff0c;而 ActiveMQ 作为一款广泛使用的开源消息中间件&#xff0c;凭借其丰富的特性、良好的稳定性和易用性&#xff0c;在众多企业的生产环境中占据了一席之地。它基于 JMS&#xff08…...

深入理解 JavaScript 中的 FileReader API:从理论到实践

文章目录 深入理解 JavaScript 中的 FileReader API&#xff1a;从理论到实践前言什么是 FileReader&#xff1f;核心特性 FileReader 的常用方法事件监听实际案例案例 1&#xff1a;读取文本文件内容案例 2&#xff1a;图片预览&#xff08;Data URL&#xff09;案例 3&#x…...

Google LLM prompt engineering(谷歌提示词工程指南)

文章目录 基本概念AI输出配置&#xff1a;调整AI的回答方式输出长度温度&#xff08;Temperature&#xff09;Top-K和Top-P 提示技术&#xff1a;让AI更好地理解你零样本提示&#xff08;Zero-shot&#xff09;少样本提示&#xff08;Few-shot&#xff09;系统提示&#xff08;…...

前端npm包发布流程:从准备到上线的完整指南

无论是使用第三方库还是创建和分享自己的工具&#xff0c;npm都为我们提供了一个强大而便捷的平台&#xff0c;然而很多开发者在将自己的代码发布到npm上时往往面临各种困惑和挑战&#xff0c;本篇文章将从准备工作到发布上线&#xff0c;探讨如何让npm包更易发布及避免常见的坑…...

【MySQL】表空间结构 - 从何为表空间到段页详解

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;博客仓库&#xff1a;https://gitee.com/JohnKingW/linux_test/tree/master/lesson &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &…...

OB Cloud 云数据库V4.3:SQL +AI全新体验

OB Cloud 云数据库V4.3&#xff1a;SQL AI全新体验 简介 OB Cloud云数据库全新升级至V4.3版本&#xff0c;为用户带来了SQLAI的最新技术体验&#xff0c;强化数据库的传统功能&#xff0c;深度融合了人工智能技术&#xff0c;引入先进的向量检索功能和优化的SQL引擎&#xff0c…...

【Linux系统】第四节—详解yum+vim

hello 我是云边有个稻草人 Linux—本节课所属专栏—欢迎订阅—持续更新中~ 目录 画板—本节课知识点详解 一、软件包管理器 1.1 什么是软件包 1.2 Linux软件⽣态 1.3 yum具体操作 【查看软件包】 【安装软件】 【卸载软件】 【注意事项】 1.4 安装源 二、vim 2.1 …...

Git的核心作用详解

一、版本控制与历史追溯 Git作为分布式版本控制系统&#xff0c;其核心作用是记录代码的每一次修改&#xff0c;形成完整的历史记录。通过快照机制&#xff0c;Git会保存每次提交时所有文件的完整状态&#xff08;而非仅记录差异&#xff09;&#xff0c;确保开发者可以随时回…...

Three.js + React 实战系列 - 职业经历区实现解析 Experience 组件✨(互动动作 + 3D 角色 + 点击切换动画)

对个人主页设计和实现感兴趣的朋友可以订阅我的专栏哦&#xff01;&#xff01;谢谢大家&#xff01;&#xff01;&#xff01; 在这篇博客中&#xff0c;我们将分析一个极其有趣和互动性的组件 - Experience.jsx&#xff0c;该组件用于在主页中呈现个人的工作经历。 这个组件…...

3D虚拟工厂vue3+three.js

1、在线体验 3D虚拟工厂在线体验 2、功能介绍 1. 全屏显示功能2. 镜头重置功能3. 企业概况信息模块4. 标签隐藏/显示功能5. 模型自动旋转功能6. 办公楼分层分解展示7. 白天/夜晚 切换8. 场景资源预加载功能9. 晴天/雨天/雾天10. 无人机视角模式11. 行人漫游视角模式12. 键盘…...

[Java实战]Spring Boot 解决跨域问题(十四)

[Java实战]Spring Boot 解决跨域问题&#xff08;十四&#xff09; 一、CORS 问题背景 什么是跨域问题&#xff1f; 当浏览器通过 JavaScript 发起跨域请求&#xff08;不同协议、域名、端口&#xff09;时&#xff0c;会触发同源策略限制&#xff0c;导致请求被拦截。 示例场…...

嵌入式硬件篇---CAN

文章目录 前言1. CAN协议基础1.1 物理层特性差分信号线终端电阻通信速率总线拓扑 1.2 帧类型1.3 数据帧格式 2. STM32F103RCT6的CAN硬件配置2.1 硬件连接2.2 CubeMX配置启用CAN1模式波特率引脚分配过滤器配置&#xff08;可选&#xff09; 3. HAL库代码实现3.1 CAN初始化3.2 发…...

(2025)图文解锁RAG从原理到代码实操,代码保证可运行

什么是RAG RAG(检索增强生成)是一种将语言模型与可搜索知识库结合的方法&#xff0c;主要包含以下关键步骤&#xff1a; 数据预处理 加载&#xff1a;从不同格式(PDF、Markdown等)中提取文本分块&#xff1a;将长文本分割成短序列(通常100-500个标记)&#xff0c;作为检索单元…...

TWAS、GWAS、FUSION

全基因组关联研究&#xff08;GWAS&#xff0c;Genome-Wide Association Study&#xff09;是一种统计学方法&#xff0c;用于在全基因组水平上识别与特定性状或疾病相关的遗传变异。虽然GWAS可以识别与性状相关的遗传信号&#xff0c;但它并不直接揭示这些遗传变异如何影响生物…...

大模型微调终极方案:LoRA、QLoRA原理详解与LLaMA-Factory、Xtuner实战对比

文章目录 一、微调概述1.1 微调步骤1.2 微调场景 二、微调方法2.1 三种方法2.2 方法对比2.3 关键结论 三、微调技术3.1 微调依据3.2 LoRA3.2.1 原理3.2.2 示例 3.3 QLoRA3.4 适用场景 四、微调框架4.1 LLaMA-Factory4.2 Xtuner4.3 对比 一、微调概述 微调&#xff08;Fine-tun…...

FHE 之 面向小白的引导(Bootstrapping)

1. 引言 FHE初学者和工程师常会讨论的一个问题是&#xff1b; “什么是引导&#xff08;bootstrapping&#xff09;&#xff1f;” 从理论角度看&#xff0c;这个问题的答案很简单&#xff1a; 引导就是套用 Gentry 提出的思想——在加密状态下同态地执行解密操作&#xff…...

安装:Kali2025+Docker

安装:Kali2025Docker Kali2025安装 直接官网下载WMware版本 https://www.kali.org/get-kali/#kali-virtual-machines 直接打开运行 初始用户密码 kali/kali sudo -i 命令切换到root 更换镜像 切换到其他可用的 Kali Linux 镜像源可能会解决问题,可以使用国内的镜像源&…...

什么是深拷贝什么是浅拷贝,两者区别

什么是深拷贝什么是浅拷贝&#xff0c;两者区别 1.深拷贝 递归复制对象的所有层级&#xff0c;嵌套的引用类型属性&#xff0c;最后生成一个完全独立的新对象&#xff0c;与原对象无任何引用关联。 特点&#xff1a; 新对象和原对象的所有层级属性是独立的&#xff08;修改…...

A2A大模型协议及Java示例

A2A大模型协议概述 1. 协议作用 A2A协议旨在解决以下问题&#xff1a; 数据交换&#xff1a;不同应用程序之间的数据格式可能不一致&#xff0c;A2A协议通过定义统一的接口和数据格式解决这一问题。模型调用&#xff1a;提供标准化的接口&#xff0c;使得外部应用可以轻松调…...

第七章 数据库编程

1 数据库编程基础 1.1 数据库系统概述 数据库系统是由数据库、数据库管理系统(DBMS)和应用程序组成的完整系统。其主要目的是高效地存储、管理和检索数据。现代数据库系统通常分为以下几类&#xff1a; 关系型数据库(RDBMS)&#xff1a;如MySQL、PostgreSQL、Oracle等&#x…...

电影感户外哑光人像自拍摄影Lr调色预设,手机滤镜PS+Lightroom预设下载!

调色详情 电影感户外哑光人像自拍摄影 Lr 调色&#xff0c;是借助 Lightroom 软件&#xff0c;针对户外环境下拍摄的人像自拍进行后期处理。旨在模拟电影画面的氛围与质感&#xff0c;通过调色赋予照片独特的艺术气息。强调打造哑光效果&#xff0c;使画面色彩不过于浓烈刺眼&a…...

C++--类的构造函数与初始化列表差异

一&#xff0c;引言 在类中成员函数的构造函数担任其将对象初始化的作用&#xff0c;而初始化列表也有着相似的作用。大部分人建议都是初始化列表进行初始化&#xff0c;本文主要进行讲解二者的区别。 首先看一下构造函数的初始化方式&#xff1a; #define _CRT_SECURE_NO…...

深入浅出之STL源码分析4_类模版

1.引言 我在上面的文章中讲解了vector的基本操作&#xff0c;然后提出了几个问题。 STL之vector基本操作-CSDN博客 1.刚才我提到了我的编译器版本是g 11.4.0&#xff0c;而我们要讲解的是STL&#xff08;标准模板库&#xff09;&#xff0c;那么二者之间的关系是什么&#x…...

Lambda表达式解读

本文通过具体案例演示函数式接口Function<T,R>的三种实现方式演变过程。 一、传统匿名内部类实现 Integer resInt1 t1(new Function<String, Integer>() {Overridepublic Integer apply(String s) {int i Integer.parseInt(s);return i;} });实现特点&#xff1…...

PySide6 GUI 学习笔记——常用类及控件使用方法(常用类边距QMarginsF)

文章目录 类简介方法总览关键说明示例代码 类简介 QMarginsF 用于定义四个浮点型边距&#xff08;左、上、右、下&#xff09;&#xff0c;描述围绕矩形的边框尺寸。所有边距接近零时 isNull() 返回 True&#xff0c;支持运算符重载和数学运算。 方法总览 方法名/运算符参数返…...

Android方法耗时监控插件开发

需求&#xff1a;自定义一个Gradle插件&#xff0c;这个Gradle插件可以统计方法的耗时&#xff0c;并当方法耗时超过阈值时&#xff0c;可以通过打印Log日志在控制台&#xff0c;然后可以通过Log定位到耗时方法的位置&#xff0c;帮助我们找出耗时方法和当前线程名&#xff0c;…...

TWAS / FUSION

FUSION 是一套用于执行转录组范围和调控组范围关联研究&#xff08;TWAS 和 RWAS&#xff09;的工具。它通过构建功能/分子表型的遗传成分的预测模型&#xff0c;并使用 GWAS 汇总统计数据预测和测试该成分与疾病的关联&#xff0c;目标是识别 GWAS 表型与仅在参考数据中测量的…...

C++中的static_cast:类型转换的安全卫士

C中的static_cast&#xff1a;类型转换的安全卫士 在C编程中&#xff0c;类型转换是不可避免的操作&#xff0c;而static_cast作为C四大强制类型转换运算符之一&#xff0c;是最常用且相对安全的一种转换方式。今天我们就来深入探讨一下这个重要的类型转换工具。 一、static_…...

uniapp-商城-51-后台 商家信息(logo处理)

前面对页面基本进行了梳理和说明&#xff0c;特别是对验证规则进行了阐述&#xff0c;并对自定义规则的兼容性进行了特别补充&#xff0c;应该说是干货满满。不知道有没有小伙伴已经消化了。 下面我们继续前进&#xff0c;说说页面上的logo上传组件&#xff0c;主要就是uni-fil…...

04 mysql 修改端口和重置root密码

当我们过了一段时间&#xff0c;忘了自己当初创建的数据库密码和端口&#xff0c;或者端口被占用了&#xff0c;要怎么处理呢 首先&#xff0c;我们先停止mysql。 一、修改端口 打开my.ini文件&#xff0c;搜索port&#xff0c;默认是3306&#xff0c;根据你的需要修改为其他…...

多线程 2 - 死锁问题

死锁 死锁&#xff0c;是多线程代码中的一类经典问题。加锁能够解决线程安全问题&#xff0c;但如果加锁方式不当&#xff0c;就很可能产生死锁。 出现死锁的三种场景 1、一个线程一把锁 就像上篇文章讲过的&#xff0c;如果对同一个线程上了两把锁&#xff0c;而且上的锁是…...

网络原理(Java)

注&#xff1a;此博文为本人学习过程中的笔记 在网络初始中谈到TCP/IP五层模型&#xff0c;接下来我们将介绍这里面涉及到的网络协议。 应用层是程序员接触最多的层次&#xff0c;程序员写的代码只要涉及到网络通信都可以视为是应用层的一部分。应用层里的东西和程序员直接相…...

HDFS 常用基础命令详解——快速上手分布式文件系统

简介&#xff1a; 本文面向刚接触 Hadoop HDFS&#xff08;Hadoop 分布式文件系统&#xff09;的读者&#xff0c;结合 CSDN 博客风格&#xff0c;系统梳理最常用的 HDFS 客户端命令&#xff0c;并配以示例和注意事项&#xff0c;帮助你在开发和运维中快速掌握 HDFS 的文件管理…...

Unity Shaders and Effets Cookbook

目录 作者简介 审稿人简介 前言 我是偏偏 Unity Shaders and Effets Cookbook 第一章&#xff1a;Diffuse Shading - 漫反射着色器 第二章&#xff1a;Using Textures for Effects - 着色器纹理特效的应用 第三章&#xff1a;Making Your Game Shine with Specular - 镜…...

Markdown—LaTeX 数学公式

目录 一、字母1. 希腊大写字母2. 希腊小写字母3. 花体字母 二、上标和下标1. 上标2. 下标3. 其他 三、括号四、数学符号1. 基本数学符号1&#xff09;运算符2&#xff09;常见函数3&#xff09;分式、根号、累加/乘4&#xff09;极限5&#xff09;积分 2. 三角函数与几何符号1&…...

AI 驱动的开发工具

&#x1f527; 主流 AI 前端开发工具 1. GitHub Copilot 由 GitHub 与 OpenAI 联合开发&#xff0c;集成在 Visual Studio Code、JetBrains 等主流 IDE 中&#xff0c;提供智能代码补全、函数生成等功能&#xff0c;极大地提高了开发效率。 (CSDN博客) 2. Cursor 一款 AI 驱…...