虚幻引擎5-Unreal Engine笔记之常用核心类的继承关系
虚幻引擎5-Unreal Engine笔记之常用核心类的继承关系
code review!
文章目录
- 虚幻引擎5-Unreal Engine笔记之常用核心类的继承关系
- 1.UE5中常用核心类的继承关系
- 1.1.简化版
- 1.2.plantuml图
- 1.3.plantuml代码
- 1.4.关于大写字母`U`和`A`
- 2.1.组件和类的关系,组件也是类吗?
- 2.1. 类是什么?
- 2.2. 组件是什么?
- 2.3. 组件和类的关系
- 2.4. UE中的典型结构
- 2.5. 总结一句话
- 3.这是组件还是类?
- 4.关卡蓝图是一个类吗?
- 4.1. 关卡蓝图是不是类?
- 4.1.2.关卡蓝图是什么?
- 4.1.3.普通蓝图类是什么?
- 4.2. 为什么关卡蓝图不是“类”?
- 4.3. 技术上关卡蓝图的底层
- 5.Actor和SceneComponent的关系
- 5.1.Actor是什么?
- 5.2.SceneComponent是什么?
- 5.3.两者的关系
- 5.4.简单举例
- 5.5.简要总结
- 6.SceneComponent是组件的其中一种组件还是说组件就是SceneComponent?
- 6.1.组件(Component)是什么?
- 6.2.SceneComponent是组件的一种
- 6.3.组件的分类关系图
- 6.4.举例说明
- 6.5.结论
- 7.UE5编辑器中的内容浏览器中的Class可以是些什么?
- 7.1.Class 在内容浏览器中的含义
- 7.2.主要的 Class 资产类型
- 7.2.1.蓝图类(Blueprint Class)
- 7.2.2.数据资产(Data Asset)
- 7.2.3.蓝图接口(Blueprint Interface)
- 7.2.4.枚举(Enum)/ 结构体(Struct)
- 7.2.5.C++ Class(仅显示引用)
- 7.2.6.其他类资产
- 7.3.内容浏览器中的Class资产用途
- 7.4.图示总结
- 7.5.补充说明
- 8.UE5编辑器中内容浏览器中的内容可能是SceneComponent吗?
1.UE5中常用核心类的继承关系
1.1.简化版
1.2.plantuml图
1.3.plantuml代码
@startuml
skin rose' 基础对象
class UObject' Actor体系
class AActor
UObject <|-- AActorclass APawn
AActor <|-- APawnclass ACharacter
APawn <|-- ACharacterclass AController
AActor <|-- AControllerclass APlayerController
AController <|-- APlayerControllerclass AAIController
AController <|-- AAIControllerclass AGamemodeBase
AActor <|-- AGamemodeBaseclass AGamemode
AGamemodeBase <|-- AGamemodeclass AGameStateBase
AActor <|-- AGameStateBaseclass AGameState
AGameStateBase <|-- AGameStateclass APlayerState
AActor <|-- APlayerStateclass ASpectatorPawn
AActor <|-- ASpectatorPawnclass AStaticMeshActor
AActor <|-- AStaticMeshActorclass ALight
AActor <|-- ALightclass ADirectionalLight
ALight <|-- ADirectionalLightclass APointLight
ALight <|-- APointLightclass ASpotLight
ALight <|-- ASpotLightclass ACameraActor
AActor <|-- ACameraActor' 组件体系
class UComponent
UObject <|-- UComponentclass USceneComponent
UComponent <|-- USceneComponentclass UPrimitiveComponent
USceneComponent <|-- UPrimitiveComponentclass UMeshComponent
UPrimitiveComponent <|-- UMeshComponentclass UStaticMeshComponent
UMeshComponent <|-- UStaticMeshComponentclass USkeletalMeshComponent
UMeshComponent <|-- USkeletalMeshComponentclass UShapeComponent
UPrimitiveComponent <|-- UShapeComponentclass UActorComponent
UComponent <|-- UActorComponentclass UMovementComponent
UActorComponent <|-- UMovementComponentclass UCharacterMovementComponent
UMovementComponent <|-- UCharacterMovementComponentclass UAudioComponent
UActorComponent <|-- UAudioComponent
@enduml
1.4.关于大写字母U
和A
2.1.组件和类的关系,组件也是类吗?
2.1. 类是什么?
- 类(Class)是代码层面的概念,是某种对象的“蓝图”或“模板”。
- 在C++或蓝图里定义的
AActor
、UStaticMeshComponent
、UUserWidget
等,都是类。 - 类描述了对象的属性和行为,但本身不是“实体”。
2.2. 组件是什么?
- 组件(Component)是指挂在Actor上的功能模块,比如碰撞体、网格、灯光、声音等。
- 组件本质上是类的实例对象。比如
UStaticMeshComponent
是“网格组件”这个类,在关卡中创建一个“汽车Actor”,可以给它添加一个网格组件,这个组件其实就是UStaticMeshComponent
类的一个实例。 - 组件不能单独存在,只能附着在Actor(或其它组件)上。
2.3. 组件和类的关系
概念 | 解释 | 关系说明 |
---|---|---|
类 | 代码中的一个模板,比如UStaticMeshComponent | 定义了组件的属性和功能 |
组件 | 类的一个实例,比如“角色的Mesh组件” | 是类实例化出来的具体对象 |
举个现实例子:
- “汽车”是类(模板),
- “汽车”是类的一个实例(对象),
- “后视镜”是组件类(后视镜的模板),
- “汽车上的后视镜”是后视镜组件类的一个实例(挂在汽车上的后视镜对象)。
2.4. UE中的典型结构
- Actor 是一个类,在场景里拖一个“Actor”进去,其实是Actor类的一个实例。
- 组件 也是类,比如
UStaticMeshComponent
,给Actor添加一个网格组件,就是实例化了UStaticMeshComponent
这个类,然后“挂”到了这个Actor身上。
代码层面举例:
// 定义自己的Actor类
class AMyActor : public AActor
{
public:UPROPERTY()UStaticMeshComponent* MeshComp;AMyActor(){MeshComp = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("MeshComp"));RootComponent = MeshComp;}
};
- 这里
UStaticMeshComponent
是类,MeshComp
是这个类的实例,被挂到AMyActor上。
2.5. 总结一句话
组件是类的实例,是Actor的“零部件”。组件的类型由组件的类决定。
3.这是组件还是类?
截图中黄色框选部分(比如 Audio、Point Light、Skeletal Mesh、Static Mesh、Sphere、Cube、Plane 等)在编辑器里叫“组件”,但本质上:
- 它们是“组件类型”或“组件类”的名字,代表可以往当前Actor里添加这类组件的实例。
- 当点击它们,比如“Static Mesh”,就会给Actor添加一个“Static Mesh 组件实例”,这个实例本质上就是
UStaticMeshComponent
类的一个对象。
换句话说
- 列表里的每一项,比如“Static Mesh”,其实对应一个组件类(比如
UStaticMeshComponent
)。 - 但点击添加到Actor后,在Actor身上的就是“组件实例”,即真正的“组件”。
总结
-
图中是“组件类型选择列表”,每一项是一个组件类。
-
添加到Actor上的是该类的一个组件实例。
-
这个列表就像是“零件目录”(比如“轮子”、“车灯”),
-
点一下,相当于“从工厂拿一个零件(类的新实例)装到的Actor上”。
4.关卡蓝图是一个类吗?
4.1. 关卡蓝图是不是类?
关卡蓝图不是传统意义上的“类”,它和普通的“蓝图类”有本质区别。
4.1.2.关卡蓝图是什么?
- 关卡蓝图是某个具体关卡(Level)唯一对应的脚本,只属于该关卡。
- 它不能被复用、继承或实例化成多个对象。
- 它不像普通蓝图(如Actor蓝图、Widget蓝图)那样,是某个类的定义,可以生成无数实例。
4.1.3.普通蓝图类是什么?
- 比如Actor蓝图,本质是类的定义,可以在关卡里拖很多个实例出来。
4.2. 为什么关卡蓝图不是“类”?
- 关卡蓝图没有类名,不能像
AActor
那样被继承或派生。 - 它只服务于当前这个关卡,里面的逻辑只在本关卡运行时才执行。
- 它的本质更接近于“该关卡的全局事件脚本”或“唯一的控制器”。
4.3. 技术上关卡蓝图的底层
- 在UE底层,关卡蓝图由引擎自动生成了一个特殊的蓝图类(比如
ALevelScriptActor
的子类),但无法像普通蓝图那样操作这个类型。 - 在编辑器里看不到“关卡蓝图类”,也无法基于它创建多个对象。
- 每个关卡只有一个关卡蓝图。
关卡蓝图不是普通意义上的“类”,而是关卡的唯一全局脚本。它本身不是可以复用或实例化的类。
- Actor蓝图、Pawn蓝图、Widget蓝图等,是“类”,可以复用、继承、实例化。
- 关卡蓝图,只有“单例”,只属于当前关卡,不能像类一样被复用。
如果想让一段逻辑可以被多个关卡或多个对象复用,应该写成Actor蓝图或自定义C++类,而不是关卡蓝图。
5.Actor和SceneComponent的关系
5.1.Actor是什么?
- Actor 是虚幻引擎中可放置到关卡(Level)中的对象的基类。
- 你可以把Actor理解为**“游戏世界中的实体”**,比如玩家角色、道具、灯光、敌人等。
- Actor本身并没有可见的形状或位置,但它管理和组织一组组件。
5.2.SceneComponent是什么?
- SceneComponent 是一种特殊的组件,具有**空间变换(位置、旋转、缩放)**的能力。
- 也就是说,SceneComponent可以有自己的坐标系,可以附加到其他SceneComponent上形成层级结构。
- 典型的SceneComponent有:
StaticMeshComponent
(静态网格体)、CameraComponent
、SpringArmComponent
等。
5.3.两者的关系
- 每个Actor都可以包含一个或多个Component(组件),其中可以包含多个SceneComponent。
- SceneComponent提供了空间(Transform)信息,这样Actor就能“存在”在世界的某个位置。
- 通常,Actor会有一个RootComponent(根组件),而RootComponent通常是一个SceneComponent。所有其他组件都可以附加到RootComponent上,形成一个组件树。
示意关系图
Actor
│
├── SceneComponent (RootComponent)
│ ├── SceneComponent (子组件)
│ │ └── SceneComponent (孙组件)
│ └── StaticMeshComponent
│
└── 其它非SceneComponent(如AudioComponent等)
- Actor 本身没有位置,RootComponent(通常是SceneComponent)决定了Actor的位置。
5.4.简单举例
例如,你有一个角色Actor:
MyCharacterActor
- RootComponent:
CapsuleComponent
(SceneComponent)MeshComponent
(角色网格,附加在RootComponent下)CameraComponent
(摄像机,附加在RootComponent下)
- RootComponent:
5.5.简要总结
- Actor是容器,负责管理生命周期、网络同步、交互等。
- SceneComponent是可以被附加和定位的组件,决定Actor在世界中的空间信息。
- Actor必须有一个SceneComponent作为RootComponent,才能具有位置和旋转。
6.SceneComponent是组件的其中一种组件还是说组件就是SceneComponent?
SceneComponent 只是组件(Component) 的一种,不是所有组件都是 SceneComponent。
6.1.组件(Component)是什么?
- 组件(
UActorComponent
)是可以附加到Actor上的功能模块,用来为Actor添加功能或行为。 - 组件有很多种,不一定都有空间(Transform)属性。
6.2.SceneComponent是组件的一种
- SceneComponent(
USceneComponent
)继承自UActorComponent
,是具有空间变换(位置、旋转、缩放)能力的组件。 - 只有SceneComponent及其子类可以形成层级结构,被附加到Actor的RootComponent上。
6.3.组件的分类关系图
UActorComponent
│
├── USceneComponent ← 有空间信息(位置、旋转等)
│ ├── UStaticMeshComponent
│ ├── USkeletalMeshComponent
│ ├── UCameraComponent
│ └── ...(其他有空间信息的组件)
│
└── UAudioComponent ← 没有空间(直接继承自UActorComponent)
└── UProjectileMovementComponent
└── UActorComponent ← 你自定义的功能组件
6.4.举例说明
-
SceneComponent 子类:
UStaticMeshComponent
(静态网格体)UCameraComponent
(摄像机)USpringArmComponent
(弹簧臂)- 这些都可以拥有位置、旋转和缩放,并能形成父子层级。
-
非 SceneComponent 的组件:
UAudioComponent
(音频组件)UMovementComponent
(移动组件)- 这些没有空间(Transform)属性,不能组成空间层级,只是为Actor添加额外功能。
6.5.结论
-
SceneComponent 是组件的一种,专门用于有空间变换需求的情况。
-
不是所有组件都是 SceneComponent。
-
组件体系结构如下:
- UActorComponent(基础组件)
- USceneComponent(有空间信息的组件)
- 例如:
UStaticMeshComponent
、UCameraComponent
等
- 例如:
- 其他ActorComponent(没有空间信息的组件)
- 例如:
UAudioComponent
、UMovementComponent
等
- 例如:
- USceneComponent(有空间信息的组件)
- UActorComponent(基础组件)
7.UE5编辑器中的内容浏览器中的Class可以是些什么?
在 Unreal Engine 5 编辑器的内容浏览器(Content Browser)中,Class 指的是资产(Asset)的一种类型,也就是类资产。这些类资产主要用于蓝图(Blueprint)、数据资产(Data Asset)、C++类引用等多种用途。下面详细讲解一下:
7.1.Class 在内容浏览器中的含义
- 在内容浏览器中,Class 通常指的是UClass,也就是 Unreal 对象系统中的“类”。
- 当右键选择“添加资产”时,选项里有“蓝图类(Blueprint Class)”、“数据资产(Data Asset)”等。
- 可以直接在内容浏览器中看到和管理各种类相关的资产,比如蓝图类、数据资产、接口等。
7.2.主要的 Class 资产类型
7.2.1.蓝图类(Blueprint Class)
- 最常见的 Class 资产。
- 包括继承自 Actor、Pawn、Character、Component、Widget、GameMode 等不同父类的蓝图。
- 用于可视化编写和扩展逻辑。
7.2.2.数据资产(Data Asset)
- 继承自
UDataAsset
或其它数据驱动的类。 - 用于存储结构化数据,例如怪物参数、配置表、对话文本等。
7.2.3.蓝图接口(Blueprint Interface)
- 定义一组可以被实现的函数,但不包含实际实现。
- 用于不同蓝图之间的通信。
7.2.4.枚举(Enum)/ 结构体(Struct)
- 虽然严格来说不是“Class”,但在内容浏览器中可以创建并管理。
- 用于定义数据类型。
7.2.5.C++ Class(仅显示引用)
- 如果用C++扩展项目,内容浏览器中可以看到C++类的引用,但不能直接编辑C++类。
- 可以右键“创建蓝图类”继承C++类。
7.2.6.其他类资产
- Animation Blueprint(动画蓝图类)
- Behavior Tree(行为树类)
- Widget Blueprint(UI小部件类)
- Material Function、Material Parameter Collection(材质相关类)
- 等等
7.3.内容浏览器中的Class资产用途
- 作为对象模板:比如蓝图类就是Actor的模板,可以拖到场景中生成实例。
- 供运行时动态加载与引用:比如通过Class Reference变量,动态生成新对象。
- 数据驱动:数据资产/DataTable用于配置和调优游戏内容。
7.4.图示总结
内容浏览器中的Class资产(常见类型)- Blueprint Class(蓝图类)
- Data Asset(数据资产)
- Blueprint Interface(蓝图接口)
- Enum / Struct(枚举/结构体)
- Animation Blueprint(动画蓝图)
- Behavior Tree(行为树)
- Widget Blueprint(UI蓝图)
- Material Function / Collection(材质类资产)
- C++ Class(仅引用,不可编辑)
7.5.补充说明
- 在内容浏览器中,Class资产不是运行时实例,而是可以被实例化的“模板”或“配置”。
- 可以通过右键菜单创建新的Class资产,或者对它们进行组织、继承和管理。
8.UE5编辑器中内容浏览器中的内容可能是SceneComponent吗?
一般情况下,SceneComponent
不是内容浏览器里的“Class资产”。
详细解释
1.内容浏览器中的Class资产是什么?
- 内容浏览器里的“Class资产”,通常指的是可以作为资产被保存和引用的类,例如“蓝图类(Blueprint Class)”、“数据资产(Data Asset)”、“蓝图接口(Blueprint Interface)”等。
- 这些资产可以在内容浏览器中单独管理、创建、编辑和引用。
2.SceneComponent是什么?
SceneComponent
是一个组件类,通常作为Actor蓝图或C++类的组件成员存在。- 它不是一个可以单独作为资产保存或拖进场景的对象。
3.你能在内容浏览器中看到SceneComponent吗?
- 不能:你无法直接在内容浏览器中创建一个“SceneComponent资产”。
- 你可以在内容浏览器中创建一个Actor蓝图类(比如
MyActor
),然后在蓝图编辑器里给这个Actor添加SceneComponent。 - 但SceneComponent本身不会作为独立的Class资产出现在内容浏览器里。
4.例外情况
- 可以创建“继承自SceneComponent的蓝图类”,比如你新建一个“继承自SceneComponent的蓝图”,这时这个蓝图就是一个Class资产。
- 但这种蓝图不能直接拖进关卡作为Actor使用,只能作为组件被添加到别的Actor里。
- 所以,内容浏览器里的Class资产可以是“SceneComponent的子类蓝图”,但它本身不是可以直接用来实例化到场景里的资产。
总结
- 内容浏览器里的Class资产,大多数是Actor类及其子类,当然也可以新建“继承自SceneComponent的蓝图类”。
- SceneComponent本身作为资产没有用途,但你可以在内容浏览器里看到“继承自SceneComponent的蓝图类”。
- 这些组件蓝图只能作为组件被添加到别的Actor里,而不是直接出现在场景中。
典型用法举例
- 在内容浏览器中创建一个
MyCustomComponent
(继承自SceneComponent的蓝图类)。 - 在你自己的Actor蓝图中,添加组件,选择你刚刚创建的
MyCustomComponent
。 - 这样就能复用你自定义的SceneComponent逻辑。
相关文章:
虚幻引擎5-Unreal Engine笔记之常用核心类的继承关系
虚幻引擎5-Unreal Engine笔记之常用核心类的继承关系 code review! 文章目录 虚幻引擎5-Unreal Engine笔记之常用核心类的继承关系1.UE5中常用核心类的继承关系1.1.简化版1.2.plantuml图1.3.plantuml代码1.4.关于大写字母U和A2.1.组件和类的关系,组件也是类吗&…...
力扣2680题解
记录 2025.5.9 题目: 思路: 1.计算初始或值:首先计算数组中所有元素的按位或结果 allOr,这表示在不进行任何左移操作时数组的或值。 2.计算固定或值:在计算 allOr 的同时,计算一个 fixed 值,…...
搭建基于chrony+OpenSSL(NTS协议)多层级可信时间同步服务
1、时间同步服务的层级概念 在绝大多数IT工程师实际工作过程中,针对于局域网的时间同步,遇到最多的场景是根据实际的需求,搭建一个简单的NTP时间同步服务以时间对局域网中的服务器、网络设备、个人电脑等基础设施实现同步授时功能。虽然这样…...
虚拟内存:深入解析与性能优化
文章目录 虚拟内存的概念虚拟内存的实现方式虚拟内存的页面置换算法虚拟内存的性能影响结论 在现代计算机系统中,虚拟内存(Virtual Memory)是一种至关重要的技术,它极大地提高了系统的多任务处理能力和内存利用率。本文将深入探讨…...
元数据和主数据
元数据和主数据是数据管理中的两个关键概念,其核心区别如下: 1. 定义与本质 元数据(Metadata) “关于数据的数据”,用于描述数据的属性、结构、来源、用途等上下文信息。 示例:数据库表的字段名称、数据类型…...
JavaScript事件处理全解析:从基础到最佳实践
在现代Web开发中,事件处理是构建交互式应用的核心技术。JavaScript提供了多种事件绑定方式,每种方法都有其适用场景和特点。本文将深入探讨7种主流的事件绑定方法,通过代码示例和原理分析,帮助开发者选择最合适的解决方案。 一、…...
高级数据结构:线段树
线段树概述 线段树是一种处理区间问题的优越算法,也是算法竞赛的常客。 线段树的特点是,类似于一棵二叉树,将一个序列分解成多个区间并储存在二叉树上。 例如,把区间 [ 1 , 10 ] [1,10] [1,10]作为树的根节点,然后把…...
精讲C++四大核心特性:内联函数加速原理、auto智能推导、范围for循环与空指针进阶
前引:在C语言长达三十余年的演进历程中,每一次标准更新都在试图平衡性能与抽象、控制与安全之间的微妙关系。从C11引入的"现代C"范式开始,开发者得以在保留底层控制能力的同时,借助语言特性大幅提升代码的可维护性与安全…...
用ffmpeg压缩视频参数建议
注意:代码中的斜杠\可以删除 一、基础压缩命令(画质优先) ffmpeg -i input.mp4 \-c:v libx264 -preset slow -crf 23 \ # H.264编码,平衡速度与质量-c:a aac -b:a 128k \ # 音频压缩-vf "scaleif(gt(a,16/9),1920,-2):if(…...
uni-app学习笔记(二)--vue页面代码的构成和新建页面
vue页面的构成 一.template 模板区,主要放html布局,注意,如果是开发uni-app,模板区不要放div,h1等标签了,用了在小程序和app端起不到作用。具体应该使用哪些组件,可在uni-app官网上查看:组件-…...
机器语言程序、汇编语言程序、硬件描述语言程序、编译程序、解释程序和链接程序
程序类型定义与核心特征处理对象 / 输入输出结果所属领域典型例子 / 作用机器语言程序由二进制指令(0/1 序列)构成,可被 CPU 直接执行,与硬件架构强绑定。无(直接执行)无(直接运行)低…...
智能语音助手的未来:从交互到融合
摘要 随着人工智能技术的不断进步,智能语音助手已经成为我们生活中不可或缺的一部分。从简单的语音指令到复杂的多模态交互,语音助手正在经历一场深刻的变革。本文将探讨智能语音助手的发展历程、当前的技术瓶颈以及未来的发展方向,特别是其在…...
Redis从基础到高阶应用:核心命令解析与延迟队列、事务消息实战设计
Redis基础知识 #切换数据库 bd:0>select 2 "OK" bd:2>dbsize "0" #清空数据库 bd:0>flushdb "OK" #设置值 bd:0>set name "lyt" "OK" #查看所有key bd:0>keys *1) "name" #获取key bd:0>get …...
操作系统原理实验报告
操作系统原理课程的实验报告汇总 实验三:线程的创建与撤销 实验环境:计算机一台,内装有VC、office等软件 实验日期:2024.4.11 实验要求: 1.理解:Windows系统调用的基本概念,进程与线程的基…...
Python爬虫实战:研究nodejs aes加密
1. 引言 1.1 研究背景与意义 在当今数字化时代,Web 数据的价值日益凸显。通过爬虫技术获取公开数据并进行分析,能够为企业决策、学术研究等提供有力支持。然而,为了保护数据安全和隐私,许多网站采用了加密技术对数据进行保护,其中 AES 加密是一种常见且安全的加密算法。…...
线程的一些事(2)
在java中,线程的终止,是一种“软性”操作,必须要对应的线程配合,才能把终止落实下去 然而,系统原生的api其实还提供了,强制终止线程的操作,无论线程执行到哪,都能强行把这个线程干掉…...
基于 PostgreSQL 的 ABP vNext + ShardingCore 分库分表实战
🚀 基于 PostgreSQL 的 ABP vNext ShardingCore 分库分表实战 📑 目录 🚀 基于 PostgreSQL 的 ABP vNext ShardingCore 分库分表实战✨ 背景介绍🧱 技术选型🛠️ 环境准备✅ Docker Compose(多库 & 读…...
御网杯2025 Web,Msic,密码 WP
Web YWB_Web_xff 审计代码,发现需要$cip2.2.2.1 使用burpsuite抓包,添加X-Forwarded-For:2.2.2.1 然后得到flag YWB_Web_未授权访问 更加题目描述知道需要admin登录,但是现在是guest。 使用burpsuite抓包 发现cookie里面存在userÿ…...
tensorflow 1.x
简介 TensorFlow:2015年谷歌,支持python、C,底层是C,主要用python。支持CNN、RNN等算法,分CPU TensorFlow/GPU TensorFlow。 TensorBoard:训练中的可视化。 快捷键:shiftenter执行命令,Tab键进…...
[ERTS2012] 航天器星载软件形式化模型驱动研发 —— 对 Scade 语言本身的影响
在《从ERTS学习SCADE发展》中提到,在 ERTS 会议中,Scade团队会在该会议中介绍与Scade相关的工作。在 ERTS 2012 中,Scade 团队介绍了使用Scade作为主要工具,应用在航天器星载软件开发中的相关话题。原材料可参考 《Formal Model D…...
Spring Boot 集成 Flink CDC 实现 MySQL 到 Kafka 实时同步
Spring Boot 集成 Flink CDC 实现 MySQL 到 Kafka 实时同步 📌 项目背景 在大数据实时处理场景中,数据库变更数据的捕获与传输是关键环节。Flink CDC 提供了从 MySQL 等数据库中实时捕获数据变更的能力,并通过 Apache Flink 引擎实现流式处理。 本项目使用 Spring Boot …...
软件体系结构(Software Architecture)
文章目录 1. 分层架构(Layered Architecture)核心逻辑代码示例(伪代码)典型场景优缺点 2. 客户端-服务器(Client-Server)核心逻辑典型交互流程应用场景代码示例(RESTful API)优缺点 …...
RS485和RS232 通信配置
RS232 目前硬件上支持RS232的有以下板卡: LubanCat-5IO底板(含有RS232x2) 7.1. 引脚定义 具体的引脚定义可以参考背面的丝印 LubanCat-5IO底板 引脚定义图 7.2. 跳帽配置 LubanCat-5IO底板 鲁班买5IO底板上的RS485和RS232是共用同一组…...
【高数上册笔记篇02】:数列与函数极限
【参考资料】 同济大学《高等数学》教材樊顺厚老师B站《高等数学精讲》系列课程 (注:本笔记为个人数学复习资料,旨在通过系统化整理替代厚重教材,便于随时查阅与巩固知识要点) 仅用于个人数学复习,因为课…...
【网络安全】——大端序(Big-Endian)和小端序(Little-Endian)
字节序(Endianness)是计算机系统中多字节数据(如整数、浮点数)在内存中存储或传输时,字节排列顺序的规则。它分为两种类型:大端序(Big-Endian)和小端序…...
机器学习极简入门:从基础概念到行业应用
有监督学习(supervised learning) 让模型学习的数据包含正确答案(标签)的方法,最终模型可以对无标签的数据进行正确处理和预测,可以分为分类与回归两大类 分类问题主要是为了“尽可能分开整个数据而画线”…...
MIT XV6 - 1.5 Lab: Xv6 and Unix utilities - xargs
接上文 MIT XV6 - 1.4 Lab: Xv6 and Unix utilities - find xargs 继续实验,实验介绍和要求如下 (原文链接 译文链接) : Write a simple version of the UNIX xargs program for xv6: its arguments describe a command to run, it reads lines from the standard …...
Springboot整合Swagger3
Springboot整合Swagger3、常用注解解释、访问Swagger地址出现404、403、拒绝访问等问题_swagger3注解-CSDN博客...
经典音乐播放器——完美歌词 Poweramp Music Player 3 build
—————【下 载 地 址】——————— 【本章单下载】:https://drive.uc.cn/s/d6c480bc47604 【百款黑科技】:https://ucnygalh6wle.feishu.cn/wiki/HPQywvPc7iLZu1k0ODFcWMt2n0d?fromfrom_copylink —————【下 载 地 址】——————— 本…...
锚定基础与拥抱融合: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 进行数据可视化开发时,可以结合 Vue 的响应式特性和 ECharts 的强大功能,实现动态、交互式的图表展示。 一、ECharts 基础使用 1. 安装 ECharts npm install echarts2. 在 Vue 组件中使用 ECharts <template><div…...
百度AI战略解析:文心一言与自动驾驶的双轮驱动
百度AI战略解析:文心一言与自动驾驶的双轮驱动 系统化学习人工智能网站(收藏):https://www.captainbed.cn/flu 文章目录 百度AI战略解析:文心一言与自动驾驶的双轮驱动摘要引言一、技术架构:大模型与自动…...
MCP Streamable HTTP 传输层的深度解析及实战分析
一、Streamable HTTP 传输层设计革新 1. 核心设计思想 协议融合:将 HTTP/1.1、HTTP/2 与 SSE 协议特性深度整合动态协商:通过 HTTP Header 实现传输协议动态协商(X-MCP-Transport)流式优先:默认启用流式传输,支持半双工通信背压控制:基于 HTTP/2 流级流量控制实现智能速…...
六大设计模式--OCP(开闭原则):构建可扩展软件的基石
写在前面:一个真实的项目悲剧 某电商平台促销功能每次迭代都需要修改核心订单类,导致: ✅ 双十一活动修改导致支付功能崩溃 ✅ 新人优惠引发会员系统连环故障 ✅ 每次发布需全量回归测试 根本原因:系统架构违反开闭原则 一、开闭…...
ActiveMQ 生产环境问题排查与调优指南(一)
一、引言 在当今复杂的分布式系统架构中,消息中间件扮演着至关重要的角色,而 ActiveMQ 作为一款广泛使用的开源消息中间件,凭借其丰富的特性、良好的稳定性和易用性,在众多企业的生产环境中占据了一席之地。它基于 JMS(…...
深入理解 JavaScript 中的 FileReader API:从理论到实践
文章目录 深入理解 JavaScript 中的 FileReader API:从理论到实践前言什么是 FileReader?核心特性 FileReader 的常用方法事件监听实际案例案例 1:读取文本文件内容案例 2:图片预览(Data URL)案例 3&#x…...
Google LLM prompt engineering(谷歌提示词工程指南)
文章目录 基本概念AI输出配置:调整AI的回答方式输出长度温度(Temperature)Top-K和Top-P 提示技术:让AI更好地理解你零样本提示(Zero-shot)少样本提示(Few-shot)系统提示(…...
前端npm包发布流程:从准备到上线的完整指南
无论是使用第三方库还是创建和分享自己的工具,npm都为我们提供了一个强大而便捷的平台,然而很多开发者在将自己的代码发布到npm上时往往面临各种困惑和挑战,本篇文章将从准备工作到发布上线,探讨如何让npm包更易发布及避免常见的坑…...
【MySQL】表空间结构 - 从何为表空间到段页详解
📢博客主页:https://blog.csdn.net/2301_779549673 📢博客仓库:https://gitee.com/JohnKingW/linux_test/tree/master/lesson 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! &…...
OB Cloud 云数据库V4.3:SQL +AI全新体验
OB Cloud 云数据库V4.3:SQL AI全新体验 简介 OB Cloud云数据库全新升级至V4.3版本,为用户带来了SQLAI的最新技术体验,强化数据库的传统功能,深度融合了人工智能技术,引入先进的向量检索功能和优化的SQL引擎,…...
【Linux系统】第四节—详解yum+vim
hello 我是云边有个稻草人 Linux—本节课所属专栏—欢迎订阅—持续更新中~ 目录 画板—本节课知识点详解 一、软件包管理器 1.1 什么是软件包 1.2 Linux软件⽣态 1.3 yum具体操作 【查看软件包】 【安装软件】 【卸载软件】 【注意事项】 1.4 安装源 二、vim 2.1 …...