- 一、计算机组成原理
- 二、面对对象
- 二.1、设计模式
- 三、软件工程
- 四、操作系统
- 五、数据结构
- 六、算法
- 六、计算机网络
一、计算机组成原理
1.浮点数的表示数值范围
如果浮点数的阶码(包括1位阶符)用R位的移码表示,尾数(包括1位数符)用M位的补码表示,则浮点数表示的数值范围如下。
那说明这种题目选择的时候,负数正常数字,正数组合数字,并且指数都不是2的倍数
2.计算机
1.由硬件自动完成Cache与主存之间的地址映射
2.cache命中率关键因素:程序的行为、cache的容量、组织方式、块的大小有关
cache容量越大,命中率越高,最后趋于稳定
对于给定的Cache容量,当块大小增加时,命中率开始时处于上升趋势,后来反而会下降。
1.动态绑定是实现多态的基础。
2.封装的作用是把属性和服务结合成一个独立的系统单元,并隐藏对象的内部细节;而继承则使得子类可以自动拥有父类的全部属性和服务;消息则是对象发出的服务请求;多态是指面向对象中由重载或过载机制实现的结果。
3.面向对象设计中存在很多原则,其中高层模块不应该依赖于底层模块就是其中一条。传统的结构化设计中,一般的髙层模块需要调用或使用底层模块,导致高层模块必须依赖于底层模块,但借助面向对象中的抽象类、接口等一系列机制,可以使得高层模块仅仅和接口耦合,而和实际的底层模块没有直接关联。
1.观察者模式,有observer应该就是
4.单例设计模式的目的就是保证一个类仅能够生成一个对象;组合设计模式则用于表示“部分-整体”的层次结构,并且对部分和整体的使用具有一致性;装饰设计模式则动态地给一个对象增加一些额外的职责,无须改变类的设计和实现。
三、软件工程1.结构化设计
体系结构设计:主要是指要开发的系统中包含哪些部件,这些部件与部件之间的关系就是体系结构的设计。(部件关系)
数据设计:也称为数据库设计,主要包含数据库的设计和这个数据所包含的核心表的设计。(数据库)
接口设计:用于子系统和模块之间或者内部系统和外部系统之间的各种交互,如功能描述,输入输出的定义,错误处理的设计。
过程设计:也称为模块详细设计,主要是详细模块的实现算法,以及模块所使用的数据结构。(算法,数据结构)
2.敏捷开发方法。
极限编程XP:近似螺旋的开发方法,把整个开发过程分解为相对比较小而简单的周期,通过大家积极的沟通反馈,开发人员和客户都比较清楚当前的开发进度、需要解决的问题等等,根据这些实际情况去调整开发过程,这是极限编程的思想。
水晶法:不同的项目需要不同的开发方法。
并列并列争球法:迭代,设立了一个周期。
1.信号量+前趋图的题目
第一步:先标信号量。第二步:起始位置是V,指向位置是P 结束
1.链表存储方式 只要改变了链表的值应该就是最不方便的算法
2.程序员申请和释放空间,数据空间必须采用堆存储分配策略
稳定:冒插归基
O(n^2):直接冒
:堆快并
直接插入:和打牌比较像,选定一张牌,然后一直加牌排序一样
快速排序:就是找一个数为基数,如果从小到大,按顺序比,小的都在这个数的右边,大的到左边



