参考
CSDN Laptoy
b站 zst
小题
利用栈进行嵌套调用
嵌入式系统初始化以软件初始化为主,主要进行操作系统的初始化
C语言中,全局变量存储在静态数据区
冗余附加技术的构成不包括关键程序和数据的冗余存储及调用
业务用例和参与者一起描述组织支持的业务过程
信息库不属于配置数据库
FAT文件管理系统使用的是基于文件的簇状链式结构
为了便于实现多级中断嵌套,使用堆栈来保护断点和现场最有效
MISD(多指令流单数据流机器)只有理论意义而无实例
GPU采用SIMD架构
VLIW是超长指令字的缩写
PCI总线和SCSI总线都是并行总线
RSA->X.509数字证书,非对称加密算法(公开密钥加密)
ECC->国密SM2数字证书
DES->共享密钥加密算法
数字证书对用户的身份进行认证,数字签名确保信息不可否认
加密确保数据的保密性,认证确保发送者和接收者的真实性以及报文的完整性
操作系统
①死锁判断,至少需要资源数=并发进程数*(每个进程所需资源数-1)+1
②八进制权限表示法->读权限=4,写权限=2,执行权限=1
③临界区是指进程中用于访问临界资源的那段代码
④微程序一般由硬件执行
计网
①ipconfig/all -> 查看本机DHCP服务是否已启用
ipconfig/release ->释放当前主机自动获取的IP地址
ipconfig/flushdns ->刷新DNS解析器缓存[flush刷新]
②报文交换不能用于语音数据传输
③无线WLAN->IEEE802.11标准
④路由器收到多个转发,则选择管理距离最小的
主机路由的子网掩码是255.255.255.255
默认路由->当没有其他路由可选时,最后选择的路由
⑤层次化局域网模型中核心层将分组从一个区域高速的转发到另一个区域
⑥帧中继比异步的数据速率更低
⑦图元是描述矢量图的基本单位
位图与矢量图相比,位图占用空间较大,处理侧重于获取和复制,显示速度快
⑧像素=DPI x 英寸
DPI,每英寸像素点
⑨response对象可以修改cookie中的值
⑩两个IPV6可以通过现有的IPV4网络通信->隧道技术
IPV6可以和IPV4进行通信->翻译技术
⑪CIF视频格式的图像分辨率为352x288
⑫MPEG-1 -> VCD
MPEG-2 -> DVD
⑬表现媒体->I/O设备
表示媒体->数据交换的媒介
感觉媒体->直接作用于人的感觉器官
⑭数字语言的采样频率定义为8kHz,因为语言信号定义的频率最高值为4kHz
人耳能听到的频率范围是20Hz~20KHz
⑮改变数字载波频率->改变音调
改变信号幅度->改变音高
⑯计算机处理模拟信号首先要进行A/D变换
计算机通过话筒接口收到的信号是音频模拟信号
⑰数字音乐合成技术->FM和Wave Table,其中Wave Table的音质更好
⑱饱和度是指色彩的鲜艳程度(色彩的纯度)
浏览器与网络安全
①在IE浏览器中,安全级别最高的区域设置是受限站点
②ARP攻击造成网络无法跨网段通信的原因是伪造网关ARP报文使数据包无法发送到网关
数据库容灾属于系统安全和应用安全
③三网合一的三网是电信网,广播电视网,互联网
网络的可用性是指用户可利用网络时间的百分比
④netstat不能用于诊断DNS故障
测试网络连通性常用Ping
⑤HTTPS的默认端口为443
⑥协议名://主机名.域名.域名后缀.域名分类/目录/网页文件
域名后缀也是域名的一部分
⑦<head></head>头部标签,<body></body>内容,<meta></meta>元数据,<html></html>起始和终止
⑧/20表示前20位作为网络地址,21-32位作为主机地址
从主机地址中取走n位=分成2^n个子网
每个子网可分配的主机地址数=2^n-2(n=剩余的主机地址位数)
⑨MAC地址唯一,IP地址不唯一
协议和模型
①ADSL接入网络,需要安装PPPoE协议
TFTP->不可靠且不安全的文件传输
FTP->可靠但不安全的文件传输
SFTP->可靠且安全的文件传输
SSH属于安全远程登陆协议
HTTPS基于SSL安全协议
PPP中的安全认证协议是CHAP
ARP协议的作用是实现IP地址与MAC地址之间的变换
HTTP协议中,GET用于读取一个网页
POP3协议采用Client/Server模式
SSH协议在终端设备与远程站点之间建立安全连接
TELNET协议->远程登陆
发送电子邮件附加多媒体数据时,需采用MIME协议
②网络设备
物理层->中继器,集线器(相当于多端口的中继器)
网络层->路由器
数据链路层->网桥,交换机(相当于多端口的网桥)[转发数据帧],VLAN
③TCP建立连接,3次握手,使用可变大小的滑动窗口协议
DNS配置错误->UDP协议正常工作,TCP协议发生故障
④UDP不可靠传输,无连接
TCP可靠传输,面向连接
⑤网络连接不可用时,测试使用IP地址为127.0.0.1
DHCP服务器离线时,自动分配的IP地址为169.254.x.x
⑥OSI七层分别为物理层,数据链路层,网络层,传输层,会话层,表示层,应用层
OSI模型表示层->数据解密与加密,压缩,格式转换
传输层提供端到端的通信
DNS在传输层采用无连接UDP服务
在传输层建立连接进行可靠通信
⑦数据链路层设备可以隔离冲突域,不能隔离广播域
网络层设备既可以隔离冲突域,又可以隔离广播域
物理层设备无法隔离冲突域和广播域
集线器->1个冲突域,1个广播域
交换机->n个冲突域,1个广播域(n是接口数量)
⑧PPTP->数据链路层,SSH->应用层,IPSec->网络层,Socks->会话层
⑨DHCP客户端可以从DHCP服务器获得本机IP地址,DNS服务器地址
DHCP服务器地址,默认网关的地址
DHCP协议的功能是自动分配ip地址
⑩DNS服务配置中的A记录->IPV4地址 MX记录->邮件交换服务器的地址
CNAME记录->域名的别名
AAAA记录->IPV6地址
算法
①快排时间复杂度->O(nlgn)-O(n2)
顺序表的查找,时间复杂度->O(1)
单链表的查找,时间复杂度->O(n)
堆排序是一种选择排序
指针变量可以是全局变量页可以是局部变量
在最坏情况下时间复杂度最低的算法是归并排序算法
②图(n为顶点数,e为边数)
使用队列对图进行广度优先遍历
循环队列的优点是入队和出队操作都不需要移动队列中的其他元素
优先队列采用堆实现
循环链表从表中任一结点出发都能访问到整个链表
完全图->每个顶点都和其他顶点相连
无向图中一个顶点的度是指与该顶点相邻的顶点数
总度数=2*边数
结点的度数=其子树的个数
边数->连通图最少n-1,最多n(n-1)/2,强连通最少n,最多n(n-1)
连通图->无向图,强连通图->有向图
邻接矩阵->n个顶点,n阶矩阵
邻接矩阵->稠密图(边数多),邻接表->稀疏图(边数少)
邻接矩阵内非零元素数->有向图e,无向图2e
遍历时间复杂度(大小)->用邻接矩阵存储n^2,用邻接表存储n+e
在有向无环图G的拓扑序列中,顶点Vi在Vj之前,则:
可能存在弧<Vi,Vj>,一定不存在弧<Vj,Vi>
可能存在vi到vj的路径,一定不存在vj到vi的路径
无向连通图只能保证每对结点间都有路径
③树
最小生成树->贪心
深度优先->回溯
哈夫曼编码->贪心
关键字序列构造二叉查找树->关键字大于树根为右子树,关键字小于树根为左子树
平衡二叉排序树的时间复杂度=log2n
哈希表,二叉排序树->动态查找表
顺序存储二叉树求数组大小->补成完全二叉树数结点
任何一颗二叉树的叶结点在前,中,后序序列中的相对次序不发生改变
遍历
先序->根左右
中序->左根右
后序->左右根
先序+后序不能推出中序
前序->从上至下 中序,后序->从下至上
④动态规划->最优子结构,重叠子问题
采用贪心算法保证能求得最优解的问题是邻分背包
⑤哈希表
构造哈希函数时应尽量使关键字的所有组成部分都能起作用
用线性探测法解决冲突容易产生聚集问题
⑥查找
二分查找(折半查找)->最多与log2n下取整+1个元素进行比较
二分查找要求查找表顺序存储,关键字有序排列
⑦仅设尾指针的单向循环链表的时间复杂度->插入O(1),删除O(n)
UML
①图
类图->一组对象,接口,协助和它们之间的关系(静态设计视图)
特点->[1..*](多重度)
类图中○是接口的意思
对象图->某一时刻一组对象之间的关系
特点->[1..*],链
用例图->一组用例与参与者之间的关系(用例视图)
组成部分->参与者,用例,扩展关系
特点->《 》
序列图->多个对象与一个用例的行为
特点->长条矩形
通信图->对象之间的消息流及顺序
特点->1.1:
活动图->一个活动到另一个活动的流程
特点->黑色矩形
构件图(组件图)->一组构件之间的组织及依赖(静态实现视图)
特点->受体,小图标
组件图->调用组件实现对应的接口
部署图->软件与硬件的关系(静态实施视图)
包图->一个元素只能被一个包所拥有
②同步消息是双向通信,有返回消息,异步消息是单向通信,没有返回消息
③模式图特点
抽象工厂模式->AbstractFactory
生成器模式->Builder
桥接模式->抽象部分→实现部分
组合模式->Component
外观模式->高层接口
命令模式->右上角折了一下
观察者模式->Observer
状态模式->State
④接口可用于声明对象类所需要的服务
校验码
①海明码中数据位与检验位的数量关系
2^k≥n+k+1(n表示数据位,k表示校验位)
②海明码的码距
检测e个误码,最小码距=e+1
纠正t个误码,最小码距=2t+1
同时纠错检错 : e+t+1
③循环冗余校验码
若数据位为k,检验位为r,则k个数据位之后跟r个校验位
CPU
①CPI=执行一条指令所需的时钟周期数
②IPS=主频/CPI
③双核处理器是指在一个处理器上集成两个运算核心
④地址总线宽度=内存单元的地址宽度
数据总线的宽度=字长
⑤三总线结构->数据总线,地址总线,控制总线
流水线
①RISC指令种类少,硬布线,CISC指令种类多,微程序
CISC复杂指令计算机,RISC精简指令计算机
CISC采用很少的通用寄存器,RISC采用很多的通用寄存器
②流水线的吞吐率=最长流水段时间的倒数
存储器
①一个DMA传送需要执行一个总线周期
②闪存以块为单位进行删除操作,掉电后信息不丢失,采用随机访问方式
③RAID5实际容量=(总盘块数-1)x最小磁盘的容量
④Cache采用相联存取方式
Cache的设计思想是在合理的成本下提高命中率
⑤虚拟存储技术是补充内存逻辑空间的技术,虚拟存储器只能基于非连续分配技术
⑥单缓冲区->(读取时间+运输时间)*n+处理时间
双缓冲区->读取时间*n+运输时间+处理时间
面向对象
①关键字this可以用于区分同名的对象属性和局部变量名
②Python,Java->解释型语言->动态语言
C,C++ -> 编译型语言->静态语言
Python属于弱类型语言
PHP不是标记语言
③列表是一种有序的数据集合,可以随时添加或删除元素
元组与列表类似,但元组里面的元素不可变
集合里面的元素是无序的
④类的设计原则
开闭原则->对扩展开放,对修改关闭
里氏代换原则->子类可以替换父类
迪米特原则->一个对象应当对其他对象有尽可能少的了解
依赖倒置原则->要依赖于抽象,而不是具体实践,要对接口进行编程,而不要对实现编程
接口分离原则->不应该强迫客户依赖于它们不用的方法
单一责任原则->当需要修改某个类的时候,原因有且只有一个
⑤构建用例模型分为四个阶段->确定参与者,确定需求用例,构造用例模型,记录需求用例描述
⑥Python中**是幂运算,Python没有switch
⑦x.append()是在x元素后面追加括号的内容,y=x+[]表示两个数组的合并
⑧Java是即时编译程序,对象在堆空间分配
⑨过载多态是一种特定的多态,指同一个名字在不同上下文中可代表不同的含义
⑩在面向对象方法中,对象是最根本的模块
抽象类没有直接对象
⑪类中的每个对象都是这个类的一个实例,类之间共享属性与服务的机制称为继承
面向对象设计支持多重继承,单重继承和层次继承,但不支持分布式继承
⑫对象特性->清晰的边界,良好定义的行为,可扩展性
⑬面向对象分析->认定对象,组织对象,描述对象间的相互作用,确定对象的操作,定义对象的内部信息
面向对象设计->识别类及对象,定义属性,定义服务,识别关系,识别包
⑭面向对象分析->抽取和整理用户需求并建立问题域精确模型
面向对象设计->定义软件对象和这些软件对象如何协作来满足需求
面向对象实现->采用面向对象程序设计语言实现系统
面向对象测试->根据规范说明来验证系统设计的正确性
面向对象的分析方法主要是建立三类模型->对象模型,动态模型,功能模型
编译过程
①编译程序中语法分析器接受以单词为单位的输入
算符优先法、LR分析法和递归下降法是几种常见的语法分析技术
LR分析法中LR(1)的分析能力最强,LR(0)的分析能力最弱
②编译程序不参与用户程序的运行控制,而解释程序则参与
③声明语句->符号表,可执行语句->转换成中间代码或目标代码
④语法分析阶段的输入是记号流
词法分析阶段->词汇,符号错误(程序不能识别的词汇/符号)
语法分析阶段->语法结构(不能执行)
语义分析阶段->句子含义(能执行,执行结果不一定是想要的)
目标代码生成阶段->动态语义错误(动态的在运行时才可确定)
包括陷入死循环,变量取零时做除数,引用数组元素下标越界
⑤编译器->先翻译后执行,用户程序运行效率高但可移植性差
解释器->边翻译边执行,用户程序运行效率低但可移植性好
⑥语义规则可以定义一个程序的意义
中间代码上传依据语义规则
⑦常用的中间形式有三元式,四元式,逆波兰式,树
⑧程序设计语言的大多数语法现象可用上下文无关法描述
⑨反编译不能把可执行文件还原成高级语言源代码,只能转换成功能上等价的汇编程序
文法
①后缀式利用栈进行求值
②有限自动机是进行词法分析的适当工具
分页管理
①逻辑地址->物理地址,先找到在第几页(都化成位数一样的二进制),再把页号转换成物理块号(页帧号)
[物理块和页的大小一致]
②请求页式存储管理方案中,当访问的页面不在内存时需要置换页面
最先置换访问位和修改位为00的,其次是访问位和修改位为01的
之后是访问位和修改位为10,最后才置换访问位和修改位为11的
旋转调度
①系统读取一个记录的时间=磁盘旋转一周的时间/逻辑记录数,记录处理时间常和磁盘旋转时间重叠
②磁盘容量分为格式化容量和非格式化容量
非格式化容量=面数*(每面的磁道数)*内圆周长*最大位密度
格式化容量=面数*(每面的磁道数)*(每磁道的扇区数)*(每扇区的字节数)
项目管理
①软件设计->体系结构设计,接口设计,数据设计和过程设计
②用于工作计划安排的评审和检查的是PERT图
③基本COCOMO->静态单变量
中级COCOMO->LOC
COCOMOⅡ基于功能点数量进行估算
④甘特图(Gantt图)能清晰地描述每个任务从何时开始,到何时结束
任务的进展情况以及各个任务之间的并行
⑤松弛时间,若节点在关键路径上,则松弛时间是0
若不在则用关键路径时间-通过此节点的最长时间路径
⑥软件文档的作用
提高能见度,开发效率,协调以后的软件开发,便于潜在用户了解软件
文档->针对性,精确性,清晰性,完整性,灵活性,可追溯性
⑦商业风险->公司的战略决策,市场环境,竞争对手
项目风险->预算和进度
开发风险->软件开发过程中的技术问题,资源不足,时间延误
人员风险->员工的技能,态度,离职率
⑧系统开发人员与项目管理人员沟通->系统开发计划
⑨沟通路径与项目成员的数量关系
m=n*(n-1)/2(m表示沟通路径数,n表示项目成员数)
测试策略
①黑盒测试方法包括因果图,有效等价类(找代表性数据)和边界值分析
②归纳法是从测试所暴露的问题出发
③系统测试主要是为了发现需求分析阶段的问题
④系统验收测试
验证测试,模拟环境下使用模拟数据
确认测试,实际环境下使用真实数据
审计测试证实系统没有错误并准备好了可以运行
⑤复杂度=封闭环路+1=边-节点+2
代码行数是度量软件复杂性的一个主要参数
⑥算法层->测试类中定义的每个方法
类层->测试封装在同一个类中的所有方法与属性之间的相互作用
模板层->测试一组协同工作的类之间的相互作用
系统层->把各个子系统组织完成的面向对象的软件系统,在组装过程中进行测试
⑦白盒测试原则
程序模块中的所有独立路径至少执行一次
在所有的逻辑判断中,取真和取假的两种情况至少都能执行一次
每个循环都应在边界条件和一般条件下各执行一次
测试程序内部数据结构的有效性
软件维护
①软件维护需要的时间比软件开发更长
②改正性维护,改正错误
适应性维护,出现变化需要修改
完善性维护,扩充和改善性能
预防性维护,为了适应未来,主动增加
③软件的可靠性->无失效运行的概率
软件的可用性->正确运行的概率
软件的可维护性->完成维护活动的概率
④3个部件串联的可靠度=R^3
3个部件并联的可靠度=1-(1-R)^3
⑤单元测试主要检查模块的五个特征->模块接口,局部数据结构,重要的执行路径,出错处理,边界条件
⑥功能测试检查软件是否能实现需求中指定的那些功能
性能测试是测试软件的安全性、精确性、速度和可靠性
回归测试用于识别在改正当前故障的同时可能会引入新的故障
验收测试是客户对系统进行测试以验证软件系统是否符合他们的需求
⑦方法重载通过静态绑定机制实现多态
⑧风险的优先级是根据风险暴露设定的
风险控制->风险回避,风险转移,风险保留,损失控制
⑨逆向工程工具属于软件维护工具
⑩防火墙不具备查毒功能
知识产权
①著作权自作品创作完成之日起产生
②在没有合同约定清楚的情况下,著作权属于受委托方
③专利保护期限->发明10年,实用新型20年,外观设计15年
④烟草,人类药品强制注册商标
⑤商标权的保护期是可以延长的
⑥利用商业秘密权可以对经营信息提供保护
⑦作品的发表权保护期为作者终生及其死后五十年
⑧开发软件所用的思想,处理过程,操作方法或者数学概念不受保护条例的保护
⑨在职或者离职一年内的发明都是公司的
软件工程
①起始阶段->项目的初创活动
精化阶段->需求分析和架构演进
构建阶段->产生实现模型
移交阶段->产生软件增量
②喷泉模型->面向对象开发,复用好,开发过程无间隙,节省时间
快速原型模型->用户需求不清,需求经常变化的情况
瀑布模型->需求明确或很少变更的情况
③基于构件的开发是指利用预先打包的构件来构造应用系统
构件可以是组织内部开发的构件,也可以是商品化成品软件构件
本质上是演化模型,需要以迭代方式构建软件
④敏捷统一过程->在大型上连续,在小型上迭代,采用UP阶段性活动
敏捷方法常用在->项目人数少,规模小,项目经常变更,高风险项目
⑤模块之间的接口设计是在概要设计阶段
⑥在设计模块M和模块N时,M和N通过简单数据参数交换信息是最佳的设计
⑦大规模项目不适合采用无主程序员组的开发人员组织形式
软件设计的启发规则->模式大小适中,提高模块的独立性
结构化开发
①结构化开发方法的生存周期划分与瀑布模型相对应
模型分析工作一般不包括模型的先进性分析
在结构化分析方法中,数据流图用于功能建模(描述系统的功能)/进行接口设计
E-R图(实体关系图)用于数据建模,状态转换图用于行为建模
结构图的深度是模块的层次数
②结构化方法把系统功能视作一个大的模块,Booch方法认为系统开发是一个螺旋上升的过程
③结构化分析方法在实施阶段强调的是分析对象的数据流
管道过滤器结构不适合交互处理应用
④每个加工至少有一个输入流和一个输出流
⑤结构化分析方法用数据流图,数据字典和加工说明来描述系统软件模型
⑥数据流图中有四个要素
外部实体(也称数据源或数据汇点)表示要处理的数据的输入来源或处理结果要送往何处
数据流表示数据沿箭头方向的流动
加工是对数据对象的处理或变换
数据存储在数据流中起到保存数据的作用
⑦数据流图的最上层是顶层图
数据流图中的元素在数据字典中进行定义
顶层数据流图描述了系统的输入与输出
IPO图用来表达模块的输入,输出和处理过程
⑧每个基本加工,必须有一个加工规格说明书
加工规格说明书必须描述把输入数据流变换为输出数据流的加工规
则
⑨无直接耦合->没有直接的关系
标记耦合->数据结构
外部耦合->软件之外的环境
内容耦合->通过非正常入口/直接访问
公共耦合->公共数据环境
数据耦合->传递的是简单的数据值
控制耦合->控制变量
模块应尽量做到高内聚低耦合
⑩偶然(巧合)内聚->没有任何联系
逻辑内聚->逻辑上相似的功能
过程内聚->按指定的过程执行
通信内聚->数据结构
模块的内聚性最高的是功能内聚
数据库
①数据库的基本表对应概念视图(模式),存储文件对应内部视图(内模式),视图对应用户视图(外模式)
②多对多的联系需要转换成独立的关系模式
③在数据库的逻辑结构设计阶段
需要需求设计阶段形成的需求说明文档,数据字典和数据流图作为设计依据
④共享锁->共享锁释放前,其他事务只能对其添加共享锁
排他锁->排他锁释放前,其他事务不能再对其添加任何锁
⑤共享性->不同结点数据共享
自治性->结点独立管理自己的数据
可用性->场地故障时,可调用其他场地的副本
⑥OLAP->多维数据分析
⑦Web访问数据库->JDBC技术
⑧外部实体->组织机构,人员,第三方系统
候选码->能够唯一表示一个元组(数据表中的一行)
主键->任意一个候选码
主属性->包含在候选码中的属性
外键->其他数据表的主码
δ->选择->选择符合条件的元组(这里数字表示列,带引号的是字符)
π->投影->提取对应的列的元组
⋈->自然连接(⋈下面没有条件)
自然连接的属性列数->把R和S中重复的列去除
自然连接的元组数->找R和S重复的列中,完全一样的元组
自然连接后能得到所有列,即为无损连接
候选关键字->直接求选项的闭包,一个一个试
第一范式->所有属性都不可再分
第二范式->不存在非主属性对候选码的部分函数依赖
第三范式->不存在非主属性对候选码的传递函数依赖
(伪传递率->若X→Y,WY→Z,则WX→Z)
- 字母带T的,只有TFTP是属于UDP的,不带T的,只有POP3属于TCP
- 活动图
大题
数据流图
①实体名称->名词(大多数情况是人),直接在0层数据流图上找,先找数据流少的
②数据存储名称->读/写的对象(大多数情况是物),直接在0层数据流图上找,先找数据流少的
(记录表,信息表,文件,数据)
③(补充缺失的)数据流的名称及起点和终点
(起点和终点中至少有一个是加工P)
第一步->加工至少有1个输入数据流和1个输出数据流
第二步->父图子图平衡
第三步->看图上的加工和文本说明,对照着找
④数据流组成(名词)->文本说明中找对应名词的详细信息(缩写)
⑤分解子加工(动词)->文本说明中找对应名词的详细信息(缩写)
⑥加工需要注意三个常见错误
加工有输入但是没有输出
加工有输出但是没有输入
加工的输入不足以产生输出
⑦两个建模图如何保持数据流图平衡
父图中某加工的输入输出数据流必须与子图的输入输出数据流在数量和名字上相同
父图中的一个输入(或输出)数据流对应子图中几个输入(或输出)数据流
而子图中组成这些数据流的数据项全体正好是父图中的这一条数据流
⑧结构化语言描述(接收xxx请求/信息)
IF 条件
THEN 内容
ELSE 内容
ENDIF
E-R图
①弱实体->弱实体依赖于其他实体而存在->(双边矩形)
子实体->其他实体的子类->(矩形里有两道丨)
②简单属性->不可再分的属性
复合属性->可以再分的属性
③联系常用词->属于,管理
④联系类型->1:1 1:* *:*
⑤联系向关系模式的转换
(能唯一确定一个元组的就是主键,其他人的主键就是外键)
一对一联系转换
方法1->联系名称(实体主键,另一个实体的主键)
方法2->实体名称(实体主键,属性,另一个实体的主键)
一对多联系转换
方法1->联系名称(实体主键,另一个实体的主键)
方法2->实体名称(实体主键,属性,另一个实体的主键)
[方法2必须是联系为1的那个实体的主键归并到联系为多的那个实体]
多对多联系转换->联系名称(实体主键,另一个实体的主键)
三个实体的多对多联系转换->联系名称(实体主键,另一个实体的主键,另一个实体的主键)
父类实体和子类实体的转换->把父类实体的主键加到子类实体
⑥存在问题->存在冗余,修改操作的不一致,以及插入异常和删除异常
UML关系
①关系
聚集[─◇]
组合[─◆]
关联[─>]->整体和部分间的结构关系
依赖[┈>]->一个类的实现需要另一个类的协助
泛化(一般和特殊)[─▷]->父类和子类之间的关系
extend->扩展
include->类似依赖,必须做完B才能做A
②关系说明
include表示包含关系,含义为如果系统用例较多,不同的用例之间存在共同行为
可以将这些共同行为提取出来,单独组成一个用例,当其他用例使用这个用例时,它们就构成了包含关系
extend表示扩展关系,含义为在用例的执行过程中
可能出现一些异常行为,也可能会在不同的分支行为中选择执行
这时可将异常行为与可选分支抽象为一个单独的扩展用例
这样扩展用例与主用例之间就构成了扩展关系
一个用例常常有多个扩展用例
generalization表示泛化关系,含义为子用例将继承基用例的所有行为关系和通信关系
也就是说在任何使用基用例的地方都可以用子用例来代替
在组合关系中,整体对象与部分对象具有同一的生存周期
当整体对象不存在时,部分对象也不存在,而聚合关系中,整体对象与部分对象没有这样的要求
③模式说明
Composite模式->以树形结构表示类之间的“部分-整体”关系
使得对单个对象和组合对象的使用具有一致性
④英语单词
Button按钮 Widget窗口小部件
Java
①关键字
interface 接口 抽象方法的集合
implements+接口 实现某个接口的功能
extends+类 继承某个类
arraylist<元素> 动态数组 list<元素> 集合
②常见单词
concrete具体的 build生成 get读出 set写入
children 子类 null 空 behavior 特征
③抽象类不一定有抽象方法,有抽象方法的一定是抽象类
④接口中的方法,public和abstract可以省略不写
判断接口中的方法,就要找具体实现这个接口的类的方法
接口内一定没有concrete方法
接口不能new,可以new接口的子类
⑤构造方法(单词+单词)一般是子类独有的(不一定必须是)
⑥父类名 对象名=new 子类名()
⑦组合模式填修饰符,一般是protected(图中属性前有#)
⑧调用其他类里的方法要用类名.方法()
⑨抽象方法没有方法体
算法
①大顶堆的构建
从最后一个非叶子结点(数组长度/2再-1)开始从下往上调整
重复多次,直到每个二叉树的左右子树都小于其父节点
②时间复杂度->看有几个for,空间复杂度->几元数组
③n皇后->回溯法
哇哦