1.计算机基础
CPU
CPU的功能
- 程序控制(控制器)
- 操作控制(控制器)
- 时间控制(控制器)
- 数据处理(运算器)
CPU的组成
CPU主要由运算器、控制器、寄存器组和内部总线等部件组成。
-
运算器:运算器只能完成运算。
- 算术逻辑单元(ALU):负责处理数据,实现对数据的算数运算和逻辑运算
- 累加寄存器(AC):运算器的算数逻辑单元执行算数或逻辑运算时,为ALU提供一个工作区,运算的结果存储在AC中。
- 数据缓冲寄存器(DR):作为CPU和内存、外部设备之间的中转站。
- 状态条件寄存器(PSW):保存各种条形码内容。
-
控制器:控制器用于控制整个 CPU 的工作,它决定了计算机运行过程的自动化。它不仅要保证程序的正确执行,而且要能够处理异常事件。
- 指令寄存器(IR):当CPU执行指令时,先把它从内存存储器取到缓冲寄存器中,在送入IR暂存。对用户完全透明
- 程序计数器(指令计数器)(PC):跟踪指令的地址。PC在顺序执行的时候加1,在转移执行的时候加上一个位移量
- 地址寄存器(AR):保存当前CPU所访问的内存单元的地址
- 指令译码器(ID):指令包含操作码和地址码。对指令中的操作码进行分析解释
补充:指令 == 操作码 + 地址码
浮点数
浮点数运算:首先对阶,阶码小的向大的对齐,尾数右移
Cache
Cache在CPU和主(内)存之间
CPU不能直接访问外存
Cache与主存之间的地址映射由硬件自动完成
中断
计算机在执行程序过程中,当遇到急需处理的事件时,暂停当前正在运行的程序,转去执行有关服务程序,处理完后自动返回源程序,这个过程称为中断。
- 中断向量:提供中断服务程序的入口地址
- 中断响应时间:发出中断请求开始,到进入中断服务程序
- 保存现场:返回执行源程序
- 多级中断使用堆栈来保护现场最有效
内存计算
参考19年下半年(4)
2.程序语言设计
程序执行
编译原理
词法分析、语法分析、语义分析
后缀式
4.操作系统
4.4设备管理
磁盘调度
- 先移臂操作:访问相同柱面信息
- 后旋转操作:访问同一磁盘信息
5.软件工程
能力成熟度模型 CMM
将软件过程改进非为5个成熟度级别(由低到高)
- 初始级(杂乱无章,混乱,没有明确定义,全依赖于个人和英雄核心人物作用)
- 可重复级(基本的项目管理过程来跟踪项目费用、进度和功能)
- 已定义级(管理和工程已经文档、标准化,综合成标准软件过程)
- 已管理级(可控制过程和产品质量)
- 优化级(加强定量分析、通过反馈以改进)
项目管理
关键路径
软件测试
白盒测试(结构测试)
逻辑覆盖 | 说明 |
---|---|
语句覆盖 | 每条语句执行一次 |
分支(判定)覆盖 | 每个分支获得一次True/False |
条件覆盖 | 每个分支中的每个逻辑条件的所有可能取值满足一次 |
判定/条件覆盖 | 分支覆盖 + 条件覆盖 |
条件组合覆盖 | 每个判定中条件的各种可能值c的组合都出现一次 |
路径覆盖 | 覆盖被测试程序中所有可能的路径 |
McCabe度量计算环路复杂性
软件质量管理
软件质量特性
McCall质量模型
三个方面,11个质量特性
给出了三层框架模型:质量特性、评价标准、度量指标
系统维护
软件维护:
- 正确性维护。指改正在系统开发阶段已发生而系统测试阶段尚未发现的错误。
- 适应性维护。使应用软件适应信息技术变化和管理需求变化而进行的修改。
- 完善性维护。为扩充功能和改善性能而进行的修改。
- 预防性维护。为了改进应用软件的可靠性和可维护性,为了适应未来的软/硬件环境的变化,应主动增加预防性的新的功能,以使应用系统适应各类变化而不被淘汰。
敏捷开发
并列争求法(Scrum)
6. 结构化开发
系统分析与设计
耦合
内聚
用户界面设计
界面设计三条“黄金准则”
- 用户操纵控制
- 减轻用户的记忆负担
- 保持界面一致
- 不包括:界面美观整洁
7.面向对象
类的定义
成员变量:状态、数据、属性
成员函数:操作、方法、行为
重载和覆盖(重写/重置)
- 方法重载:一个类中名称相同而参数表不同的多个方法
- 方法覆盖:在子类中重新定义父类中已定义的方法
多态和绑定
编译时进行:静态绑定,
运行时进行:动态绑定,(动态绑定支持多态和类的继承)
同类型的对象,表现出的不同形态。(对象的多种形态)
最纯的多态 ==> 参数多态
子类型化 ==> 包含多态
同一名字在不同上下文中的含义不同 ==> 过载多态
- 通用的:
- 参数多态:应用比较广泛的多态,被称为最纯的多态。
- 包含多态:在许多语言中都存在,最常见的例子就是子类型化,即一个类型是另一个类型的子类型,父子类型关系。
- 特定的:
- 过载多态:同一个名字在不同的上下文中所代表的含义不同,类似于重载。
- 强制多态:通过强制类型转换(也称为强制转型)将一个对象或变量视为另一个类型的操作。
面向对象设计原则
UML
- 类图:展现了一组对象、接口、协作及其之间的关系
- 对象图:展现了某一时刻一组对象以及它们之间的关系,描述了在类图中所建立的事物的实例的静态快照
- 用例图:展现了一组用例、参与者(Actor)以及它们之间的关系。
- 序列图、
- 通信图:强调收发消息的对象的结构组织
- 状态图、
- 活动图、
- 构件图:展示一组组件之间的组织和依赖,它与类图相关,通常可以把组件映射为一个或多个类、接口或协作
- 组合结构图、
- 部署图:展现了运行时处理结点以及其中软件构件(制品)的配置,一个处理结点是运行时存在并代表一项计算资源的物理元素,具有处理能力,其上包含一个或多个软件构件(制品)。
- 包图、
- 交互概览图、
- 计时图、
- 序列图、通信图、交互概览图和计时图均被称为交互图
UML关系
- 依赖
A -----------------> B
表示A依赖于B,或者B被A依赖
A为依赖事物,B为独立事物 - 关联
关联是一种关系结构,描述了一组链,链是对象之间的连接,
关联的横向上写可重复度,横线下写角色
两个类之间可以有多个有不同角色标识的关联
聚集(聚合)是一种特殊类型的关联,描述了整体与部分之间的结构关系(菱形指向整体,线段指向部分)
聚合和组合的区别 聚合:部分和整体的生命周期不一致,整体消失了,部分仍然存在,如学生和班级的关系(图:聚 集的图)
组合:部分和整体的生命周期一致,部分不可以脱离整体,如部分和公司(图:聚集的图中的菱形 是实心)
- 指的是一种特殊/一般的关系,线段一侧为特殊关系,三角一侧为一般关系,即子类指向父类
- 两种使用情况:
接口和实现类: 接口类 指向接口
用例和协作之间:类的实例对象指向类
状态图
设计模式
历年考的设计模式
2020下上:生成器模式——创建型
结构性—桥接模型
数据结构
二叉树
3个节点的二叉树:5种;
4个节点的二叉树:14种;
队列和栈
哈希
有向图
邻接矩阵/邻接链表
19年下半年60,61
排序
8.算法设计
分治法
把大问题分解成一些较小的问题,然后由小问题的解方便地构造出大问题的解,每个小问题都是相互独立的。
二分查找法、
汉诺塔问题、
斐波那契、
归并排序、
最大字段和
动态规划
基本思想也是将大问题分解为多个小问题,但是与分治法不同的是,动态规划法的子问题往往不是独立的。因此,动态规划法可以避免大量重复的计算。以自底向上的方式计算出最优值。
最大公共子序列(LCS)
0-1背包——时间复杂度:O(N*W) N:物品数量 W:背包容量
矩阵连乘——时间复杂度:O(n³); 空间复杂度O(n²)
贪心算法
不追求最优解,只希望得到较为满意解的方法。可以快速得到满意的解,不考虑整体情况,所以贪心法不要回溯。
哈夫曼编码
部分背包
活动选择
回溯算法
该方法首先暂时放弃关于问题规模大小的限制,并将问题的候选解按某种顺序逐一枚举和检验。当发现当前候选解不可能是解时,就选择下一个候选解;倘若当前候选键除了不满足问题规模要求外,满足所有其他要求,继续扩大当前候选解的规模,并继续试探。如果当前候选解满足包括问题规模在内的所有要求,该候选键就是问题的一个解。在回溯法中,放弃当前候选解,寻找下一个候选解的过程被称为回溯;扩大当前候选解的规模,以继续试探的过程称为向前试探,回溯法以深度优先的方式搜索解空间树。
N皇后问题
分支限界算法
类似于回溯法,也是在问题的解空间树上搜索问题解的方法。但在一般情况下,二者的求解目标不同。回溯法是找出解空间树中满足约束条件的所有解,而分支限界法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出使某一目标函数值达到极大或极小的解,即在某种意义下的最优解。分支限界法以广度优先或以最小耗费优先的方式搜索解空间树。
霍夫曼编码压缩
9.数据库
笛卡儿积
自然连接
候选关键字
SQL
WITH GRANT OPTION 授权将该权限授予他人
WITH CHECK OPTION 视图中用
WHERE:平时使用
HAVING:group by的时候用
并发控制
排他锁和共享锁
事务管理
事务是一个操作序列,这些操作“要么都做,要么都不做”。
事务和程序是两个不同的概念,一般一个程序可包含多个事务。
事务的ACID性质:
- 原子性:事务是原子的,要么都做,要么都不做。
- 一致性:事务执行的结果必须保证数据库从一个一致性状态变到另一个一致性状态。
- 隔离性:事务相互隔离。当多个事务并发执行时,任一事务的更新操作直到其成功提交的整个过程,对其他事务都是不可见的。
- 持久性:一旦事务成功提交,即使数据库崩溃,其对数据库的更新操作也将永久有效。
分布式数据库
10.网络
OSI七层,TCP/IP五层
协议簇
- FTP的端口号:20(数据端口)、21(控制端口)
- http的端口号:80
- https的端口号:443
- DNSD的端口号:53
TCP和UDP
- TCP(传输控制协议):在IP提供的不可靠数据服务的基础上为应用程序提供了可靠的、面向连接的、全双工的数据传输服务。采用三次握手来确认建立和关闭连接是否成功。TCP的功能或服务有:
- 可靠传输
- 连接管理
- 差错校验和重传
- 流量控制:采用可变大小的滑动窗口协议
- 拥塞控制
- 端口寻址
- UDP(用户数据报协议):是一种不可靠的、无连接的协议,可以保证应用程序进程间的通信。UDP上的应用有VoIP等。
- UDP的首部8B,TCP的首部20B,UDP相比TCP来说,开销较小。
- TCP和UDP均提供了端口寻址功能。
补充:
- TCP和UDP都是应用于传输层的网络协议。
- TCP有助于提供可靠性,UDP有助于提高传输的高速率性。
ipconfig
ipconfig 是调试计算机网络的常用命令,通常用来显示计算机中网络适配器的 PP 地址、子网掩码及默认网关等信息。
- ipconfig:显示所有网络适配器的 卫地址、子网掩码和缺省网关值
- ipconfig /all: 显示所有网络适配器的完整 TCP/IP 配置信息,包括 DHCP 服务是否己启用
- ipconfig /enew:DHCP 客户端手工向服务器刷新请求
- ipconfig /release: DHCP 客户端手工释放 IP 地址。
(电子邮件)网络安全
- SSL是传输层安全协议安全加密,用于实现web的安全通信,端口号443。
- TLS是IETF制定的协议,是SSL的后续版本
- 安全连接的协议是SSH,也是传输层基础上的安全协议,SSH终端设备与远程站点之间建立安全连接
- HTTPS是使用SSL加密算法的HTTP
- MIME多用途互联网电子邮件附件扩展类型。扩展了电子邮件的标准,使其能够支持更多的文本
- PGP是一个基于RSA公钥加密体系的邮件加密软件
- IPSes为IP数据报文进行加密
- RFB远程登录图形化界面,IGMP因特网组管理器
- 内部网关协议:RIP、OSPF 外部网关协议:BGP
加密算法
对称密钥(私钥、私有密钥加密)算法(共享密钥加密算法) | 非对称密钥(公钥、公开密钥加密)算法 |
---|---|
DES | RSA |
3DES | ECC |
RC-5 | DSA |
IDEA | |
AES | |
RC4 |
网络攻击
- 主动攻击:拒绝服务攻击(Dos)、分布式拒绝服务(DDos)、认证处理、信息篡改、资源使用、欺骗、伪装、重放等
- 被动攻击:嗅探、信息收集等
- 拒绝服务攻击 (Dos攻击) : 目的是使计算机或网络无法提供正常的服务(拒绝服务攻击是不断向计算机发起请求来实现的)。
- 重放攻击: 攻击者发送一个目的主机已经接受过的报文来达到攻击目的。攻击者利用网络监听或者其他方式盗取认证凭据,之后再重新发送给认证服务器。主要用于身份认证过程,目的是破坏认证的正确性。
- 口令入侵攻击:使用某些合法用户的账号和口令登录到目的主机,然后再实施攻击活动。
- 特洛伊木马:被伪装成程序或游戏,当用户下载了带有木马的软件或附件时,这个程序就会向黑客发起连接请求,建立连接后黑客就实施攻击活动。
- 端口欺骗攻击: 采用端口扫描找到系统漏洞从而实施攻击。
- 网络监听: 攻击者可以接收某一网段在同一条物理通道上传输的所有信息使用网络监听可以轻松截取包括账号和口令在内的信息资料。
- IP欺骗攻击: 产生的IP数据包为伪造的源IP地址,以便冒充其他系统或发件人的身份。(ARP)
- sql注入攻击: 是黑客对数据库进行攻击的常用手段之一。没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。攻击者可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据首先获取数据库的权限,就可获取用户账号和口令信息,以及对某些数据修改等。
- 入侵检测(用户的非授权访问)技术: 专家系统、模型检测、简单匹配。
访问控制
11.知识产权
职务开发
合作开发
委托开发
下午第二题
三个实体之间的联系?
https://www.cnblogs.com/suntroop/articles/17672167.html
https://www.jianshu.com/p/ea26877e6d59