摘要: 依赖倒置原则(DIP) 高层模块(稳定)不应该依赖于底层模块(变化),二者都应该依赖于抽象(稳定)。 抽象不应该依赖于实现细节(变化),实现细节应该依赖于抽象(稳定)。 开放封闭原则(OCP) 对扩展开放,对更改封闭 类模块应该是可扩展的,但是不可修改。 单一职责原则(SRP) 一个类应该仅有一个引 阅读全文
posted @ 2020-06-09 15:05 每天都要吃早饭 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2020-06-08 21:50 每天都要吃早饭 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 操作系统作为系统资源的管理者,当然也需要对内存进行管理,要管理些什么呢? 操作系统负责内存空间的分配与回收; 内存空间的扩展:操作系统需要提供某种技术从逻辑上对内存进行扩充; 地址转换:操作系统需要提供地址转换功能,负责程序的逻辑地址与物理地址的转换。 内存保护。 内存空间的扩展 覆盖技术:解决程序 阅读全文
posted @ 2020-06-08 21:22 每天都要吃早饭 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 1 #include<iostream> 2 #include<time.h> 3 #include<stdlib.h> 4 #include<sys/timeb.h> 5 using namespace std; 6 7 const int Max = 9999; 8 9 void swap(in 阅读全文
posted @ 2020-06-01 20:07 每天都要吃早饭 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 软件设计复杂的根本原因: 客户需求的变化 技术平台的变化 开发团队的变化 市场环境的变化 如何解决复杂性: 分解(面向过程->函数?) 人们面对复杂性有一个常见的作法:即分而治之,将大问题分解为多个小问题,将复杂问题分解为多个简单问题; 抽象 更高层次来讲,人们处理复杂性有个通用的技术,即抽象。由于 阅读全文
posted @ 2020-06-01 16:18 每天都要吃早饭 阅读(127) 评论(0) 推荐(0) 编辑
摘要: islower(char c) 是否为小写字母isupper(char c) 是否为大写字母isdigit(char c) 是否为数字isalpha(char c) 是否为字母isalnum(char c) 是否为字母或者数字toupper(char c) 字母小转大tolower(char c) 阅读全文
posted @ 2020-06-01 14:45 每天都要吃早饭 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 思考:连续分配的缺点? 【1】固定分区分配:缺乏灵活性,会产生大量的内部碎片,内存的利用率低; 【2】动态分区分配:会产生很多的外部碎片,虽然可以用紧凑技术来处理,但是紧凑的时间代价更高; 结论:这些缺点产生的根本原因在于进程要求占用连续的一整个内存空间; 想法:如果允许将一个进程分散的装入到许多不 阅读全文
posted @ 2020-06-01 10:06 每天都要吃早饭 阅读(738) 评论(0) 推荐(0) 编辑
摘要: 解决问题:在动态分区分配方式中,当很多个空闲分区都能满足需求时候,应该选择哪个分区进行分配? 【1】首次适应 算法思想:从头到尾找合适的分区; 分区排列顺序:空闲分区以地址递增次序排列; 优点:综合性能最好。算法开销小,回收分区后一般不需要对空闲分区队列重新排序; 【2】最佳适应 算法思想:优先使用 阅读全文
posted @ 2020-06-01 09:17 每天都要吃早饭 阅读(1046) 评论(0) 推荐(0) 编辑
摘要: 内部碎片:分配给某些进程的内存区域中,如果有些部分没有用上; 外部碎片:是指内存中的某些空闲分区由于太小而难以利用; 【1】单一连续分配 只支持单道程序,内存分为系统区和用户区,用户程序放在用户区 无外部碎片 【2】固定分区分配 支持多道程序,内存用户空间分为若干固定大小的分区,每个分区只能装一道作 阅读全文
posted @ 2020-05-31 10:28 每天都要吃早饭 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 必须要明白的: 分治法+挖坑填数; 分治法:大问题分解成各个小问题,对小问题求解,使得大问题得以解决。 1 #include<iostream> 2 #include<time.h> 3 #include<stdlib.h> 4 #include<sys/timeb.h> 5 using names 阅读全文
posted @ 2020-05-30 20:51 每天都要吃早饭 阅读(228) 评论(0) 推荐(0) 编辑