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

C 语言的未来:在变革中坚守与前行

C 语言,作为编程语言领域的一位 “老将”,自诞生以来就一直扮演着至关重要的角色。历经数十年的发展,它的影响力依然广泛而深远。在科技飞速发展的今天,新的编程语言如雨后春笋般不断涌现,C 语言的未来发展走向成为了众多开发者关注的焦点。​

一、系统级编程与嵌入式领域的中流砥柱​

(一)操作系统核心​

在操作系统内核开发领域,C 语言的地位至今难以撼动。Linux、Windows、macOS 等主流操作系统的核心部分,均大量采用 C 语言编写。随着云计算、边缘计算的不断深入发展,对高性能、低延迟操作系统的需求持续攀升。C 语言凭借其高效的执行效率、对硬件资源的精细控制能力以及成熟稳定的生态系统,在这一领域的重要性不仅不会减弱,反而会随着技术的发展进一步凸显。例如,在处理大规模数据的云服务器操作系统中,C 语言能够确保系统内核高效稳定地运行,为上层应用提供坚实的基础支撑。​

(二)嵌入式系统与物联网(IoT)​

在资源受限的嵌入式设备以及蓬勃发展的物联网领域,C 语言拥有绝对的优势。从简单的微控制器到复杂的嵌入式系统,C 语言都因其出色的效率、直接访问硬件的能力以及丰富的开发资源而备受青睐。随着物联网设备数量的爆炸式增长,对设备端编程的需求也日益旺盛。特别是在实时操作系统(RTOS)以及低功耗嵌入式应用场景中,C 语言更是开发者的首选编程语言。以智能家居设备为例,这些设备通常需要在有限的硬件资源下实现高效的数据处理和通信功能,C 语言能够很好地满足这些要求,确保设备稳定运行,实现智能化控制。​

(三)驱动程序开发​

硬件驱动程序作为操作系统与硬件之间的桥梁,需要直接操作硬件寄存器,对性能要求极高。C 语言的低级特性以及对内存的精确控制能力,使其成为驱动程序开发的理想选择。在 2025 年及未来,随着新硬件的不断涌现,如新型传感器、高性能处理器等,对高效、可靠驱动程序的需求将持续增长。C 语言将继续在驱动开发领域保持主导地位,为各种硬件设备与操作系统之间的顺畅通信提供保障。​

二、高性能计算(HPC)与科学计算领域的坚守​

(一)性能至上​

在高性能计算和科学计算领域,性能是衡量编程语言优劣的关键指标。C 语言编译后的程序执行效率极高,能够充分发挥硬件的极限性能。对于需要处理海量数据和复杂计算的科学模拟、数据分析、人工智能模型训练等应用场景,C 语言无疑是关键的基础设施。例如,在气象预测、分子动力学模拟等科学研究中,C 语言编写的程序能够快速处理大量的数据,为科研人员提供准确的模拟结果,帮助他们深入理解自然现象和科学规律。​

(二)底层库和框架​

许多高性能计算库和框架,如 MPI(Message Passing Interface)、OpenMP(Open Multi-Processing)以及各种科学计算库(如数值计算、线性代数库),大多采用 C 或 C++ 编写。这些底层库为 Python、Fortran 等更高级语言提供了强大的性能支撑。在未来,这些底层库的维护和优化工作仍将高度依赖 C 语言。通过不断优化 C 语言代码,能够进一步提升这些库的性能,从而推动整个高性能计算和科学计算领域的发展。​

(三)硬件加速​

随着 GPU、FPGA 等硬件加速技术的不断发展,C 语言也在积极与这些技术进行深度融合。例如,CUDA C 专门用于 GPU 编程,OpenCL C 则适用于异构计算平台。C 语言能够充分利用硬件加速能力,为开发者提供更高效的计算解决方案。在人工智能领域的深度学习模型训练中,借助 C 语言与 GPU 的结合,可以大幅缩短训练时间,提高模型训练效率,加速人工智能技术的发展与应用。​

