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

MPP 架构解析:原理、核心优势与对比指南

一、引言:大数据时代的数据处理挑战

全球数据量正以指数级增长。据 Statista 统计,2010 年全球数据量仅 2ZB,2025 年预计达 175ZB。企业面临的核心挑战已从“如何存储数据”转向“如何快速分析数据”。传统架构在处理海量数据时暴露明显瓶颈:单点资源争用导致查询延迟激增,垂直扩展成本高昂(如某金融机构单台服务器扩容费用超百万美元),且难以支持实时分析需求。

MPP 架构的历史演进

MPP 架构并非新生事物,其发展历程可追溯至 1980 年代:

  • 第一代(1980-1995):Teradata、Tandem NonStop SQL 等开创性产品出现,主要服务于电信和金融行业的大型主机环境
  • 第二代(1995-2010):Netezza、Greenplum、Vertica 等商业 MPP 数据库崛起,引入列式存储、压缩等创新
  • 第三代(2010-2020):AWS Redshift、Snowflake 等云原生 MPP 产品问世,实现存算分离与弹性扩展
  • 第四代(2020 至今):以 StarRocks、ClickHouse 为代表的开源 MPP 数据库蓬勃发展,融合实时分析与 AI 能力

MPP(大规模并行处理)架构凭借其分布式计算能力,成为破解大数据处理难题的“效率引擎”。

二、MPP 架构的核心原理与组件

1. 定义与基本原理

MPP 架构(Massively Parallel Processing,大规模并行处理)是一种分布式计算架构,通过将数据和计算任务分散到多个独立节点,实现高性能数据处理。其三大核心特征:

  • 分布式计算:单条 SQL 查询被智能拆解为多个子任务,由不同节点并行执行。例如,一个涉及 10 亿条记录的聚合查询,在 100 节点 MPP 集群中,每个节点仅需处理 1000 万条记录,实现 “分而治之”。

  • 无共享架构(Shared-Nothing):每个计算节点拥有专属 CPU、内存和存储资源,节点间通过高速互联网络协作,避免资源竞争。这与共享存储架构(如 Oracle RAC)形成鲜明对比。

  • 数据分片与本地化处理:采用哈希、范围或混合分片策略,确保数据均匀分布,并优先在数据所在节点执行计算(数据亲和性原则),最小化网络数据移动。

2. 核心组件协同机制

协调节点(Coordinator)负责接收客户端请求、解析 SQL、生成执行计划并协调分布式执行。 计算节点(Worker)执行实际数据处理任务。存储层采用高效数据组织方式,优化 IO 性能。

  • 查询优化器:自动生成分布式执行计划。例如,AWS Redshift 的优化器会根据数据分布动态调整 JOIN 顺序,降低网络传输开销。
  • 计算节点:采用向量化引擎(如 StarRocks)或 LLVM 编译优化(如 ClickHouse)提升单节点处理效率。
  • 存储节点:列式存储(Parquet/ORC 格式)结合数据分区(Partitioning)与分桶(Bucketing),实现高效压缩与快速过滤。

三、MPP 架构的四大核心优势

1. 高性能:线性扩展能力

MPP 架构最显著优势在于通过增加节点实现近乎线性的性能提升。

这种线性扩展特性使 MPP 架构能够应对 “大促” 等突发流量场景。菜鸟物流分析平台在 “双 11” 期间,通过动态扩展 StarRocks 集群从 30 节点至 120 节点,平均查询响应时间保持在 1.2 秒以内,确保实时物流决策。

关键技术支撑

  • 分布式执行优化:自动识别并优化数据倾斜

  • 并行度动态调整:根据数据分布和节点负载自适应调整任务并行度

  • 分布式操作符:特殊设计的 Hash-Join、分布式聚合算法,确保扩展效率

2. 高扩展性:存算分离实践

