系统架构设计师:系统架构概述知识体系、考点详解、高效记忆要点、练习题并提供答案与解析
一、系统架构概述知识体系、考点详解
系统架构概述、定义与作用
1. 系统架构的定义与核心要素
系统架构是复杂系统的高层次组织结构,包含硬件/软件组件、交互关系、设计原则及演进策略。其核心要素包括:
- 构件与模式:现代架构三要素为构件(模块/组件)、模式(设计模式/架构风格)、规划(演进路径)。
- 抽象层次:分为概念层(逻辑结构)和物理层(部署结构),如NASA火星车的架构需适应极端环境。
- 功能与非功能性:涵盖功能结构、代码结构、过程结构、数据结构、部署结构,同时需满足可靠性、安全性等非功能需求。
2. 系统架构的作用
- 指导开发:提供清晰的路线图,促进团队协作与一致性,如微服务架构通过服务拆分实现独立开发。
- 复杂度管理:通过分层(表现层/逻辑层/收集层/基础设施层)和模块化设计降低耦合。
- 性能与扩展性:优化数据处理流程(如事件驱动架构的异步通信)和资源分配(如分布式架构的负载均衡)。
- 风险控制:通过架构评估(如ATAM方法)识别安全漏洞和可靠性风险。
架构设计的目标与原则
1. 核心目标
- 解决系统复杂度:包括高性能(如缓存优化)、高可用(如冗余设计)、可扩展性(如模块化)。
- 平衡需求冲突:例如在电商系统中权衡响应速度与数据一致性。
- 成本控制:最小化人力与运维成本,避免过度设计。
2. 关键原则
- SOLID原则:单一职责(模块功能聚焦)、开闭原则(扩展而非修改)等。
- 分层与解耦:如MVC模式分离业务逻辑与界面,六边形架构隔离核心业务与外部适配器。
- 技术选型策略:根据业务场景选择架构风格(如单体架构适合小型应用,微服务适合复杂系统)。
系统架构师的角色与能力要求
1. 核心职责
- 架构设计与决策:选择架构风格(如SOA或事件驱动)、定义子系统划分。
- 非功能需求管理:确保系统满足性能、安全、可靠性,如设计容灾方案。
- 跨团队协作:与项目经理、开发团队沟通,制定技术规范。
2. 能力要求
- 技术深度与广度:精通主流技术栈(如Java/Spring)、熟悉设计模式、掌握云原生技术。
- 业务理解:将业务需求转化为技术方案(如金融系统的合规性设计)。
- 软技能:决策能力(如技术风险评估)、沟通能力(协调多方干系人)。
软考高级系统架构设计师考试重点
1. 考试大纲核心内容
- 综合知识:计算机系统基础、软件工程、架构设计方法(占40%)。
- 案例分析:架构评估(如质量属性权衡)、分布式系统设计(如CAP理论应用)(占35%)。
- 论文写作:需结合实例论述架构设计方法(如微服务落地难点)(占25%)。
2. 高频考点与备考策略
- 架构模式:重点掌握分层、微服务、事件驱动。
- 非功能需求:可靠性(如容错设计)、安全性(如加密算法选择)。
- 案例分析技巧:使用UML建模(如部署图)和架构评估方法(如SAAM)。
考试内容权重分配建议
主题 | 权重 | 依据与备考建议 |
---|---|---|
系统架构概述与定义 | 20% | 基础概念、软考综合知识高频考点。 |
架构设计目标与原则 | 25% | 解决复杂度和设计原则、案例分析核心。 |
架构师角色与能力 | 25% | 职责与技能、论文和案例分析结合实际经验。 |
软考考点与应试技巧 | 30% | 综合大纲要求、重视案例分析和论文写作。 |
二、系统架构概述核心内容的高效记忆要点
按结构化分类整理,重点用符号(★)标注高频考点:
一、系统架构定义与作用
-
定义
- 系统架构 = 高层次结构(组件+关系+原则+演进)
- 三要素:构件(模块/组件)、模式(设计风格)、规划(演进路径)
- 抽象层级:概念层(逻辑) vs 物理层(部署)
-
核心作用
- 指导开发(如微服务拆分)
- 管理复杂度(分层设计:表现层/逻辑层/基础设施层)
- 提升性能与扩展性(事件驱动架构异步通信)
- 风险控制(ATAM方法评估安全漏洞)
二、架构设计目标与原则(★高频考点)
-
核心目标
- 解决复杂度:性能(缓存)、可用性(冗余)、扩展性(模块化)
- 平衡需求冲突(电商系统:响应速度 vs 数据一致性)
- 成本控制:避免过度设计
-
关键原则
- SOLID原则(重点记前3项):
- S单一职责(模块功能聚焦)
- O开闭原则(扩展而非修改)
- L里氏替换(子类不破坏父类逻辑)
- 分层解耦(如MVC分离业务与界面)
- 技术选型:单体(小型应用) vs 微服务(复杂系统)
三、架构师角色与能力(★论文重点)
-
核心职责
- 架构决策(选型:SOA/事件驱动)
- 非功能需求管理(设计容灾方案)
- 跨团队协作(制定技术规范)
-
能力要求
- 技术深度:主流技术栈(Java/Spring)、设计模式
- 业务理解(如金融系统合规性设计)
- 软技能:风险评估、沟通协调
四、软考高频考点与备考策略
-
考试重点
- 综合知识:架构设计方法、软件工程
- 案例分析:质量属性权衡(如CAP理论)、UML建模(部署图)
- 论文写作:结合实例(如微服务落地难点)
-
高频考点(★必背)
- 架构模式:分层、微服务、事件驱动
- 非功能需求:可靠性(容错)、安全性(加密算法)
- 案例技巧:架构评估方法(SAAM/ATAM)
五、助记口诀
- 架构三问:是什么(定义)→ 为什么(作用)→ 怎么做(原则)
- SOLID原则:S单、O开、L里氏(重点记首字母)
- 软考三板斧:知识背、案例练、论文写
备考建议:优先掌握标★内容,结合历年真题强化案例分析,论文准备时积累真实项目经验(如高并发/容灾设计)。
三、系统架构概述知识体系综合知识单选题
覆盖核心知识点与高频考点,重点突出架构定义、设计原则、模式应用及质量属性分析
一、系统架构基础概念
-
系统架构的核心要素不包括以下哪一项?
A. 构件(Component)
B. 模式(Pattern)
C. 规划(Plan)
D. 过程(Process)
答案:D
解析:系统架构三要素为构件、模式、规划。过程属于开发方法论,非架构核心要素。 -
关于系统架构的抽象层次,以下描述正确的是?
A. 概念层描述系统的物理部署结构
B. 物理层描述系统的逻辑组件关系
C. 概念层关注逻辑结构,物理层关注部署结构
D. 两者均用于描述非功能性需求
答案:C
解析:概念层定义逻辑结构(如组件交互),物理层定义部署结构(如服务器配置)。 -
以下哪项属于系统架构的非功能性需求?
A. 用户登录功能
B. 系统响应时间不超过2秒
C. 订单管理模块设计
D. 数据库表结构定义
答案:B
解析:非功能性需求包括性能、可靠性等,功能性需求如用户登录属于功能模块。 -
“通过分层设计降低系统复杂度”体现了架构的哪种作用?
A. 指导开发
B. 管理复杂度
C. 提升性能
D. 控制成本
答案:B
解析:分层设计通过解耦简化系统复杂性。 -
架构设计中“规划(Plan)”要素主要指?
A. 系统模块划分
B. 技术选型策略
C. 系统演进路径
D. 开发进度安排
答案:C
解析:规划指长期演进策略,如从单体到微服务的过渡计划。
二、架构设计原则与模式
-
SOLID原则中的“开闭原则”要求系统设计:
A. 模块功能单一且独立
B. 通过扩展而非修改实现新功能
C. 子类可替代父类且不破坏逻辑
D. 高层模块不依赖低层模块
答案:B
解析:开闭原则强调扩展开放、修改关闭。 -
某电商系统需支持高并发交易,架构设计中采用缓存机制提升性能。这主要解决了哪种复杂度?
A. 功能需求冲突
B. 性能瓶颈
C. 可维护性不足
D. 安全性风险
答案:B
解析:缓存优化直接应对性能问题。 -
以下哪种架构风格适合数据处理流水线场景?
A. 分层架构
B. 微服务架构
C. 管道-过滤器架构
D. 事件驱动架构
答案:C
解析:管道-过滤器通过独立组件处理数据流,适合流水线场景。 -
微服务架构的典型特征不包括:
A. 服务按业务能力拆分
B. 强依赖集中式数据库
C. 独立部署与扩展
D. 轻量级通信机制(如REST)
答案:B
解析:微服务提倡去中心化数据管理,常采用独立数据库或最终一致性方案。 -
六边形架构(Hexagonal Architecture)的核心思想是?
A. 将系统分为表现层、业务层和数据层
B. 通过适配器隔离核心业务与外部依赖
C. 使用消息队列实现异步通信
D. 基于事件驱动处理业务流程
答案:B
解析:六边形架构通过适配器解耦核心逻辑与外部系统。
三、架构师角色与能力
-
系统架构师在非功能需求管理中的核心职责是?
A. 编写详细模块代码
B. 设计容灾方案以确保可靠性
C. 直接管理开发团队进度
D. 制定用户操作手册
答案:B
解析:架构师需确保系统满足可靠性、安全性等非功能需求。 -
以下哪项是架构师技术选型的关键依据?
A. 最新技术趋势的流行度
B. 业务场景与系统复杂度
C. 开发团队的个人偏好
D. 硬件采购成本
答案:B
解析:技术选型需优先匹配业务需求(如单体架构适用于小型系统)。 -
架构师在跨团队协作中的主要任务是?
A. 编写测试用例
B. 制定统一的技术规范
C. 设计用户界面原型
D. 管理项目预算
答案:B
解析:架构师需协调多方技术决策,确保规范一致性。 -
以下哪项能力是架构师最核心的软技能?
A. 编程语言精通
B. 风险评估与决策能力
C. 数据库优化技巧
D. 硬件调试能力
答案:B
解析:架构师需权衡技术方案的风险与收益。 -
架构师在设计金融系统时,需重点考虑的非功能需求是?
A. 界面美观性
B. 高并发处理能力
C. 数据加密与合规性
D. 开发成本控制
答案:C
解析:金融系统需满足严格的安全与合规要求。
四、质量属性与评估方法
-
使用ATAM(架构权衡分析方法)的主要目的是?
A. 验证代码是否符合规范
B. 评估架构对质量属性(如性能、安全)的支持程度
C. 优化用户界面交互流程
D. 计算项目开发成本
答案:B
解析:ATAM用于识别架构设计中的风险点与权衡点。 -
某系统要求99.99%可用性,以下哪种设计最符合需求?
A. 单服务器部署
B. 主从热备架构
C. 分布式集群架构
D. 异步批处理机制
答案:C
解析:分布式集群通过冗余实现高可用性。 -
CAP理论中,分布式系统无法同时满足的是?
A. 一致性(Consistency)与可用性(Availability)
B. 分区容错性(Partition Tolerance)与一致性
C. 可用性与分区容错性
D. 以上均不可能同时满足
答案:A
解析:CAP理论指出一致性、可用性、分区容错性三者不可兼得。 -
以下哪项是提高系统安全性的架构设计策略?
A. 使用缓存减少数据库查询
B. 通过负载均衡分散请求压力
C. 实施角色权限控制与数据加密
D. 采用微服务拆分模块
答案:C
解析:权限控制与加密直接提升安全性。 -
某视频平台需支持百万级用户实时弹幕,架构设计应优先考虑?
A. 强数据一致性
B. 高吞吐量与低延迟
C. 严格的事务隔离
D. 复杂查询优化
答案:B
解析:实时弹幕场景要求高并发处理能力与低延迟。
五、综合应用题
-
某物流系统需支持订单状态实时追踪,且需适应未来业务扩展。最优架构风格是?
A. 单体架构
B. 事件驱动架构
C. 管道-过滤器架构
D. 仓库风格架构
答案:B
解析:事件驱动适合实时数据处理与扩展性需求。 -
在电商大促期间,系统出现数据库连接池耗尽问题。架构师应优先优化?
A. 增加数据库服务器数量
B. 引入缓存减少数据库访问
C. 优化SQL查询语句
D. 使用异步消息队列
答案:B
解析:缓存机制直接缓解数据库压力。 -
某政府系统需满足等保三级要求,架构设计中必须包含?
A. 自动化测试框架
B. 双因素认证与日志审计
C. 高并发负载均衡
D. 微服务拆分策略
答案:B
解析:等保三级要求严格的身份认证与审计功能。 -
使用SAAM(软件架构分析方法)时,重点评估的是?
A. 开发成本与进度
B. 架构对场景的适应性
C. 用户界面易用性
D. 代码可读性
答案:B
解析:SAAM通过场景分析评估架构的可修改性与扩展性。 -
某物联网平台需处理海量设备数据,架构设计应优先考虑?
A. 强事务一致性
B. 高吞吐量与横向扩展能力
C. 低硬件成本
D. 快速迭代开发
答案:B
解析:物联网场景需处理高并发数据流,扩展性至关重要。
答案解析与备考建议
-
考点分布:
- 基础概念(20%)
- 设计原则与模式(30%)
- 架构师能力(20%)
- 质量属性与评估(20%)
- 综合应用(10%)
-
真题规律:
- 综合知识题多结合实际场景描述(如电商、物联网),需快速关联理论概念。
- 干扰项常通过偷换术语(如“过程”替代“规划”)或片面描述(如仅强调扩展性忽略成本)设置陷阱。
-
答题技巧:
- 关键词定位:题干中的“核心要素”“主要优势”“不包括”等提示词需重点圈出。
- 排除法优先:先排除明显错误选项(如D选项在架构定义题中与三要素无关)。
- 关联历年真题:参考的解析熟悉高频考点与命题风格。
相关文章:
系统架构设计师:系统架构概述知识体系、考点详解、高效记忆要点、练习题并提供答案与解析
一、系统架构概述知识体系、考点详解 系统架构概述、定义与作用 1. 系统架构的定义与核心要素 系统架构是复杂系统的高层次组织结构,包含硬件/软件组件、交互关系、设计原则及演进策略。其核心要素包括: 构件与模式:现代架构三要素为构件…...
汽配快车道解决chrome backgroud.js(Service Worker) XMLHttpRequest is not defined问题
Chrome 扩展开发:Service Worker 中如何优雅地发送 HTTP 请求 在 Chrome 扩展开发中,Service Worker 是一个非常重要的部分,它可以帮助我们实现很多强大的功能。然而,如果你在 Service Worker 中尝试使用 XMLHttpRequest 来发送 …...
VMware Ubuntu挂载Windows机器的共享文件
https://www.dong-blog.fun/post/2029 在VMware Ubuntu中访问Windows共享文件夹:完整指南 在使用VMware运行Ubuntu虚拟机时,访问Windows主机上的文件是常见需求。本文将详细介绍如何通过网络共享方式,让Ubuntu虚拟机直接访问Windows主机的文…...
LeNet神经网络
一、LeNet概述 1. 历史地位 开创性模型:首个成功应用的卷积神经网络(1998年)应用场景:手写数字识别(MNIST数据集)、银行支票识别提出者:Yann LeCun团队(论文《Gradient-Based Lear…...
Visio绘图工具全面科普:解锁专业图表绘制新境界[特殊字符]
Visio绘图工具全面科普:解锁专业图表绘制新境界🌟 在信息爆炸的时代,清晰、直观地呈现复杂信息变得至关重要。无论是绘制流程图📊、组织结构图👥,还是规划网络拓扑🖧,一款强大的绘图…...
ECharts散点图-散点图3,附视频讲解与代码下载
引言: ECharts散点图是一种常见的数据可视化图表类型,它通过在二维坐标系或其它坐标系中绘制散乱的点来展示数据之间的关系。本文将详细介绍如何使用ECharts库实现一个散点图,包括图表效果预览、视频讲解及代码下载,让你轻松掌握…...
D3路网图技术文档
在本文档中,我们将探讨如何使用 D3.js,结合 SVG(可缩放矢量图形)和 Canvas,来实现高效、交互性强的路网图效果。D3.js 是一个强大的 JavaScript 数据可视化库,可以基于数据驱动文档对象模型(DOM…...
Unity 一些小功能(屏幕画画,)
利用 Line Renderer 实现屏幕画画并保存图片 // 当前正在绘制的 LineRendererprivate LineRenderer currentLineRenderer;// 用于保存所有笔触的列表private List<LineRenderer> allLineRenderers new List<LineRenderer>();// 当前笔触顶点计数器private int ve…...
列表、字符串、heapq堆对列算法
1、列表 1.1 访问最后一个元素 list [1, 2, 3, 4, 5, 6] print(list[-1]) # 61.2 访问列表指定范围,例如第1-4个元素 print(list[0, 4]) # [1, 2, 3, 4]1.3 将字符列表以字符串形式输出 list [h, e, l, l, o] ls "".join(list) print(ls) # "…...
实战指南:封装Whisper为FastAPI接口并实现高并发处理
下面给出一个详细的示例,说明如何使用 FastAPI 封装 OpenAI 的 Whisper 模型,提供一个对外的 REST API 接口,并支持一定的并发请求。 下面是主要步骤和示例代码。 1. 环境准备 Python 环境: 建议使用 Python 3.8。依赖库&#x…...
Arm系统ubuntu20.04中自带的火狐浏览器打开网页B站视频和百度网盘网页视频,视频无法打开,并且没有声音——(本质上解决)
自己工作过程中有一台Orin nx arm设备,所以希望能够用这台设备看视频学习,发现自带的firefox打开网页版百度网盘和B站的时候无法打开视频,而且用有线耳机发现没有声音,最后换掉浏览器,用Chromium。 1、如果还想继续用…...
Qt 自定义控件
在 Qt 中,自定义控件是通过继承现有的 Qt 控件类(如 QWidget、QPushButton、QLabel 等)并重载相关的事件处理函数或绘制函数来实现的。自定义控件允许你根据需求添加特定的功能或样式。 自定义控件的基本步骤 1. 继承 Qt 控件类:…...
Java使用WebSocket视频拆帧进度处理与拆帧图片推送,结合Apipost进行调试
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId></dependency>Configuration public class WebSocketConfig {/*** 启动 WebSocket 服务器*/Beanpublic ServerEndpointE…...
Java项目之基于ssm的QQ村旅游网站的设计(源码+文档)
项目简介 QQ村旅游网站实现了以下功能: 管理员权限操作的功能包括管理景点路线,板块信息,留言板信息,旅游景点信息,酒店信息,对景点留言,景点路线留言以及酒店留言信息等进行回复,…...
《 Reinforcement Learning for Education: Opportunities and Challenges》全文阅读
Reinforcement Learning for Education: Opportunities and Challenges 面向教育的强化学习:机遇与挑战 摘要 本综述文章源自作者在 Educational Data Mining (EDM) 2021 会议期间组织的 RL4ED 研讨会。我们组织了这一研讨会,作为一项社区建设工作的组…...
Apache Kafka UI :一款功能丰富且美观的 Kafka 开源管理平台!!
Apache Kafka UI 是一个免费的开源 Web UI,用于监控和管理 Apache Kafka 集群,可方便地查看 Kafka Brokers、Topics、消息、Consumer 等情况,支持多集群管理、性能监控、访问控制等功能。 1 特征 多集群管理: 在一个地方监控和管理…...
无参数RCE
无参数RCE(Remote Code Execution,远程代码执行) 是一种通过利用目标系统中的漏洞,在不直接传递用户可控参数的情况下,实现远程执行任意代码的攻击技术。与传统的RCE攻击不同,无参数RCE不依赖外部输入参数…...
设计模式之状态模式:优雅管理对象行为变化
引言 状态模式(State Pattern)是一种行为型设计模式,它允许对象在其内部状态改变时改变它的行为,使对象看起来似乎修改了它的类。状态模式将状态转移逻辑和状态相关行为封装在独立的状态类中,完美解决了复杂条件判断问…...
拖动滑块 代替验证码,识别机器人的方式,实验原理
拖动滑块验证是一种常见的人机验证技术,用于区分真实用户和自动化程序(如机器人)。其核心原理不仅在于用户是否能将滑块移动到正确位置,还包括对拖动行为的轨迹、速度、加速度等特征的分析。以下是其实现原理及识别机器人的方式&a…...
深度访谈:数据中台的本质不是技术堆砌,而是业务引擎的重构
在数字化转型进入深水区的今天,企业逐渐意识到单纯的技术堆砌无法解决业务核心痛点。数据的割裂、重复建设的烟囱式系统、滞后于业务的分析能力,正迫使企业寻找“系统性解法”。 “未来的竞争,本质是数据响应速度的竞争。当竞争对手还在讨论‘…...
Spark中Maven的用法
在IDEA中去创建项目,并编写java代码来操作集群中的文件 1.IDEA 中创建 Maven 项目 步骤一:点击 File -> New -> Project,在弹出的窗口左侧选择 Maven,点击 Next: 步骤二:填写项目的 GroupId、Arti…...
tomcat http 怎么改成 https
步骤 1:生成自签名证书 如果你没有可用的 SSL/TLS 证书,可以使用 Java 的 keytool 工具生成一个自签名证书。 bash复制代码 keytool -genkeypair -alias tomcat -keyalg RSA -keystore keystore.jks -keysize 2048 执行此命令后,系统会提…...
Playwright与Selenium详细对比及Playwright快速入门
Playwright 与 Selenium 详细对比及入门指南索引 简介 本文章旨在帮助测试工程师了解Playwright和Selenium这两个主流的UI自动化测试工具,并快速入门Playwright。文档分为多个部分,本文作为主要索引,提供核心对比和基本概念,而详…...
03 UV
04 Display工具栏_哔哩哔哩_bilibili 讲的很棒 ctrlMMB 移动点 s 打针 ss 批量打针...
hadoop执行sqoop任务找不到jar
sqoop:1.4.7 hadoop:3.4.1 数据:oracel-hdfs 2025-04-15 16:57:00,850 INFO sqoop.Sqoop: Running Sqoop version: 1.4.7 2025-04-15 16:57:00,901 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead. 2025-04-15 …...
【C#】Html转Pdf,Spire和iTextSharp结合,.net framework 4.8
🌹欢迎来到《小5讲堂》🌹 🌹这是《C#》系列文章,每篇文章将以博主理解的角度展开讲解。🌹 🌹温馨提示:博主能力有限,理解水平有限,若有不对之处望指正!&#…...
Mac系统升级node.js版本和npm版本并安装pnpm
1.升级node.js版本 第一步:查询当前node.js版本 node -v第二步:清除node.js的缓存 sudo npm cache clean -f第三步:验证缓存是否清空 npm cache verify第四步:安装n工具,n工具是专门用于管理node.js版本的工具 su…...
记录分享《若依Spring Cloud本地开发部署教程》
若依Spring Cloud本地开发部署教程 若依(RuoYi)是一个基于Spring Boot和Spring Cloud的权限管理系统,提供了丰富的功能模块和开箱即用的解决方案。本文将详细介绍如何在本地环境中进行若依Spring Cloud的开发和部署。 一、环境准备 Java环境…...
(小白0基础) 微调deepseek-8b模型参数详解以及全流程——训练篇
本篇参考bilibili如何在本地微调DeepSeek-R1-8b模型_哔哩哔哩_bilibili 上篇:(小白0基础) 租用AutoDL服务器进行deepseek-8b模型微调全流程(Xshell,XFTP) —— 准备篇 初始变量 max_seq_length 2048 dtype None load_in_4bit True单批次最大处理模型大小dy…...
基于 PyGetWindow 获取窗口信息和控制窗口
PyGetWindow 是基于Python的一款简单、跨平台的模块,用来获取窗口信息和控制窗口。可以实现的功能有: 获取当前系统中所有打开窗口的列表。 根据窗口标题、窗口句柄等属性获取特定的窗口对象。 激活、最小化、最大化和关闭窗口。 获取和设置窗口的位置、…...
解锁动态规划的奥秘:从零到精通的创新思维解析(8)
前言: 小编在前几日讲述了关于动态规划的习题,下面小编继续跟着上次的步伐,继续进入多状态dp问题的讲解(但是今天这个题目不需要多状态),今天由于小编的精力有限,所以我就仅仅先讲述一个题目&am…...
使用RUN pip install flask和RUN pip install -r requirements.txt
在编写dockerfile文件的时候,有时候会遇上使用RUN pip install -r requirements.txt的情况,而且requirements.txt文件里面就一个包名,例如flask,那么不禁要问为什么不直接写成RUN pip install flask呢?其实不是不行&am…...
512天,倔强生长:一位技术创作者的独白
亲爱的读者与同行者: 我是倔强的石头_,今天是我在CSDN成为创作者的第512天。当系统提示我写下这篇纪念日文章时,我恍惚间想起了2023年11月19日的那个夜晚——指尖敲下《开端——》的标题,忐忑又坚定地按下了“发布”键。那时的我…...
【Java SE】Collections类详解
参考笔记:java Collections类 详解-CSDN博客 目录 一、Collections类简介 二、Collection类常用方法 1. 排序 ① static void reverse(List list) ② static void shuffle(List list) ③ static void sort(List list) ④ static void sort(List list, Comparator …...
Android LiveData学习总结(源码级理解)
LiveData 工作原理 数据持有与观察者管理:LiveData 内部维护着一个数据对象和一个观察者列表。当调用 observe 方法注册观察者时,会将 LifecycleOwner 和 Observer 包装成 LifecycleBoundObserver 对象并添加到观察者列表中。生命周期感知:L…...
RabbitMQ 为什么引入 Exchange 的概念, 交换机有什么作用.
RabbitMQ 引入 Exchange 的概念是为了实现消息的灵活路由和解耦生产者与消费者,这是 AMQP(Advanced Message Queuing Protocol)协议的核心设计之一。以下是 Exchange 存在的主要原因: 1. 解耦生产者与队列 问题:如果生…...
rabbitmq引入C++详细步骤
1. 安装RabbitMQ服务器 在Windows上:先安装Erlang,再安装RabbitMQ服务器。安装完成后,可通过访问http://localhost:15672来检查RabbitMQ服务器是否正常运行,默认的用户名和密码是guest/guest。 在Linux上:可使用包管理…...
Android 9.0系统源码定制:实现开机启动特定App的全面指南
在Android 9.0系统中,若需要通过修改系统源码实现开机启动特定应用(如系统预装应用或第三方应用),通常涉及对系统框架层(Framework)的深度定制开发。以下是详细的实现步骤和关键代码位置整理: 1…...
如何在不同版本的 Elasticsearch 之间以及集群之间迁移数据
作者:来自 Elastic Kofi Bartlett 当你想要升级一个 Elasticsearch 集群时,有时候创建一个新的独立集群并将数据从旧集群迁移到新集群会更容易一些。这让用户能够在不冒任何停机或数据丢失风险的情况下,在新集群上使用所有应用程序测试其所有…...
MySQL数据库精研之旅第六期:玩转数据库约束
目录 一、数据库约束的概念 二、约束类型 三、NOT NULL 非空约束 四、DEFAULT 默认值约束 五、UNIQUE 唯一约束 六、PRIMARY KEY 主键约束 七、FOREIGN KEY 外键约束 八、Check 约束 一、数据库约束的概念 数据库约束是指对数据库表中的数据所施加的规则或条件…...
【Java】面向对象程序三板斧——如何优雅设计包、封装数据与优化代码块?
🎁个人主页:User_芊芊君子 🎉欢迎大家点赞👍评论📝收藏⭐文章 🔍系列专栏:【Java】内容概括 【前言】 在Java编程中,类和对象是面向对象编程的核心概念。而包(Package&am…...
MCP、RAG与Agent:下一代智能系统的协同架构设计
一、智能系统架构的范式转移 1.1 传统架构的局限性 架构类型典型问题新架构需求单体架构扩展性差,维护成本高模块化解耦简单微服务缺乏智能决策能力认知能力嵌入纯LLM系统事实性错误,知识固化动态知识增强 1.2 三大核心组件的定位 #mermaid-svg-6tGuE…...
软件设计师2009-2022历年真题与答案解析(附pdf下载)
软考在即,现在给大家分享一下软件设计师2009-2022真题与答案解析 pdf全套,文末提供大家免费下载,大家都知道在软考备考过程中,拥有一套全面且实用的考试资料对于考生来说至关重要。目录如下: 历年真题及详解2004-2019 …...
前端 React 弹窗式 滑动验证码实现
目录 一、安装依赖 1、rc-slider-captcha 2、create-puzzle 二、个人封装好的组件拿去用 三、效果展示 一、安装依赖 这里需要引入两个依赖,若有后端图片接入,可以不引入第二个依赖 1、rc-slider-captcha 滑动验证码生成的库 国内网:…...
【触想智能】工业触摸一体机在金融智能设备领域上应用的优势
工业触摸一体机在金融智能设备领域上具有许多独特的优势。这些设备结合了工业级的强度和耐用性,以及先进的触控技术和高性能处理能力,为金融机构提供全面可靠的解决方案。下面将介绍工业触摸一体机在金融智能设备领域上的应用优势。 触想嵌入式工业触摸一…...
本地实现Rtsp视频流推送
简言:使用ffmpeg实现本地视频流推送 srs存储(延时推送) 准备工作 安装包: ffmpeg:http://ffmpeg.org/download.html EasyDarwin:EasyDarwin流媒体音视频资源汇总 srs安装教程地址:http://…...
人工智能中的卷积神经网络(CNN)综述
文章目录 前言 1. CNN的基本原理 1.1 卷积层 1.2 池化层 1.3 全连接层 2. CNN的发展历程 2.1 LeNet-5 2.2 AlexNet 2.3 VGGNet 2.4 ResNet 3. CNN的主要应用 3.1 图像分类 3.2 目标检测 3.3 语义分割 3.4 自然语言处理 4. 未来研究方向 4.1 模型压缩与加速 4.2 自监督学习 4.3 …...
Mac电脑交叉编译iphone设备可以运行的redsocks, openssl, libsevent
准备:intel x86_64芯片的mac电脑,系统为mac os15.3.1,iphone为6s的ios14.4(rootful越狱) 第一步:准备工具链(推荐使用 theos clang) 如果你已经安装过 Theos(或 NewTheos)&#x…...
入门51单片机(1)-----点灯大师梦开始的地方
前言 这一次的博客主要是要记录一下学习的记录的,方便以后去复习一下的,当然这篇博客还是针于零基础的伙伴萌,看完这篇博客,大家就可以学会点灯了。 安装软件 方法一下一下来教!!萌新宝贝萌可以学会的!帮…...
[1-01-09].第08节:基础语法 - 数组常见算法 + Arrays工具类 + 数组中常见异常
一、 数组的常见算法 1.1 数值型数组特征值统计 这里的特征值涉及到:平均值、最大值、最小值、总和等 **举例1:**数组统计:求总和、均值 public class TestArrayElementSum {public static void main(String[] args) {int[] arr {4,5,6,…...