三、C 标准演进与语言特性的现代化​

(一)C23 标准的推动​

C 语言标准委员会(ISO/IEC JTC1/SC22/WG14)一直在积极推动 C 语言标准的更新与发展。C23 标准(正式名称可能略有差异)预计在 2023 年完成制定,并在未来几年内逐步被编译器广泛支持。C23 标准引入了一系列新特性,为 C 语言注入了新的活力。​

  1. embed 预处理器指令:该指令能够更方便地将二进制或文本数据嵌入到程序中,对于嵌入式开发具有重要意义。在开发嵌入式系统时,常常需要将一些固定的数据(如图像、配置文件等)直接嵌入到程序代码中,embed 预处理器指令的出现,大大简化了这一操作过程,提高了开发效率。​
  1. 对 Unicode 的支持增强:随着全球化软件开发的需求日益增长,更好地支持 Unicode 字符集成为 C 语言发展的必然趋势。C23 标准在这方面进行了改进,使得 C 语言能够更有效地处理多语言文本,满足不同地区用户的需求,提升软件的国际化水平。​
  1. 其他改进与澄清:例如,对 #warning 预处理指令进行了改进,使其在使用过程中能够提供更清晰、准确的警告信息,帮助开发者及时发现代码中的潜在问题。同时,对内存模型规范进行了更明确的定义,减少了因内存模型不清晰而导致的程序错误,提高了代码的稳定性和可移植性。​

(二)安全性的持续关注​

C 语言强大的内存管理能力是其优势所在,但同时也容易引发一系列安全问题,如缓冲区溢出、野指针等。为了应对这些安全挑战,C 标准和编译器工具链将持续加强对安全性的关注。一方面,通过引入静态分析工具,能够在编译阶段对代码进行全面检查,提前发现潜在的安全隐患;另一方面,开发更安全的库函数,为开发者提供更可靠的编程接口,减少因使用不安全函数而导致的安全漏洞。此外,在 C 语言标准中引入更安全的设计模式,引导开发者编写安全可靠的代码,进一步提升 C 语言程序的安全性。​

(三)与现代编程语言的互操作性​

在当今多元化的编程环境中,C 语言需要更好地与其他现代编程语言(如 Python、Rust、Go 等)进行互操作。通过 C Foreign Function Interface(FFI)机制,其他语言能够方便地调用 C 语言编写的代码,反之亦然。这种互操作性使得 C 语言能够充分利用其他语言的优势,拓展自身的应用场景。例如,在 Python 开发的数据分析项目中,可以通过 FFI 调用 C 语言编写的高性能计算库,提高数据分析的效率;在 Rust 开发的系统级应用中,也可以借助 C 语言丰富的库资源,实现特定的功能需求。通过与现代编程语言的紧密协作,C 语言能够在混合编程环境中保持强大的竞争力。​

四、开发工具与生态系统的持续完善​

(一)编译器和 IDE 的现代化​

主流 C 编译器(如 GCC、Clang、MSVC)在未来将不断进行优化和改进。它们将提供更出色的代码优化能力,使编译后的程序在执行效率上进一步提升;同时,对 C 语言标准的支持也将更加全面和完善,确保开发者能够充分利用 C 语言的最新特性进行编程。集成开发环境(IDE)如 Visual Studio、CLion、Eclipse CDT 等,也将持续增强对 C 语言开发的支持力度。这些 IDE 将提供更智能的代码补全功能,能够根据代码上下文准确预测开发者的意图,快速提供代码建议,提高编码速度;调试功能也将更加便捷和强大,帮助开发者更高效地定位和解决程序中的错误;此外,项目管理工具也将得到进一步优化,方便开发者组织和管理复杂的 C 语言项目。​

(二)静态分析和安全工具的普及​