云原生 MPP 数据库(如 Snowflake、StarRocks 等)基于存算分离架构,实现三大灵活性:

  • 计算资源弹性:可在秒级动态调整计算节点数量,适应负载变化。某亚洲电商平台采用 “潮汐型” 资源调度策略,白天维持 64 节点集群支撑业务查询,夜间自动缩减至 16 节点执行 ETL 作业,计算成本降低 52%。

  • 存储无限扩展:基于对象存储(S3、OSS、GCS)构建无限容量数据湖。Netflix 将超过 100PB 媒体分析数据存储于 S3,通过 Snowflake 实现按需查询,存储成本较传统 SAN 降低 87%。

  • 多租户隔离:支持为不同业务部门分配独立计算资源,避免各业务场景下资源利用率不足问题。

3. 高兼容性:标准 SQL 与生态集成

现代 MPP 数据库普遍提供高度兼容的 SQL 接口,高兼容性降低了技术迁移风险。

同时,现代 MPP 平台提供丰富的连接器和 API,实现与数据科学工具等 生态系统的无缝集成。

  • Snowflake Snowpark 支持 Python/Java/Scala UDF 直接在 MPP 环境执行;

  • Redshift 与 SageMaker 集成,支持 ML 模型训练和推理;

  • StarRocks 与开源 Iceberg/Hudi/Delta Lake 湖仓一体化,统一分析入口;

4. 高可用性:多副本与自动修复

企业级 MPP 架构通过多层次可靠性保障,确保业务连续性:

  • 数据冗余与自愈:自动维护多副本(通常 3 副本),节点故障时自动重建。

  • 故障检测与自动恢复:心跳机制快速识别故障节点(通常 < 10 秒),重新分配任务。

  • 地理分布式部署:支持跨区域同步复制。

  • 渐进式恢复:故障后优先恢复关键业务查询能力,实现业务分级可用。

、MPP 架构与其他架构对比

1. 架构特性与性能比较

2. 不同架构的最佳适用场景

  • 传统 RDBMS:事务密集型应用、结构化数据管理、中小规模分析(<1TB);

  • Hadoop 生态:非结构化数据处理、批量 ETL 作业、廉价存储海量历史数据;

  • MPP 架构:交互式分析、实时仪表盘、高并发 BI 报表、复杂多表关联分析;

  • 流处理引擎:事件流处理、实时监控告警、连续查询场景;

  • 湖仓一体:统一数据平台、混合工作负载、数据科学与 AI/ML 场景;

不过,近年来各架构边界日益模糊,呈现融合发展趋势:

  • MPP + 流处理:StarRocks 支持 Flink 实时入湖,实现秒级数据可查询;

  • MPP+AI 加速:Snowflake Cortex、BigQuery ML 提供内置机器学习能力;

  • MPP + 湖仓一体:Databricks Photon、StarRocks 实现统一查询层;

结语

MPP 架构正在重塑企业数据分析范式。从金融实时风控到广告效果归因,其价值已在全球头部企业中得到验证。随着云原生技术的成熟,未来 MPP 数据库将进一步融合弹性计算、智能优化等能力,成为企业解锁数据价值的核心基础设施。对于技术选型者而言,需紧扣业务场景,在性能、成本、扩展性之间找到最佳平衡点,让 MPP 架构真正成为驱动业务增长的“数据引擎”。

相关文章:

MPP 架构解析:原理、核心优势与对比指南

一、引言&#xff1a;大数据时代的数据处理挑战 全球数据量正以指数级增长。据 Statista 统计&#xff0c;2010 年全球数据量仅 2ZB&#xff0c;2025 年预计达 175ZB。企业面临的核心挑战已从“如何存储数据”转向“如何快速分析数据”。传统架构在处理海量数据时暴露明显瓶颈…...

2025.04.10-拼多多春招笔试第三题

📌 点击直达笔试专栏 👉《大厂笔试突围》 💻 春秋招笔试突围在线OJ 👉 笔试突围OJ 03. 数字重排最大化问题 问题描述 LYA是一位专业的数字设计师。她手中有两个数字序列 s 1 s_1...

