在开头先说一下本专栏的计划:打算通过讲练结合的方式,简单介绍一下知识点,然后结合典例巩固强化
RISC(精简指令集)主要特点如下 :
①指令数量少
②指令的寻址方式少
③指令长度固定,指令格式种类少
④以硬布线逻辑控制为主
⑤优化的编译器
⑥CPU中的通用寄存器多
⑦单周期指令执行,采用流水线技术。除了需要访问内存的LOAD/STORE指令以外绝大多数指令都在单周期内完成
综上:说他指令种类多,指令功能强是错误的,他只是选取使用频率较高的一些指令,提高执行速度,目的就是越简单越好。
CPU基本组成部件:
①算术逻辑运算单元
②控制单元
③寄存器组
注意:系统总线位于CPU之外
计算机采用补码表现有符号数值,可以将减法运算简化为加法运算,从而简化运算器的设置。
反正记住:计算机为了提高运算效率,肯定是要删繁就简一身轻,这样才能集中精力去做重要的事情
DRAM存在一定的自放电,需要周期性进行刷新
浮点数表示法:
N=2^E * F
E是阶码,F是尾数
阶码越长,表示的范围越大;尾数越长,表示的精度 越高。
①口令认证安全性较低,但是他是基于用户知道的秘密而进行的认证技术,比如你家的门口密码锁。缺点:口令猜测、中间人攻击、窃听、重放。
使用漏洞扫描系统对信息系统和服务器进行定期扫描可以发现高危漏洞和安全漏洞。这就好比软件测试,他的目的就是发现错误,并不在于纠错。
优化模块结构的方法
①高内聚、低耦合(避免或减少模块之间的病态连接)
②深度和宽度合理(消除重复功能,改善软件结构)
③扇入扇出系数合理,模块规模适中
总之,原则很多,不能仅仅根据一个原则
单一责任原则
一个类或模块应该只有一个修改的理由。
判定表能清楚表示复杂的条件组合与应做的动作 之间的对应关系
继承:
父类和子类共享数据和方法。
多态
在收到消息时,对象要予以回应,不同的对象收到同一消息可能会产生不同的回应,这一现象称为多态
对象
将自然存在的名词作为对象
适配器设计模式
将一个类的接口转化成客户希望的另外一个接口。使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
风险管理
①承认风险是客观存在,不可能完全避免
②风险管理应该贯穿整个项目管理过程
③风险计划本身可能会带来新的风险
这就如同人生,挫折与挑战就是客观存在的,你应该做的不是绞尽脑汁如何一劳永逸,而是厚积薄发,为未来即将到来的风险做好准备,同时用辩证法看问题,福兮祸所伏,祸兮福所倚
三层C/S结构
功能层 | 有效隔离表示层和数据层,便于严格的安全管理 客户端层负责用户界面和用户输入输出。它可以是桌面应用程序、Web浏览器或移动应用程序。在这一层,用户可以通过操作界面与应用程序进行交互并访问应用程序的功能。 |
表示层 | 它包括应用程序的业务逻辑和处理数据的功能。在这一层,应用程序处理用户请求并返回所需的数据。 |
数据层 | 应用程序与数据源进行通信的层次。它由数据库和应用程序接口组成,可以与不同类型的数据源交互,如关系型数据库、非关系型数据库和文件系统等。 |
系统的各层独立部署,可以并行开发,也可以选择各自最合适的开发语言,达到较高的性价比。
生产高质量软件
①必须满足用户规定的需求
②软件应遵循规定标准所定义的一系列开发准则
③还应该满足一些隐形需求:可理解性、可维护性
白盒测试
语句覆盖 | 覆盖低,用足够多的数据执行测试语句 |
判定覆盖 | 分支覆盖,即取到所有分支 |
条件覆盖 | |
路径覆盖 | 强,走完所有路径 |
高质量文档
针对性 | |
无二义性 | |
易读性 | 简明扼要,易懂 |
完整性 | 自成体系不要过多相互依赖 |
灵活性 | 模块不可生搬硬套 |
可追溯性 | 某一需求可在开发的各个阶段文档中可以找到 |
单元测试主要检查
模块接口 |
局部数据结构(变量) |
重要的执行路径 |
出错处理 |
边界条件 |
数据维护
采用专用的数据模块对文件或数据中的记录进行增删改查
活动图
活动图主要用于描述系统中的动态行为,以流程图的形式表示活动的流程和控制流。
它展现了在系统内从一个活动到另一个活动的特殊状态,强调对象间的控制流程
责任链
是行为型对象模式,适用于以下条件:
①有多个对象可以处理同一请求
②想在不明确指定接收者的情况下,向多个对象一个一个提交请求
③可以处理一个请求的对象集合应该被动态指定
构件图:
展现了一组构件之间的组织和依赖,专注于系统的静态实现试图。
快速原型模型
快速原型模型适用于对系统功能和界面要求较高的场景,如Web应用程序、移动应用程序等。
快速迭代:该模型强调快速迭代和快速反馈,可以在较短时间内构建多次原型,从而不断改进系统功能和界面。
适应性强:快速原型模型能够适应用户需求的变化,因为该模型的目的就是为了快速构建原型、获取反馈和改进。
可重用性强:快速原型模型在构建原型时可以使用现有的组件和库,这些组件和库可以在以后的开发中重复使用,提高开发效率。
弱点突出:因为快速原型模型的重点在于构建原型,所以在该模型下存在着一定的风险,如代码质量问题、需求迭代次数过多等。
递归子程序分析属于自上而下的分析法
编译器:先翻译后执行,用户运行效率高但可移植性差 GCC、Clang、Visual C++
解释器:边翻译便执行,用户程序运行效率低但可移植性高Python、JavaScript、Ruby
需要注意的是,有些编程语言既可以通过编译器编译成机器代码,也可以通过解释器解释执行,例如Java和C#。
PV操作来控制进程同步和互斥时,应该在进程执行前执行P操作,执行后执行V操作。
可剥夺
当有更高优先级进程到来时,强制转让
2NF
不存在对主关键字的部分函数依赖
存在的问题是插入异常、删除异常、冗余异常
3NF
不存在非主属性对主关键字的传递函数依赖
数据库中的四类故障
1、事物内部故障
2、系统故障
3、介质故障
4、计算机病毒
折半查找算法采用分治算法设计策略
应用层(Application Layer) | 该层的主要任务是为用户提供各种应用程序和服务,如电子邮件、文件传输等。该层的重点是应用协议和数据交换格式等。 |
表示层(Presentation Layer) | 该层的主要任务是负责数据格式的转换,确保数据的可读性和兼容性。该层的重点是数据编码和解码、数据压缩和解压缩等。 |
会话层(Session Layer) | 该层的主要任务是负责建立、维护和关闭会话,实现用户之间的交互。该层的重点是会话管理、会话同步和会话恢复等。 |
传输层(Transport Layer) |
|
网络层(Network Layer) | 该层的主要任务是通过路由算法来选择最佳路径,保证数据在网络中的正确传输。该层的重点是路由选择、分组转发和拥塞控制。 |
数据链路层(Data Link Layer) | 该层的主要任务是将数据帧转换为比特流,并在传输过程中减少错误和重复数据。该层的重点是帧同步、流量控制和传输差错校验等。 |
物理层(Physical Layer) | 该层的主要任务是在物理媒介上传输比特流,即将数字数据转化为电信号或光信号,通过物理媒介传输。该层的重点是传输介质、编码和调制。 |
Telnet协议是一种基于TCP的远程登录协议,可以像使用本地主机一样使用远程主机的资源
HTTPS协议是HTTP协议的安全版,使用SSL\TLS加密传输,HTTPS使用TCP端口443.
DNS域名解析
IPV4地址长度32位,IPV6地址长度128位,MAC地址长度是48位。
IP地址提供网络层的寻址功能,工作在网络层
MAC地址提供了数据链路层的寻址,工作在数据链路层
MAC地址全球唯一,IP地址 如IPV4前三个网段可以复用
X.509推荐密码算法RSA,E过密SM2采用的算法是ECC
ECC优点:加密强度更高,计算速度更快。
入侵检测不能阻止恶意攻击,web防火墙可以
对于具有n个顶点的图G=(V,E),其邻接矩阵是一个n阶方阵,且是对称的。因此矩阵的大小为n^2
B树是一种多路平衡查找树,其中每个节点可以包含多个key和指针,并且每个节点中的key都按照顺序排列。B树具有以下性质:
下面是一个4阶B树的示意图:
7
/ \
2 4 6 9
/ | \
1 3 8 10 12
B+树是在B树基础上的一种特殊类型的查找树。B+树与B树最大的区别是B+树的所有数据都存放在叶子节点上,而非像B树一样将数据同时存在非叶子节点与叶子节点上。B+树具有以下性质:
下面是一个3阶B+树的示意图:
┌───────┼───────┐
10 20 30
├───┐ ├───┐ ├───┐
┌───┘ └───┘ └───┘ └───┐
4 7 11 15 25 28 33 39