静态代码分析工具在 C 语言开发中的重要性将日益凸显。这些工具能够在编译时甚至编码阶段,对代码进行全面的静态检查,发现潜在的错误、安全漏洞以及代码风格问题。在 2025 年及以后,静态分析工具将变得更加易用、智能,并与开发流程实现更紧密的集成。例如,一些 IDE 将直接内置静态分析功能,当开发者编写代码时,工具会实时进行分析,并及时给出提示和建议,帮助开发者在早期阶段就解决问题,提高代码质量和安全性。​

(三)构建系统和包管理工具的改进​

C 语言项目的构建过程相对复杂,需要手动管理大量的依赖关系。为了简化这一过程,构建系统(如 CMake、Meson)和包管理工具(如 Conan、vcpkg)正在不断发展和完善。CMake 和 Meson 能够根据项目的配置文件,自动生成构建脚本,管理编译过程中的各种参数和依赖关系,大大减轻了开发者的负担。Conan 和 vcpkg 等包管理工具则能够方便地管理 C 语言项目中的各种依赖库,实现库的自动下载、安装和版本管理。在未来,这些工具将更加成熟和普及,进一步提高 C 语言项目的开发效率和可维护性,使得开发者能够更专注于业务逻辑的实现。​

(四)学习资源和社区的活跃​

C 语言拥有庞大而活跃的开发者社区,这是其持续发展的重要支撑。社区中汇聚了大量的开发者,他们分享自己的经验、知识和开源项目,为初学者提供了丰富的学习资源,也为有经验的开发者提供了交流和合作的平台。在 2025 年,C 语言的学习资源将更加丰富多样,除了传统的书籍、教程外,还将涌现出更多生动有趣的视频教程、在线互动学习平台等。社区也将继续保持活跃,通过举办技术交流活动、开源项目合作等方式,推动 C 语言技术的不断发展和创新。​

五、挑战与应对​

(一)内存安全问题​

内存管理一直是 C 语言的一大优势,但同时也带来了内存安全风险,如缓冲区溢出、野指针等问题。在未来,内存安全仍将是 C 语言面临的重要挑战之一。为了应对这一挑战,可以采取以下措施:​

  1. 借鉴先进的内存管理策略:例如,借鉴 C++ 中智能指针的思想,引入类似的机制到 C 语言编程中。智能指针能够自动管理内存的分配和释放,有效避免因手动管理内存不当而导致的内存泄漏和悬空指针等问题。​
  1. 使用内存安全库:开发和使用专门针对内存安全问题设计的库,这些库提供了更安全的内存操作函数,能够在一定程度上减少内存安全漏洞的出现。​
  1. 考虑使用更安全的替代语言:在某些对性能要求并非极致的场景下,可以适当考虑使用内存安全性能更好的语言,如 Rust、Go 等。这些语言在设计上更加注重内存安全,能够从源头上减少内存安全问题的发生。​

(二)学习曲线相对陡峭​

C 语言的学习曲线相对较陡,对于初学者来说,理解指针、内存管理等概念需要花费较多的时间和精力。为了降低学习难度,可以从以下几个方面入手:​

  1. 提供更优质的入门教程和学习资源:编写更清晰易懂的教材,以通俗易懂的方式讲解 C 语言的基本概念和编程技巧;制作更生动形象的视频教程,通过实际操作演示帮助初学者更好地理解和掌握;搭建更互动的在线学习平台,提供在线编程练习、答疑解惑等功能,让初学者能够在实践中快速提升编程能力。​
  1. 改进开发工具,降低复杂性:现代 IDE 可以通过提供更友好的用户界面、更智能的代码提示和错误诊断功能,帮助初学者更好地理解代码结构和调试程序。例如,当初学者使用指针出现错误时,IDE 能够准确地指出错误原因,并提供相关的修正建议。​
  1. 强调实践和项目驱动学习:通过实际项目来学习 C 语言,能够让初学者更好地将理论知识与实践相结合,提高学习兴趣和效率。可以从简单的小型项目入手,逐步引导初学者挑战更复杂的项目,在项目实践中不断积累经验,提升编程水平。​

(三)与其他现代语言的竞争​