前端-vue2核心

官网网址Vue2 安装 — Vue.js 搭建环境 第一种方式&#xff08;刚开是接触Vue&#xff09; 我们看官网&#xff0c;可以直接在script引入vue版本。这里有两个版本&#xff0c;开发版和生产版本。我们两个都下载。 然后创建一个项目&#xff0c;将下载的生产版本和开发版本粘…...

基于springboot的“协同过滤算法的高考择校推荐系统”的设计与实现(源码+数据库+文档+PPT)

基于springboot的“协同过滤算法的高考择校推荐系统”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;springboot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统功能结构图 局部E-R图 系统…...

制作前的关键筹备:考试考核系统之核心要点

明确系统使用目的​ 制作考试考核系统前&#xff0c;企业需明确系统使用目的&#xff0c;这是开发基石&#xff0c;不同目的决定系统功能特性。用于员工培训考核时&#xff0c;系统要与培训内容结合&#xff0c;能生成相应考题&#xff0c;检验员工知识掌握程度&#xff0c;具备…...

【动手学深度学习】现代卷积神经网络:ALexNet

【动手学深度学习】现代卷积神经网络&#xff1a;ALexNet 1&#xff0c;ALexNet简介2&#xff0c;AlexNet和LeNet的对比3&#xff0c; AlexNet模型详细设计4&#xff0c;AlexNet采用ReLU激活函数4.1&#xff0c;ReLU激活函数4.2&#xff0c;sigmoid激活函数4.3&#xff0c;为什…...

Linux自启动脚本 systemctl

1.编写好脚本 #!/bin/bash /home/china/Linux/code/a.out2. 创建 Systemd 服务文件 sudo gedit /etc/systemd/system/my_script.service3.编写服务配置 将以下内容写入文件&#xff08;根据需求修改字段&#xff09;&#xff1a; [Unit] DescriptionMy Custom Shell Script…...

2024年KBS SCI1区TOP:信息增益比子特征分组赋能粒子群算法ISPSO,深度解析+性能实测

目录 1.摘要2.信息度量3.改进策略4.结果展示5.参考文献6.代码获取 1.摘要 特征选择是机器学习中的关键预处理步骤&#xff0c;广泛应用于实际问题。尽管粒子群算法&#xff08;PSO&#xff09;因其强大的全局搜索能力被广泛用于特征选择&#xff0c;但要开发一种高效的PSO方法…...

餐饮厨房开源监控安全系统的智能革命

面对日益严格的合规要求和消费者对卫生的信任危机&#xff0c;传统人工监督已力不从心&#xff1a;卫生死角难发现、违规操作难追溯、安全隐患防不胜防。如何让后厨更透明、更安全、更可信&#xff1f;餐饮厨房视频安全系统横空出世&#xff01;这套系统融合实时监控与AI技术&a…...

Ansys Electronics 变压器 ACT

你好&#xff0c; 在本博客中&#xff0c;我将讨论如何使用 Ansys 电子变压器 ACT 自动快速地设计电力电子电感器或变压器。我将逐步介绍设计和创建电力电子变压器示例的步骤&#xff0c;该变压器为同心组件&#xff0c;双绕组&#xff0c;采用正弦电压激励&#xff0c;并应用…...

Redis与Lua原子操作深度解析及案例分析

一、Redis原子操作概述 Redis作为高性能的键值存储系统&#xff0c;其原子性操作是保证数据一致性的核心机制。在Redis中&#xff0c;原子性指的是一个操作要么完全执行&#xff0c;要么完全不执行&#xff0c;不会出现部分执行的情况。 Redis原子性的实现原理 单线程模型&a…...

Shell 脚本开发从入门到实战

