计算机网络
七层模型
1.局域网与广域网差异
题目:
解题步骤:
分析那两台计算机属于同一个局域网
Q和R通过物理层的集线器连接,在同一局域网
P和Q,R通过数据链路层的网桥连接,在同一局域网
S和T通过物理层的交换机连接,在同一局域网
P和S,T通过网络层的路由器连接,不在同一局域网,所以只能在局域网进行的广播无法联系这两组成员,所以答案为B
笔记:
广播是在同一局域网内计算机传播信息的方法
通过网络层的设备让局域网连接上互联网
不同层的设备与协议
网络技术标准与协议
1.DNS协议
题目:
解题步骤:
- 观察DNS服务器关系,对查询负责到底,还会主动询问其他服务器反馈结果的是递归查询(如图本地域名服务器和中介域名服务器)
- 不主动询问其他服务器,而是把知道域名对应关系的服务器信息告诉给本地域名服务器,让它去访问,这时迭代查询
笔记:
本地服务器一般采用递归查询,对客户端负责到底,直到查到结果
其他域名服务器一般会用迭代查询,不断踢皮球
网络规划和设计
1.分层设计
IP地址与子网划分
1.子网划分(已知子网个数)
题目:
解题步骤:
- 将IP地址转为二进制,按分类获得初始的网络号,对应子网掩码为1(本题为B类,则前16位为初始的网络号)
- 划分子网时,需要取部分主机号当作子网号,因
2 ^ 5 > 27
,则还需要取5个主机号,对应子网掩码为1 - 最后再将子网掩码转成十进制
笔记:
子网掩码基本概念
A类IP地址前8个为网络号,B类IP地址前16个为网络号,C类IP地址前24个为网络号(一共32个编号,去掉网络号,剩下的为主机号)
2.子网划分(已知主机数)
题目:
- 将IP地址转为二进制,按分类获得初始的网络号,对应子网掩码为1(本题为B类,则前16位为初始的网络号)
- 已知每个子网内主机个数有700台,即需要主机号个数大于700;因有
2 ^ 10 - 2 > 700
,则 有主机号要有10位 - 最后再将子网掩码转成十进制
3.无分类编址
题目:
解题步骤:
- 可以有20个网络号,还有12个为主机号,网络号相同的主机即可说明在同一子网
- C类子网前面24个为网络号,该公司中用了20个作为网路号,则剩下4个用于子网的网络号
- 4个子网号,可以得到
2 ^ 4 = 16
,可以有16个子网
笔记:
4.特殊IP地址
计算机组成原理
数据的表示
1.进制转换
(1)十进制转二进制(短除法)
(2)二进制转八进制,十六进制(分割法)
2.编码问题
题目:
笔记:
数值的二进制编码有八位,第一位作为符号位,符号位为0为正数,符号位为1为负数
正数的原码,反码,补码相等,补码符号位取反得移码
负数的原码在正数的基础上把符号位改成1;负数原码符号位不变,其他位取反即可得反码;反码加1得补码,补码符号位取反得移码
运算中,应该使用补码和移码进行运算
数值表示范围
3.浮点数运算
解题步骤:
笔记:
- 对阶的时候,低价转向高阶
- 结果格式化即保证小数点前的数不为0且小于10
计算机结构
1.主机结构图
2.计算机体系结构分类法——Flynn
计算机指令
1.指令系统比较
流水线
1.基本概念
2.流水线计算
题目:
解题步骤:
- 找执行时间最长的指令作为流水线周期
- 套入执行指令的时间公式(t1……tk指各个步骤耗费事件,n指需要执行的指令条数,k指执行指令的步骤个数)
3.流水线吞吐率计算
4.流水线加速比
5.流水线的效率
- n个任务占用的时空区:(所有步骤执行花费时间和)* n
- k个流水线的总的时空区:流水线花费时间 * k
存储结构
1.层次化存储结构
2.Cache基本内容
- t3:系统平均周期
- h:Cache访问命中率
- t2:主存储器周期时间
- t1:Cache周期时间
3.局部性原理
主存
1.分类
2.编址
题目:
解题步骤:
地址单元数 = 内存地址之差 + 1
K = 1024
112K * 16 = 28 * X,求X即为所得
磁盘结构与参数
题目:
解题过程:
最长的情况:
由于磁头读取完数据后,数据要花3ms的时间来处理,由于是单缓存区,下个数据没地方处理,所以磁盘要转完一圈回来读取下个数据
(33 + 3 )* 10 + 6 = 366
最优情况,信息处理完的同时,磁头转到的下个数据头处,只需要转两圈即可读取所有数据f
计算机总线
系统可靠性分析
R为失效率
1.串联模型
2.并联模型
3.模冗余系统与混合模型
冗余模型,多个模块进行同样计算,取多数的运算结果作为最终结果
差错控制
1.检错和纠错机制
码距:整个编码系统中任意两个码字的最小距离
提高码距可以提高达到检错,纠错的效果
2.循环校验码CRC
在传输数据后面加上一串校验码,用来检验数据
(1)模2除法(按位做异或操作)
(2)题目
(3)解题步骤
生成多项式转成二进制形式,看对应二进制位是0还是1(11011)
进行编码时在原始报文后面加(多项式二进制位数-1)个0
进行模二运算后得到的余数即为CRC
CRC代替上一加入的0,最后生成编码后的报文
3.海明校验码
题目:
解题步骤:
- 确定校验码位数,可以用公式
2 ^ r >= 信息位数 + r + 1
来求 - 校验码的填入位置为2的n次方
- 填入信息位
- 下面计算校验码的内容
- 将位数转换成2进制相加的形式,再把它们涉及到的信息位做异或操作得对应校验位
- 下面时纠错机制
- 正确校验位与错误的校验位做异或操作,为1的为即为出错位,出错位取反即可纠正
操作系统基本原理
操作系统基本知识
1.操作系统概述
进程管理
1.进程的状态
三态模型现在已经升级到五态模型
2.进程的同步与互斥
互斥问题:生产者和消费者,只能有一个人进入市场操作
同步问题:生产者必须要等待消费者使用完市场资源,才能继续操作市场
3.PV操作
(1)PV操作原理
P操作代表请求、申请、锁定、占用的资源
V操作代表释放资源,V操作可以唤醒P操作
(2)PV操作例题
题目:
解题步骤:
分析流程图,购书者进程与收银员进程有同步关系
分析可得,收银员要收费必须要购书者付款来唤醒,且付款为V操作,收费为P操作
收费过程中,购书者也要等到收银员完成操作才能离开书店,所以这时候购书者会有一个P操作等待收银员完成收费的V操作触发
总而言之,等待的一方会有一个P操作,等待另一个进程的V操作触发
4.PV操作与前趋图
解题步骤:
在前趋图的路径上标上S1-S4
前趋图的S路径的头为V操作,末端为P操作(箭头指向为V,箭头起始点为P)
则易得a为V(S1),b为V(S2),c为P(S1),P(S2)……
5.死锁问题
(1)死锁概念
所谓死锁,是指多个进程在运行过程中因争夺资源而造成的一 种僵局,当进程处于这种僵持状态时,若无外力作用,它们都 将无法再向前推进。
(2)不发生死锁计算
解题步骤:
- 每个进程都分配到资源数(n-1),最后还剩下一个资源逐个等待分配
- 所以总不发生死锁的资源是 每个进程所需(资源数-1)之和 加1
(3)死锁的条件
- 互斥条件:进程要求对所分配的资源进行排它性控制,即在一段时间内某资源仅为一进程所占用。
- 请求和保持条件:当进程因请求资源而阻塞时,对已获得的资源保持不放。
- 不剥夺条件:进程已获得的资源在未使用完之前,不能剥夺,只能在使用完时由自己释放。
- 环路等待条件:在发生死锁时,必然存在一个进程–资源的环形链。
(4)死锁的预防
- 资源一次性分配:一次性分配所有资源,这样就不会再有请求了:(破坏请求条件)
- 只要有一个资源得不到分配,也不给这个进程分配其他的资源:(破坏请保持条件)
- 可剥夺资源:即当某进程获得了部分资源,但得不到其它资源,则释放已占有的资源(破坏不可剥夺条件)
(5)死锁的避免
资源有序分配法:系统给每类资源赋予一个编号,每一个进程按编号递增的顺序请求资源,释放则相反(破坏环路等待条件),资源利用率比较低
银行家算法:
题目:
计算系统扣除分配给各个进程的资源后剩余的资源
算得R1=2,R2=1,R3=0
逐个计算每个进程还需资源数,比系统剩余资源数多的往后排
一个进程完成后会释放资源供下个进程使用
存储管理
1.分区存储组织
- 首次适应算法:选择第一块空白内存
- 最佳适应算法:选择空白内存中小且资源够用的
- 最差适应算法:选择空白内存中最大的
- 循环首次适应法:将空白块连成一个环,按顺序依次选择其中一个
2.页式存储组织
(1)基本概念
页式存储特点:
- 优点:利用率高,碎片小,分配及管理简单
- 缺点:增加了系统开销,可能产生抖动现象
3.页式存储地址换算
(1)基本思路
(2)例题
题目:
解题步骤:
- 利用页面大小将分开逻辑地址为:页号,页内地址
- 页面大小为4K = 2 ^ 12,则页内地址为12位,则高于12位的部分为页号
- 则有逻辑地址5A29中,5为页号,A29为页内地址
- 逻辑地址的业内地址和物理地址的块地址相同
- 根据页号5查表得块号(页帧号)为6
- 淘汰页号需要在内存里面(即又页帧号得)的页号中选择,然后选择其中范围位为0的1
4.段式存储组织
(1)基本概念
段式存储特点:
优点:多道程序共享内存,各段程序修改互不影响
缺点:内存利用率低,内存碎片浪费大
5.段式存储地址换算
6.段页式存储
7.页面置换算法
(1)页面置换典型算法
(2)先进先出算法(FIFO)
基本思路: 当需要淘汰一个页面时,总是选择驻留主存时间最长的页面进行淘汰,即先进入主存的页面先淘汰。其理由是:最早调入主存的页面不再被使用的可能性最大。 即优先淘汰最早进入内存的页面。(往前看)
(3)最近最少使用算法(LRU)
基本思路:利用局部性原理,根据一个作业在执行过程中过去的页面访问历史来推测未来的行为。它认为过去一段时间里不曾被访问过的页面,在最近的将来可能也不会再被访问。所以,这种算法的实质是:当需要淘汰一个页面时,总是选择在最近一段时间内最久不用的页面予以淘汰。 即淘汰最近最长时间未访问过的页面(往前看)
(4)例题
两种算法比较:
题目:
解题步骤:
- 没有使用快表,每读一次程序的块都需要在内存中查表才能读取相应内存块,所以每一块都要进行两次内存的访问(查和读取)
- 6块 * 2 = 12 (内存访问次数)
- 指令产生只一次中断,数据横跨两个页面所以有两次中断,所以总缺页中断 = 1 + 2*2 = 5
文件管理
1.索引文件结构
(1)原理图
(2)例题
解题步骤:
- 0~4号逻辑块采用直接索引,可在图中看出他们的物理块号为50-89
- 5号处则是采用了一级地址,经过一层的地址索引,可得到5号存在58的物理号,6号则存在59的物理号中
- 因为一个物理为1K,每个地址存四个字节,所以每个盘块可以存256个地址
- 5 + 256 = 261,第一个盘已经存满,所以261号正好存在第二个盘的开始187号
2.文件和树形目录结构
(1)基本概念
3.空闲存储空间管理
(1)基本方法:
其中位数图法比较重要
(2)位示图法
题目:
解题步骤:
- (4195 + 1) / 32 = 131.125,所以前131个填满,当前物理块占的位在第132个字中
- 系统要占用物理块应该在该处填1,可算得在132字中,0位置位4192,所以3位置对应了4195
设备管理:
1.数据传输控制
- 程序控制方式:对读入的每个字,CPU需要对外设状态进行循环检查,直到确定该字已经在I/O控制器的数据寄存器中
- 程序中断方式:允许I/O设备主动打断CPU的运行并请求服务,从而“解放”CPU,使得其向I/O控制器发送读命令后可以继续做其他有用的工作
- DMA方式:在程序中断方式中,I/O设备与内存之间的数据交换必须要经过CPU中的寄存器,所以速度还是受限,而DMA(直接存储器存取)方式的基本思想是在I/O设备和内存之间开辟直接的数据交换通路,彻底“解放” CPU
2.虚设备与SPOOLING技术
微内核操作系统
数据库系统
三级模式-两级映射
1.原理图
2.三级模型
- 用户级数据库–> 外模式(反映了数据库系统的用户观),它是某个或某几个用户所看到的数据库的数据视图,是与某一应用有关的数据的逻辑表示【视图】
- 概念级数据库–> 概念模式(反映了数据库系统的整体观),它是由数据库设计者综合所有用户的数据,按照统一的观点构造的全局逻辑结构,是对数据库中全部数据的逻辑结构和特征的总体描述,是所有用户的公共数据视图(全局视图)【表】
- 物理级数据库 –> 内模式(反映了数据库系统的存储观),它是数据库中全体数据的内部表示或底层描述,描述了数据在存储介质上的存储方式和物理结构,对应着实际存储在外存储介质上的数据库
3.两级映射
- 概念模式/内模式的映像:实现概念模式到内模式之间的相互转换
- 外模式/概念模式的映像:实现外模式到概念模式之间的相互转换
数据库的设计过程
1.设计流程图
2.E-R模型
(1)E-R模型实例
(2)E-R图集成方法
(3)E-R模型转关系模式
题目:
解题步骤:
- 分析联系模式:均为多对多模式
- 所以最少的关系模式为(实体数 +联系数)即4个
笔记:
一个实体型转换为一个关系模式
关系模式个数:一对一型最少的情况为实体数,一对多型最少的情况为实体数,多对多型最少的情况为(实体数 +联系数)
3.关系代数
(1)关系代数基本运算
(2)关系表案例
(3)并,交,差运算
并:
交:
差:
(4)笛卡尔积
笛卡尔积的字段前3个来自于S1表,后3个来自于S2表
笛卡尔积数据实际上是S1,S2两张表的数据进行排列组合(3*3)
(5)投影,选择
投影:投影是选列操作(sql语句中的select)
选择:选择某一行(sql语句中的where)
(6)联接
无条件时做自然联接(相同字段做等值)
规范化理论
1.函数依赖
例如y=f(x),x有唯一对应的y则称y函数依赖于x,记作x->y
(1)部分函数依赖
(2)传递函数依赖
2.价值与用途
(1)非规范关系模式案例
(2)数据冗余:每一名学生的学号、姓名、系名、系主任这些数据重复多次。每个系与对应的系主任的数据也重复多次——数据冗余过大
(3)更新异常:假如李小明转系到法律系,那么为了保证数据库中数据的一致性,需要修改三条记录中系与系主任的数据
(4)插入异常:假如学校新建了一个系,但是暂时还没有招收任何学生(比如3月份就新建了,但要等到8月份才招生),那么是无法将系名与系主任的数据单独地添加到数据表中去的
(5)删除异常:假如将某个系中所有学生相关的记录都删除,那么所有系与系主任的数据也就随之消失了(一个系所有学生都没有了,并不表示这个系就没有了)
3.键
(1)键的关系
(2)求候选键
题目:
解题步骤:
- 将关系模式转换为有向图的模式,从依赖集入手
- 找到入度为0的属性,然后从该节点开始尝试遍历有向图,如果可以遍历完则该节点为候选键
- 如果没有入度为0的节点,尝试找既有入度又有出度的节点,如果能遍历完则该节点为候选键
笔记:
4.范式
(1)逐步优化流程图
(2)第一范式
题目:
解题步骤:
- 表中高级职称人数可以分为教授和副教授两个数据项,则不符合第一范式
- 移除高级职称人数一栏,教授,副教授和系名称同一行即可
(3)第二范式
题目:
解题步骤:
主键为SN0(学号)与CN0(课程号)的组合键,因为CN0不需要SN0也能确定CREDIT(学分),所以该表存在部分依赖,不符合第一范式
解决方案:将存在部分依赖的项单独建立另一个表,这里是去掉CREDIT一列,和CN0构建另一个表
(4)第三范式
题目:
解题步骤:
- 非主键中DN0可以确定DNAME,DNAME可以确定LOCATION,所以存在传递依赖,所以不符合第三范式
- 解决方案:去掉DNAME 与 LOCATION两列,与DN0构建另一个表
(5)BC范式
题目:
解题步骤:
找出候选键SJ组合键,SP组合键
列出函数依赖:SJ -> T,T->J,左边的绝对因素中T不是候选键,所以不符合BC范式
5.规范化理论例题
解题步骤:
- 不属于第三范式的情况有:不符合第三范式; 不符合第二范式;题目中明显不存在部分依赖,所以符合第二范式。
- 要把员工和部门联系起来
6.模式分解
(1)保持函数依赖分解
(2)无损分解
(3)推理法
是无损分解,可以进行表格联接来进行还原
(4)表格法
题目:
解题步骤:
写成初始表,第一行列出函数依赖中所有的项,第一列列出要分解出的项;然后按行看,是分解项的子项,填入an(n=所处列数);非子项的填入bmn(m=行数,n=列数)
然后根据函数依赖修改填b的子项
(5)公式法
题目:
解题步骤:
- 该方法只适用于分解成两个的情况
- 两个集合做交集和差集,并构建出两个关系模式,其中之一能成立,则可证明为无损分解
并发控制
1.基本概念
2.存在问题
- 丢失更新:两者同时更新某个数据,后者执行的结果会覆盖前者
- 不可重复读:前后验算的结果可能会因其中一个数据的更新而变得不同
- 读”脏“数据:读取了临时值
3.封锁协议
参考文章:https://www.cnblogs.com/conanpeng/p/12854299.html
为了解决并发控制出现的以上问题,我们采用封锁协议来解决
数据库完整性约束
1.约束类型
主要用于过滤数据,保证数据可靠性
2.数据库约束简介
- 实体完整性约束:如用户设置主键,该字段的值不能重复也不能为空
- 参照完整性约束:如外键,可以和另一个表中的数据比对,可以为空,但是填入数据在参照表中不存在就需要弹出信息
- 用户自定义完整性:用户自定义填入数据的类型
- 触发器:触发器是运行在数据库中的脚本,表的操作事件触发表上的触发器的执行,可以用来过滤不符合条件的数据
数据库安全
数据备份
1.备份类型
2.备份方式对比
3.日志文件
4.数据库故障与恢复
数据仓库与数据挖掘
1.关联图
2.数据挖掘分类
反规范化
1.原理
2.技术手段
大数据
1.数据比较
2.大数据处理系统特征
系统安全分析与设计
信息系统安全属性
加密技术
1.对称加密
加密和解密使用同样的密钥
2.非对称加密技术
信息摘要
数字签名
数字信封与PGP
1.数字信封
2.PGP
设置加密系统
网络安全
1.网络各层次安全保障
2.网络威胁与攻击
3.防火墙技术
编译原理
编译过程
高级语言类型:解释型语言,编译型语言
1.编译过程
文法
1.文法样式
一个形式文法是一个有序四元组G=(V,T,S,P)
非终结符为大写字母,终结符为小写字母
2.文法类型
语法推导树
(1)特征
(2)案例
题目:
解题步骤:
{a,b}为终结符,{S,A}为非终结符
- 由题可写出以下的推导式子:
S->aAS,S->a,A->SbA,A->SS,A->ba
- 因为a,b不能推导出任何式子,所以a,b为终结符
- 将式子展开成推导树
有限自动机
1.原理解析
有限自动机使用状态转换图表示的
该图中S为起点,f为终点(终点有两个圈)
解析态:找一条从起点到终点的路,路上的数值串起来即得到一个解析态
2.例题
按选项的路径一个个尝试,若能从A到C则该选项正确
正规式
有限自动机除了可以用上面的状态转换图表示,也可以使用正规式来表达
题目:
解题步骤:
- 根据上面的推导式逐个尝试推导(1)中的选项,D选项无法被推导出来
- (2)可以根据(1)中不能被推导的D选项判断,(2)中的选项可以推导出D的都会被排除
笔记:
- a|b :可解析出a或b
- (a|b)*:任意个a,b组合都可以表达出来
表达式
1.基础
类似于树的遍历
2.案例
题目:
解题步骤:
先由表达式构造树(括号表示先后顺序)
再按要求遍历这颗树
函数调用
函数调用有两种类型
保护期限
知识产权人确定
侵权判断
标准化基础知识
标准分类
标准编号
多媒体基础
音频
媒体种类
多媒体计算
1.图像容量计算
位数为24位,则为3个字节,存储容量为:
1600*1200*3B
需要化单位为MB,可得一张相片存储的容量
再用总容量除以单位容量
2.音频容量计算
- 44.1 * 16 * 2 = 1411.2
- 注意单位即可
3.视频容量计算
- 6.4 * 30 * 10 = 1920
常见多媒体标准
数据压缩
1.压缩原理
2.有损压缩与无损压缩
软件工程
软件开发模型
1.瀑布模型(SDLC)
适用:需求明确,二次开发
缺陷:需求阶段不明确
2.原型演变
原型针对需求不明确的情况,开发一个简易的展示系统
3.增量模型与螺旋模型
(1)增量模型
(2)螺旋模型
特点:风险分析
3.V模型 喷泉模型 RAD
V模型特点:进行多次测试,需求分析阶段就同步写验收测试和系统测试计划,概要设计阶段同步写集成测试计划,详细设计阶段同步写单元测试计划
喷泉模型特点:面向对象模型
RAD:快速构建系统
3.构件组装模型(CBSD)
模块做成构件,最后组装成系统
特点:提高代码复用性
4.敏捷开发方法
适用场景:适合小项目
信息系统开发方法
- 结构化方法:开发流程不灵活
- 面向对象:复用性强
需求开发
1.需求分类和需求获取
结构化设计
1.基本原则
模块独立性的衡量指标:高内聚,低耦合
2.内聚和耦合
(1)内聚
内聚即模块中各个部件的连接紧密程度,内聚程度越高越好
(2)耦合
耦合即模块间的联系的紧密程度,耦合程度越低越好
3.系统结构
变换型系统结构
软件测试
1.测试原则与类型
(1)测试原则
(2) 测试类型
2.测试用例设计
(1)黑盒测试法(只看输入输出,内部不管)
- 等价类划分:划分同样类型的逻辑
- 边界值分析:边界值测试
(2)白盒测试
路径测试:执行所有可能得穿过程序得控制流程路径,所有路径覆盖
语句测试:至少执行程序中的所有语句一次
条件测试:至少执行程序中的每一分支一次
3.测试阶段
单元测试(内部单个模块测试)-> 集成测试(模块组装联系起来测试)-> 确认测试(确认需求) -> 系统测试
4.McCabe复杂度
复杂度 = 判断框 + 1
有向图转成键线图:
- 分叉处抽象为节点
系统运行与维护
软件过程改进
1.CMMI
2.项目管理
(1)gantt图
题目:
解题方法:
gantt图优点:进度时间清晰明了
gantt图缺点:不能清晰描述任务间的依赖关系
最早开始时间:正向推理,完成最早开始时间后从最后一个节点开始逆推得最晚开始时间
3.风险管理
面向对象
1.UML基础
2.面向对象设计原则
单一职责原则:只有一个工作职责
开放-封闭原则:尽量不修改原有类,而是创建新的类
李氏替换原则:不要重写父类,而是使用子类
依赖倒置原则:针对接口,易于扩展和升级
3.设计模式的概念
- 架构模式:最高决策,全局看方案(框架)
- 设计模型:构建设计
- 惯用法:与语言相关
4.设计模式的分类
关于设计模式可参考文章:https://www.runoob.com/design-pattern/abstract-factory-pattern.html
5.创建型模式
- 抽象工厂:系统的产品有多于一个的产品族,而系统只消费其中某一族的产品
- 构建器模式:一些基本部件不会变,而其组合经常变化的时候(去肯德基,汉堡、可乐、薯条、炸鸡翅等是不变的,而其组合是经常变化的,生成出所谓的”套餐”)
- 工厂模式:我们明确地计划不同条件下创建不同实例时(您需要一辆汽车,可以直接从工厂里面提货,而不用去管这辆汽车是怎么做出来的,以及这个汽车里面的具体实现)
- 原型模式:利用已有的一个原型对象,快速地生成和原型对象一样的实例(细胞分裂)
- 单例模式:当您想控制实例数目,节省系统资源的时候(Windows 是多进程多线程的,在操作一个文件的时候,就不可避免地出现多个进程或线程同时操作一个文件的现象,所以所有文件的处理必须通过唯一的实例来进行)
6.结构型模式
- 适配器模式:主要解决在软件系统中,常常要将一些”现存的对象”放到新的环境中,而新环境要求的接口是现对象不能满足的(美国电器 110V,中国 220V,就要有一个适配器将 110V 转化为 220V)
- 桥接模式:把这种多角度分类分离出来,让它们独立变化,减少它们之间耦合(墙上的开关,可以看到的开关是抽象的,不用管里面具体怎么实现的)
- 组合模式:树枝和叶子实现统一接口,树枝内部组合该接口(算术表达式包括操作数、操作符和另一个操作数,其中,另一个操作符也可以是操作数、操作符和另一个操作数)
- 装饰模式:在不想增加很多子类的情况下扩展类( 1、扩展一个类的功能。 2、动态增加功能,动态撤销)
- 外观模式: 客户端不需要知道系统内部的复杂联系,整个系统只需提供一个”接待员”即可
7.行为模式
职责链模式:有多个对象可以处理同一个请求,具体哪个对象处理该请求由运行时刻自动确定
命令模式:在某些场合,比如要对行为进行”记录、撤销/重做、事务”等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将”行为请求者”与”行为实现者”解耦?将一组行为抽象为对象,可以实现二者之间的松耦合
数据流图(DFD)
1.数据流图基本概念
(1)数据流图组成
(2)数据流图分层
结构化开发
2.数据字典
3.数据流图平衡原则
(1)父图于子图的 平衡
(2)子图内的平衡
4.数据流图解题技巧
(1)题目分点解析
(2)利用数据平衡原则检查
数据库设计
1.数据库设计流程
2.ER模型
(1)实体间联系类型
(2)ER图与关系模型的转换
UML建模
1.用例图
- 包含关系(extend)
- 扩展关系(include)
- 泛化关系
2.类图与对象图
填类名
填多重度
填关系
3.顺序图
4.活动图
5.状态图
6.通信图
顺序图另一种表达方式
数据结构及算法运用
1.分治法
分治法->递归技术
(1)分治法使用要求:
分治法的基本运用:二分查找。快速排序
2.回溯法
回溯法通过不断回溯参数,吧所有可能性都尝试一遍直到
3.贪心法
在有限时间找到满意的解(找不到最优解)
4.动态规划法
动态规划法会把问题拆成多个子问题,然后会有查表步骤
4.动态规划法
动态规划法会把问题拆成多个子问题,然后会有查表步骤