Python、JavaScript、Go、Rust 等现代编程语言在某些领域具有明显的优势,如 Python 在数据分析和人工智能领域的广泛应用,JavaScript 在 Web 开发领域的主导地位,Go 在并发编程和网络编程方面的出色表现,Rust 在系统编程中对内存安全的严格保障等。面对这些竞争,C 语言需要在特定领域保持自身的核心优势,如在系统级编程、嵌入式开发、高性能计算等领域,凭借其高效的性能和对硬件的直接控制能力,继续发挥不可替代的作用。同时,加强与其他语言的互操作性,通过与其他语言的协作,拓展自身的应用场景,提升在多元化编程环境中的竞争力。​

六、结语​

综上所述,在 2025 年及未来,C 语言不太可能发生颠覆性的变革,而是在保持其核心优势的基础上,持续演进和适应新的技术趋势。它将继续在系统级编程、嵌入式系统、高性能计算等关键领域占据主导地位,并通过标准更新、工具链完善以及与其他现代语言的深度互操作性,积极应对各种挑战,保持强大的生命力。对于开发者而言,掌握 C 语言仍然是一项极具价值的技能,特别是在对性能、资源控制和底层操作有严格要求的领域。在不断变化的技术浪潮中,持续关注 C 语言的发展动态,学习和掌握其最新特性和技术,将有助于开发者在相关领域取得更好的发展。

相关文章:

C 语言的未来:在变革中坚守与前行

C 语言,作为编程语言领域的一位 “老将”,自诞生以来就一直扮演着至关重要的角色。历经数十年的发展,它的影响力依然广泛而深远。在科技飞速发展的今天,新的编程语言如雨后春笋般不断涌现,C 语言的未来发展走向成为了众…...

SQL注入之information_schema表

1 information_schema表介绍: information_schema表是一个MySQL的系统数据库,他里面包含了所有数据库的表名 SQL注入中最常见利用的系统数据库,经常利用系统数据库配合union联合查询来获取数据库相关信息,因为系统数据库中所有信…...

android framework开发的技能要求

作为Android Framework开发工程师,需要具备深入的系统底层理解能力和对Android架构的全面认知。以下是核心技能要求,分为技术能力和软实力两大方向: 一、核心技术能力 Android系统架构深度掌握 Binder机制:理解Binder驱动、ServiceManager、AIDL跨进程通信原理,能分析Bind…...

AWS EC2完全指南:如何快速搭建高性能云服务器?

一、什么是AWS EC2?云时代的虚拟服务器革命 AWS Elastic Compute Cloud(EC2)作为全球领先的云服务器解决方案,正在重新定义虚拟服务器的可能性。与传统VPS相比,EC2提供: 秒级弹性扩展:CPU/RAM按…...

go环境安装mac

下载go安装包:https://golang.google.cn/dl/ 找到对应自己环境的版本下载。 注意有二进制的包,也有图形界面安装的包。图形界面直接傻瓜式点就行了。 二进制的按照下面操作: 1、下载二进制包。 2、将下载的二进制包解压至 /usr/local目录…...

Python实现对大批量Word文档进行批量自动化排版(15)