第1章&#xff1a;什么是 Shell 与 Shell 脚本&#xff1f; 一、Shell 是什么&#xff1f; Shell 是一个命令解释器&#xff0c;是你在 Linux 里敲命令的地方。你平时用的命令如 cd、ls、echo&#xff0c;其实都由 Shell 来解析执行。最常见的 Shell 是 Bash&#xff0c;绝大…...

宇视设备视频平台EasyCVR打造智慧酒店安防体系,筑牢安全防线

一、需求背景 酒店作为人员流动频繁的场所&#xff0c;对安全保障与隐私保护有着极高的要求。为切实维护酒店内部公共区域的安全秩序&#xff0c;24小时不间断视频监控成为必要举措。通常情况下&#xff0c;酒店需在本地部署视频监控系统以供查看&#xff0c;部分连锁酒店还希…...

深度解读分销小程序商城源码系统:从搭建到运营的关键指南​​​​

在移动互联网浪潮的席卷下&#xff0c;电商领域持续变革与创新。分销小程序商城凭借其独特优势&#xff0c;如依托社交平台流量、便捷的购物体验、高效的分销推广模式等&#xff0c;成为众多企业和创业者开展线上业务的热门选择。深入了解分销小程序商城源码系统&#xff0c;从…...

BeeWorks:打造安全可控的企业内网即时通讯平台

在数字化办公时代&#xff0c;企业对即时通讯工具的需求日益增长&#xff0c;尤其是对数据安全和隐私保护有严格要求的行业&#xff0c;如金融、政府、医疗等。BeeWorks 作为一款专注于内网部署的即时通讯软件&#xff0c;凭借其卓越的安全性、稳定性、丰富的功能以及全面的信创…...

微信小程序开发:废品回收小程序-功能清单

用户端&#xff1a;便捷体验&#xff0c;触手可及 废品百科与估价指南&#xff1a;平台以直观的方式展示各类废品的分类标准与实时市场价格&#xff0c;让用户轻松掌握废品价值&#xff0c;决策更从容。 一键预约&#xff0c;轻松回收&#xff1a;用户只需轻触屏幕&#xff0c…...

【Grok 大模型深度解析】第一期:技术溯源与核心突破

一、Grok的技术基因:从Transformer到混合架构的演进 1.1 Transformer架构的局限性 2017年Google提出的Transformer架构彻底改变了自然语言处理领域,其自注意力机制(Self-Attention)在长序列建模上表现优异。然而,随着模型规模的增大,传统Transformer暴露出以下问题: 计…...

性能比拼: Redis vs Memcached

本内容是对知名性能评测博主 Anton Putra Redis vs Memcached Performance Benchmark 内容的翻译与整理, 有适当删减, 相关指标和结论以原作为准 在本视频中&#xff0c;我们将对比 Redis 和 Memcached。我会介绍一些功能上的不同&#xff0c;但主要关注 性能。 首先&#xf…...

Mujoco xml actuator

actuator general&#xff08;通用执行器&#xff09;motor&#xff08;电机执行器&#xff09;position&#xff08;位置伺服&#xff09;velocity&#xff08;速度伺服&#xff09;intvelocity&#xff08;积分速度伺服&#xff09;damper&#xff08;主动阻尼器&#xff09;…...

Mybatis Plus分页查询返回total为0问题

概述 最近开发公司新项目&#xff0c;使用 Mybatis Plus 分页&#xff0c;发现总数和总页数为0&#xff0c;在此记录问题和解决方案。 添加 MybatisPlusConfig /*** author: lanys* version: 1.0* 创建时间&#xff1a;2025年4月9日 14:24:40* Description: MybatisPlus分页…...

多卡分布式训练:torchrun --nproc_per_node=5

多卡分布式训练:torchrun --nproc_per_node=5 1. torchrun 实现规则 torchrun 是 PyTorch 提供的用于启动分布式训练作业的实用工具,它基于 torch.distributed 包,核心目标是简化多进程分布式训练的启动和管理。以下是其主要实现规则: 进程启动 多进程创建:torchrun 会…...

网络层-IP地址计算

例1&#xff1a;IP地址二进制与十进制互转 题目&#xff1a; 将二进制IP 11000000.10101000.00000001.00001010 转换为点分十进制。将IP地址 172.16.254.1 转换为二进制格式。 答案与解析&#xff1a; 转换步骤&#xff1a; 每个8位二进制转为十进制&#xff1a; 11000000 →…...

BeagleBone Black笔记

目录 参考资料开机led控制GPIO输入输出插网线联网安装gcc编译工具镜像备份验证备份完整性将内存卡插入目标BBBboot启动开关 参考资料 链接: BeagleBone Black使用&#xff08;一&#xff09;&#xff1a;狗板简介 链接: 使用Beaglebone Black的IO口 开机 直接用usb连接到电脑…...

【25软考网工笔记】第一章 计算机网络概述

目录 一、计算机网络发展与分类 1. 计算机网络形成和发展 1&#xff09;ICT 2&#xff09;计算机网络的发展 3&#xff09;我国互联网发展 2. 计算机网络分类 1&#xff09;通信子网和资源子网 2&#xff09;PAN、LAN、MAN、WAN 3&#xff09;其他分类方式 3. 计算机…...

Soybean Admin 配置vite兼容低版本浏览器、安卓电视浏览器(飞视浏览器)

环境 window10 pnpm 8.15.4 node 8.15.4 vite 5.1.4 soybean admin: 1.0.0 native-ui: 2.38.0 小米电视 MIUI TV版本&#xff1a;MiTV OS 2.7.1886(稳定版) 飞视浏览器&#xff1a;https://www.fenxm.com/1220.html在小米电视安装飞视浏览器可以去小红书查安装教程&#xff1a…...

MicroPython 开发ESP32应用教程 之 I2S、INMP441音频录制、MAX98357A音频播放、SD卡读写

本课程我们讲解Micropython for ESP32 的i2s及其应用&#xff0c;比如INMP441音频录制、MAX98357A音频播放等&#xff0c;还有SD卡的读写。 一、硬件准备 1、支持micropython的ESP32S3开发板 2、INMP441数字全向麦克风模块 3、MAX98357A音频播放模块 4、SD卡模块 5、面包板及…...

从零到一:基于DeepSeek-R1的智能贪吃蛇开发实战

《基于DeepSeek-R1的AI驱动高性能贪吃蛇游戏开发全流程解析》 一、技术选型与环境搭建 开发工具链 • 编辑器:VSCode/Sublime(支持代码生成插件) • 运行环境:Node.js v16+(用于API调用及后端服务) • 图形库:HTML5 Canvas(网页端)或OLED驱动(单片机场景) • AI引擎…...

数据结构与算法-动态规划-区间dp,状态机dp,树形dp

3-区间 DP 介绍 通常用 (dp[i][j]) 表示区间 ([i, j]) 上的某种最优值&#xff0c;比如 (dp[i][j]) 可以表示从下标 (i) 到 (j) 的元素进行某种操作所得到的最大收益、最小花费等。 状态转移方程&#xff1a;这是区间 DP 的关键。它描述了如何从较小的区间的最优解得到较大区…...

文件内容课堂总结

Spark-Core编程 Key-Value类型&#xff1a; partitionBy函数根据指定Partitioner重新进行分区&#xff0c;默认使用HashPartitioner groupByKey函数根据key对value进行分组&#xff0c;有三种函数签名 reduceByKey函数将数据按相同Key对Value进行聚合&#xff0c;与groupByKey相…...

【树莓派Pico FreeRTOS】-任务通知