前言 本文是该专栏的第15篇,后面会持续分享Python办公自动化干货知识,记得关注。 在本专栏上一篇文章《Python实现对目标Word文档进行自动化排版【4万字精讲】(14)》中,笔者已经详细介绍“基于Python,实现对目标docx格式的word文档进行自动化排版”的实战教学(文章附带…...

嵌入式面试题解析:二维数组,内容与总线,存储格式

在嵌入式系统领域,扎实掌握基础概念是应对面试的关键。本文通过典型面试题,详细解析核心知识,梳理易错点,并补充常见面试题,助力新手快速入门。 一、二维数组元素地址计算 题目 若二维数组 arr[0..M-1][0..N-1] 的首…...

【iOS】alloc init new底层原理

目录 前言 alloc alloc核心操作 cls->instanceSize(extraBytes) calloc obj->initInstanceIsa init 类方法: 实例方法: new 前言 笔者最近在进行对OC语言源码的学习,学习源码的过程中经常会出现一些从来没有遇见过的函数&…...

解决vscode找不到Python自定义模块,报错No module named ‘xxx‘

1、 首先在.vscode下的launch.json中添加"env": {“PYTHONPATH”: “${workspaceRoot}”} {"version": "0.2.0","configurations": [{省略其他配置"env": {"PYTHONPATH": "${workspaceRoot}"}}] }2、 …...

【某比特币网址请求头部sign签名】RSA加密逆向分析

目标:aHR0cDovL21lZ2FiaXQudmlwL21hcmtldA 直接搜索sign不方便定位,可以换个思路搜asi_uuid或者user_info 为什么搜这个,因为都是请求头里面的参数,基本上会在一起 实际上就是Object(h.a)((new Date).getTime()) 直接在这里打断点…...

【Docker项目实战】使用Docker部署Jupyter Notebook服务

【Docker项目实战】使用Docker部署Jupyter Notebook服务 一、 Jupyter Notebook介绍1.1 Jupyter Notebook 简介1.2 主要特点1.3 主要使用场景二、本次实践规划2.1 本地环境规划2.2 本次实践介绍三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compos…...

Oracle高级语法篇 - 用户与角色关系

在Oracle数据库中,用户和角色是权限管理的核心概念。用户是数据库的使用者,而角色则是权限的集合。通过合理地分配角色给用户,可以简化权限管理,提高数据库的安全性和易用性。本文将详细讲解Oracle中用户和角色之间的关系&#xf…...

“小坝” 策略:始发站 buffer 控制与优化

端到端,这两个端是两个应用程序中的位置,第一个端指数据被产生处,第二个端指数据被消费处。更一般的,把数据发生的应用程序所在的主机视为数据始发站也是合理的。 网络中遍布 buffer,buffer 却是一把双刃剑的存在&…...

【esp32 点亮led】-解决不能闪烁问题

问题现象:将esp例程中的led例程下载到开发板中,led不能闪烁,串口查看,可以看到对应的led ON/led off 信息。 解决办法: 使用idf.py menuconfig 命令配置相应的引脚为GPIO模式,如下图所示,保存…...

自然语言处理(9)—— 共现词矩阵及Python实现

共现词矩阵 1. 概述2. 构建步骤3. 代码实现(Python)结语 共现词矩阵(Co-occurrence Matrix)是自然语言处理(NLP)中用于捕捉词语间语义关系的重要工具。共现矩阵通过统计词语在特定上下文窗口内的共现频率&a…...

缓存 --- Redis的三种高可用模式

缓存 --- Redis的三种高可用模式 主从复制(Replication)哨兵模式(Sentinel)集群模式(Cluster)总结对比选择建议 Redis 的高可用架构模式主要有三种:主从复制(Replication&#xff09…...

飞帆中控件数据和 Vue 双向绑定

在 Vue 中,数据的双向绑定是指在视图和数据模型之间自动保持同步。Vue 实现双向绑定的核心特性是其 响应式系统,它能够追踪数据的变化并自动更新视图,反之亦然,视图的变化也可以影响数据。 Vue 提供了几种方式来实现数据双向绑定&…...

【外研在线-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…...

实现AWS Data Pipeline安全地请求企业内部API返回数据

需要编写一段Data Pipeline在AWS云上运行,它需要访问企业内部的API获取JSON格式的数据,企业有网关和防火墙,API有公司的okta身份认证,通过公司的域账号来授权访问,现在需要创建一个专用的域账号,让Data Pip…...

AI书籍大模型微调-基于亮数据获取垂直数据集

大模型的开源,使得每位小伙伴都能获得AI的加持,包括你可以通过AIGC完成工作总结,图片生成等。这种加持是通用性的,并不会对个人的工作带来定制的影响,因此各个行业都出现了垂直领域大模型。 垂直大模型是如何训练出来…...

cloudstudio学习笔记之openwebui

代码获取 git clone 参考资料 openwebui官网 https://docs.openwebui.com/getting-started/advanced-topics/development 后端启动 cd backend pip install -r requirements.txt -U sh dev.sh后端启动成功后的界面 在cloudstudio提供的vscode弹出的提示中打开浏览器并在末…...

Linux安装mysql_exporter

mysqld_exporter 是一个用于监控 MySQL 数据库的 Prometheus exporter。可以从 MySQL 数据库的 metrics_schema 收集指标,相关指标主要包括: MySQL 服务器指标:例如 uptime、version 等数据库指标:例如 schema_name、table_rows 等表指标:例如 table_name、engine、…...

Kubernetes控制平面组件:API Server代码基础概念

云原生学习路线导航页(持续更新中) kubernetes学习系列快捷链接 Kubernetes架构原则和对象设计(一)Kubernetes架构原则和对象设计(二)Kubernetes架构原则和对象设计(三)Kubernetes控…...

修改PointLIO项目

添加key_frame_info.msg消息 新建.msg文件,内容填写为: # Cloud Info Header header # cloud messages sensor_msgs/PointCloud2 key_frame_cloud_ori sensor_msgs/PointCloud2 key_frame_cloud_transed sensor_msgs/PointCloud2 key_frame_poses其中k…...

将 JSON 字符串转化为对象的详细笔记 (Java示例)

1. 主流 JSON 库的选择 在 Java 中,常用以下库进行 JSON 和对象之间的转换: Jackson:Spring 默认集成,性能优异,支持流式解析。FastJSON:阿里开发,速度快,但需注意版本安全性。Gso…...

基于Docker+k8s集群的web应用部署与监控

项目架构图 server ip master 192.168.140.130 node1 192.168.140.131 node2 192.168.140.132 ansible 192.168.140.166 jumpserver 192.168.100.133 firewall 192.168.1.86 nfs 192.168.140.157 harbor 192.168.140.159 Promethethus 192.168.140.130 Jen…...

Java(自用查看版)

目录 1.java的基本运行 2、基本格式 注释 标识名 关键字 常量 整型常量 浮点数: 字符常量: 字符串常量 布尔 null值 变量 整型变量: 浮点变量: 字符变量: 布尔变量: 类型转换 自动类型转换 强制类型转换 运算符 …...

头歌java课程实验(函数式接口及lambda表达式)

第1关:利用lambda表达式对Book数组按多个字段进行排序 任务描述 本关任务:利用Comparator接口完成对Book数组同时按多个字段进行排序。 编程要求 1、本任务共有三个文件,可查看各文件的内容 2、无需修改SortBy.java枚举文件及Book.java类文…...

Jsp技术入门指南【九】详细讲解JSTL

Jsp技术入门指南【九】详细讲解JSTL 前言一、什么是JSTL&#xff1f;&#xff08;JavaServer Pages Standard Tag Library&#xff09;二、使用JSTL前的准备三、核心标签库常用标签详解1. <c:out>&#xff1a;输出内容&#xff08;替代<% %>&#xff09;2. <c:i…...

【C语言】用铁路系统来类比流,管道,进程,线程,内存,输入输出等

用**铁路网络**来比喻计算机中的这些概念会非常形象。下面是一个完整的类比体系,帮助你直观理解它们之间的关系: --- ### **1. 核心角色对照表** | **计算机概念** | **铁路网络比喻** | |--------…...

PCA——主成分分析数学原理及代码

主成分分析 PCA的目的是&#xff1a;对数据进行一个线性变换&#xff0c;在最大程度保留原始信息的前提下去除数据中彼此相关的信息。反映在变量上就是说&#xff0c;对所有的变量进行一个线性变换&#xff0c;使得变换后得到的变量彼此之间不相关&#xff0c;并且是所有可能的…...

[Windows] Adobe Camera Raw 17.2 win/Mac版本

[Windows] Adobe Camera Raw 链接&#xff1a;https://pan.xunlei.com/s/VOOIAXoyaZcKAkf_NdP-qw_6A1?pwdpd5k# Adobe Camera Raw&#xff0c;支持Photoshop&#xff0c;lightroom等Adobe系列软件&#xff0c;对相片无损格式进行编辑调色。 支持PS LR 2022 2023 2024 2025版…...

基于计算机视觉的行为检测:从原理到工业实践

一、行为检测的定义与核心价值 行为检测(Action Recognition)是计算机视觉领域的关键任务,旨在通过分析视频序列理解人类动作的时空特征。其核心价值体现在时序建模和多尺度分析能力上——系统需要捕捉动作的起始、发展和结束全过程,同时适应不同持续时间(0.1秒至数分钟)…...

基于 OpenCV 的图像与视频处理

基于 OpenCV 的图像处理 一、实验背景 OpenCV 是一个开源的计算机视觉库&#xff0c;广泛应用于图像处理、视频分析、目标检测等领域。通过学习 OpenCV&#xff0c;可以快速实现图像和视频的处理功能&#xff0c;为复杂的应用开发 奠定基础。本实验旨在通过实际代码示例&…...

B树的异常恢复

B-Tree & Crash Recovery B树作为平衡的n叉树 高度平衡树 许多实用的二叉树&#xff08;如AVL树或红黑树&#xff09;被称为高度平衡树&#xff0c;这意味着树的高度&#xff08;从根节点到叶子节点&#xff09;被限制为Ο(log &#x1d441;)&#xff0c;因此查找操作的…...

Centos9 离线安装 MYSQL8

centos 9 离线安装 mysql 8 参考教程 1. 官网下载mysql 下载地址 2. 将文件传输到Centos中解压 软件全部安装到了/opt中 在opt中新建mysql目录&#xff0c;解压到mysql目录中 tar -xvf mysql压缩文件 mysql[rootcentoshost mysql]# ls mysql-community-client-8.4.5-1.e…...

【RabbitMQ | 第2篇】RabbitMQ 控制台实现消息路由 + 数据隔离

文章目录 同步调用和异步调用MQRabbitMQ1. RabbitMQ控制台实现交换机路由到队列1.1 创建队列1.2 将消息发送给交换机&#xff0c;是否会到达队列 2. RabbitMQ控制台实现数据隔离2.1 添加一个用户2.2 创建新的虚拟主机 同步调用和异步调用 同步调用是指完成一个功能&#xff0c…...

算法—选择排序—js(场景:简单实现,不关心稳定性)

选择排序原理&#xff1a;&#xff08;简单但低效&#xff09; 每次从未排序部分选择最小元素&#xff0c;放到已排序部分的末尾。 特点&#xff1a; 时间复杂度&#xff1a;O(n) 空间复杂度&#xff1a;O(1) 不稳定排序 // 选择排序 function selectionSort(arr) {for (let …...

龙舟中国行走进湖南娄底 2025湖南省龙舟联赛娄底站盛大举行

鼓声震天破碧波&#xff0c;百舸争流显豪情。2025年4月20日星期日&#xff0c;"龙舟中国行2025"首站——龙舟中国行走进湖南娄底2025湖南省龙舟联赛娄底双峰站在双峰县湄水河育才桥至风雨桥水域火热开赛。12支劲旅劈波斩浪&#xff0c;在青山绿水间上演传统与现代交织…...

重构之去除多余的if-else

一、提前返回&#xff08;Guard Clauses&#xff09; 适用场景&#xff1a;当 else 块仅用于处理异常或边界条件时。 优化前&#xff1a;if (isValid) {doSomething(); } else {return; }优化后&#xff1a;if (!isValid) return; // 提前处理异常&#xff0c;主流程保持简洁…...

【Vim】vim的简单使用

文章目录 1. vi的模式2. 按键使用说明2.1 一般命令模式光标移动替换和查找删除/复制/粘贴 2.2 编辑模式插入/替换 2.3 命令行模式保存/退出环境修改 3. vim的缓存4. vim可视区块5. vim多文件编辑6. vim多窗口功能7. vim关键词补全 1. vi的模式 一般命令模式&#xff1a;以vi打…...

【消息队列RocketMQ】一、RocketMQ入门核心概念与架构解析

在当今互联网技术飞速发展的时代&#xff0c;分布式系统的架构设计愈发复杂。消息队列作为分布式系统中重要的组件&#xff0c;在解耦应用、异步处理、削峰填谷等方面发挥着关键作用。RocketMQ 作为一款高性能、高可靠的分布式消息中间件&#xff0c;被广泛应用于各类互联网场景…...

hadoop分布式部署

1. 上传jdk和hadoop安装包到服务器 2. 解压压缩包 tar xf jdk1.8.0_112.tgz -C /usr/local/ tar xf hadoop-3.3.6.tar.gz -C /usr/local/3. 关闭防火墙 systemctl stop firewalld systemctl disable firewalld4. 修改配置文件 core-site.xml、hadoop-env.sh、yarn-env.sh、…...

C++面试题集合(附答案)

C全家桶 C基础 1. C和C有什么区别&#xff1f; 2. C语言的结构体和C的有什么区别&#xff1f; 3. C 语言的关键字 static 和 C 的关键字 static 有什么区别&#xff1f; 4. C 和 Java有什么核心区别&#xff1f; 5. C中&#xff0c;a和&a有什么区别&#xff1f; 6. …...

23种设计模式-结构型模式之装饰器模式(Java版本)

Java 装饰器模式&#xff08;Decorator Pattern&#xff09;详解 &#x1f381; 什么是装饰器模式&#xff1f; 装饰器模式是一种结构型设计模式&#xff0c;允许向一个对象动态添加新的功能&#xff0c;而不改变其结构。 &#x1f9f1; 你可以想象成在原有功能上“包裹”一…...

UE5的BumpOffset节点

BumpOffset 节点的基本概念 本质上&#xff0c;BumpOffset 节点通过扭曲或偏移纹理坐标来创造深度错觉。它基于视角方向和高度信息动态地调整纹理采样位置&#xff0c;使平面表面看起来具有凹凸感。这是一种称为视差映射(Parallax Mapping)的技术的实现。 当你从不同角度观察…...

从跌倒到领跑:北京亦庄机器人马拉松如何改写人机协作未来?

目录 一、当铁骨遇见马拉松精神 二、半马背后的硬核突破 三、赛事背后的科技博弈 四、当机器人走出实验室 跌倒者的荣光 清晨7:30的南海子公园,发令枪响瞬间——20台形态各异的机器人以千奇百怪的姿态冲出起跑线,有的像蹒跚学步的孩童,有的如专业运动员般矫健,更有机器…...

Internet Protocol

一、IP 1. 基本概念 IP定义&#xff1a;IP 是为计算机网络相互连接进行通信而设计的协议&#xff0c;它规定了网络设备如何标识和寻址&#xff0c;以及数据如何在网络中传输和路由。IP作用&#xff1a;主要负责在不同的网络之间转发数据包&#xff0c;使数据能够从源主机准确…...

Android学习之实战登录注册能力

我们可以从本地 Token 存储、时效管理、服务端通知联动、定时器优化四个维度深入展开 一、本地 Token 存储设计&#xff08;基于 SharedPreferences&#xff09; 1. 存储结构优化&#xff08;包含时效性字段&#xff09; // 定义存储类&#xff08;封装SharedPreferences操作…...

【数据可视化-19】智能手机用户行为可视化分析

&#x1f9d1; 博主简介&#xff1a;曾任某智慧城市类企业算法总监&#xff0c;目前在美国市场的物流公司从事高级算法工程师一职&#xff0c;深耕人工智能领域&#xff0c;精通python数据挖掘、可视化、机器学习等&#xff0c;发表过AI相关的专利并多次在AI类比赛中获奖。CSDN…...