任务通知 文章目录 任务通知1、硬件准备2、软件准备3、FreeRTOS的任务通知介绍4、任务通知数据传输实例RP2040 由 Raspberry Pi 设计,具有双核 Arm Cortex-M0+ 处理器和 264KB 内部 RAM,并支持高达 16MB 的片外闪存。 广泛的灵活 I/O 选项包括 I2C、SPI 和独特的可编程 I/O (…...

c++11新内容补充

1.列表初始化 1.1传统{ }初始化 c98的{ }初始化主要是用于数组&#xff0c;以及结构体 1.2c11{ }初始化 1.让内置类型和自定义类型都可以用{ }实现多个数据初始化&#xff0c;而自定义类型的实现原理是类型转换&#xff08;没优化的版本是先构造临时对象&#xff0c;然后拷贝构…...

动态规划基础

动态规划 动态规划概论楼梯最短路最长上升子序列&#xff08;LIS)最长公共子序列&#xff08;LCS)最长回文子串 概率动态规划区间动态规划石子合并括号序列石子合并&#xff08;环形&#xff09; 树形动态规划统计人数没有上司的舞会 背包01背包完全背包多重背包分组背包 动态规…...

导入 Excel 批量替换文件名称及扩展名

重命名的需求是多种多样的&#xff0c;我们一个方法或一个工具很难说完全满足 100% 的文件重命名的需求。如果我们的文件重命名的需求非常的复杂的时候&#xff0c;我们能否有一个万全的方法来帮我们实现呢&#xff1f;那今天就给大家介绍一下导入 excel 的方式批量修改文件名称…...

降低AIGC检测率的AI润色提示词模板

以下是针对降低AIGC检测率的 AI润色提示词模板&#xff0c;涵盖语言风格优化、逻辑重构、学术规范强化等维度&#xff0c;结合反检测策略设计&#xff0c;可直接用于DeepSeek等工具&#xff1a; 一、标题与摘要优化 1. 标题去AI化 提示词&#xff1a; 请将以下标题改写成更学…...

系统思考—提升解决动态性复杂问题能力

感谢合作伙伴的信任推荐&#xff01; 客户今年的人才发展重点之一&#xff0c;是提升管理者应对动态性、复杂性问题的能力。 在深入交流后&#xff0c;系统思考作为关键能力模块&#xff0c;最终被纳入轮训项目——这不仅是一次培训合作&#xff0c;更是一场共同认知的跃迁&am…...

spring--整合Mybatis详解

整合Mybatis 步骤&#xff1a; 1.导入相关Maven依赖 junit mybatis mysql数据库连接 spring相关的 aop织入 mybatis-spring 2.编写配置文件 3.测试 回忆mybatis 还需连接数据库 导入依赖&#xff1a; <dependencies><dependency><groupId>juni…...

深入理解 HTML5 Audio:网页音频播放的新时代

在网页开发领域,音频的嵌入和播放一直是一个重要且不断演进的话题。HTML5 的出现,为网页音频播放带来了标准化的解决方案,极大地改善了开发者和用户的体验。 一、HTML5 之前的音频播放状况 在 HTML5 诞生之前,互联网上缺乏统一的网页音频播放标准。当时,大多数音频播放依…...

Cloudflare 缓存工作原理

Cloudflare 缓存是 Cloudflare 内容分发网络&#xff08;CDN&#xff09;的一个关键组成部分&#xff0c;通过在靠近用户的全球网络边缘服务器上存储和交付内容&#xff0c;显著提升网站性能。以下是关于 Cloudflare 缓存的相关内容&#xff1a; 工作原理 内容请求&#xff1a…...

【Unity3D中UI与物体可见性的判断方法】

系列文章目录 unity知识点 文章目录 系列文章目录&#x1f449;前言&#x1f449;一、判断UI的可见性1-1、第一种1-2、通过RectTransform计算可视区域1-3、滚动容器内可见性检测&#xff08;Scroll View&#xff09; &#x1f449;二、判断物体的可见性2-1、视锥体检测方法2-2…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(1):承上启下,继续上路

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(1):承上启下,继续上路 1、前言(1)情况说明(2)工程师的信仰2、知识点(1)普通形(ふつうけい)と思います(2)辞書形ことができます(3)Vたことがあります。(4)Vた とき & Vる とき3、单词(1)日语单词(2…...

ubuntu24.04 cmake 报错 libldap-2.5.so.0 解决办法

apt cmake有毛病 换源重新安装 wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | sudo apt-key add - sudo apt-add-repository "deb https://apt.kitware.com/ubuntu/ $(lsb_release -cs) main" sudo apt update sudo apt in…...

Mac 关闭浏览器左右滑动切换页面的问题

在使用触控板&#xff0c;操作浏览器时&#xff0c;左右滑动时&#xff0c;浏览器容易触发前进或者后退去查看历史记录。 如何关闭呢&#xff1f; 打开Mac- 系统设置-触控板 -更多手势 将轻扫切换页面设置为关&#xff0c;就可以了...

在 openEuler 24.03 (LTS) 操作系统上添加 ollama 作为系统服务的步骤

以下是在 openEuler 操作系统上添加 ollama 作为系统服务的步骤&#xff1a; 创建 systemd 服务文件 sudo vi /etc/systemd/system/ollama.service将以下内容写入服务文件&#xff08;按需修改参数&#xff09;&#xff1a; [Unit] DescriptionOllama Service Afternetwork.…...

华为昇腾服务器上查看固件、驱动和CANN版本的常用方法

Hey小伙伴们~&#x1f44b; 今天来聊聊怎么在华为昇腾服务器上查看固件、驱动和CANN版本吧&#xff01;&#x1f4bb; 这些信息对于确保你的服务器运行顺畅可是超级重要的哦&#xff01;下面就来给大家介绍几种常用的查看方法&#xff01;&#x1f447; &#x1f31f; ‌1. 查…...

击球手怎么玩·棒球1号位

以棒球运动为例&#xff0c;在棒球运动中&#xff0c;击球手&#xff08;Batter&#xff09;是进攻方的核心角色&#xff0c;负责通过击球创造得分机会。以下是结合棒球运动的详细介绍和击球技巧指南&#xff1a; 一、棒球基础规则 比赛目标 击球手需将投手&#xff08;Pitch…...

java基础多态------面试八股文

是什么是多态 类引用指向子类对象&#xff0c;并调用子类重写的方法&#xff0c;实现不同的行为 例子 class Animal {void sound() {System.out.println("动物发出声音");} }class Dog extends Animal {Overridevoid sound() {System.out.println("狗叫&…...

Python中的字典

文章目录 一、Python中的字典1. 字典的特点2. 字典的创建3. 字典的常见操作1. **访问字典中的值**2. **修改字典中的值**3. **添加键值对**4. **删除键值对**5. **检查键是否存在**6. **获取字典的长度**7. **遍历字典** 4. 字典的方法5. 嵌套字典6. 字典的优点7. 示例总结 二、…...

C++对象生命周期管理:从构造到析构的完整指南

在C开发中&#xff0c;准确掌握对象的生命周期管理是避免内存泄漏和资源竞争的关键。本文通过完整代码示例和内存布局分析&#xff0c;深入解析构造/析构顺序、继承体系、智能指针等核心机制&#xff0c;并分享实用调试技巧。 一、成员变量构造顺序&#xff1a;声明即命运 cl…...

代码随想录第14天:(二叉树)

一、找树左下角的值&#xff08;Leetcode 513&#xff09; 递归法&#xff1a; class Solution:def findBottomLeftValue(self, root: TreeNode) -> int:# 初始化最大深度为 -1&#xff0c;表示当前尚未遍历任何节点# 初始化 result 为 None&#xff0c;最终将存储最左边的…...

TCP/UDP的连接和数据发送过程详解

TCP TCP三次握手 在服务端启动好后会调用 listen() 方法&#xff0c;进入到 LISTEN 状态&#xff0c;然后静静等待客户端的连接请求到来。 而此时客户端主动调用 connect(IP地址) &#xff0c;就会向某个IP地址发起第一次握手&#xff0c;会先建立个半连接&#xff0c;发送SYN…...