上午题总结-错题

计算题

  1. 芯片计算: bit与Byte是完全不同的东西,1KB=1024B, 1B也就是一个字节,是8位.  所以1KB=1024*8位=8192位.
  2. 位示图计算: 1位 = 1个物理块. 总容量/单个容量=多少块, 即多少位. 如果需要转换为字 一般情况 1字=8位(1B=8b), 高性能pc可能128位. 即总块数/比例=多少字

计算机基础

  1. 机器指令编写的程序可以由微程序解释
  2. RAID5 容量 = (总盘 - 1) * 最小磁盘容量
  3. PPTP -> 数据链路. SSH -> 应用层. IPSec -> 网络层. Socks -> 会话层
  4. C类网络地址. 后8位是主机位. 2^8-2=254
  5. DHCP 自动生成169.254.xx.xx
  6. DNS: 【A记录】-> IPV4. MX记录 -> 邮件. CNAME -> 别名. 【AAAA】-> IPV6
  7. 逻辑地址对应块数 * 单页大小 = 物理地址
  8. 虚拟存储: 基于【非连续分配】,【不受外存内存】容量限制, 由CPU寻址范围决定
  9. 字号/位号. (块号 + 1) / 字长 = 商-1 -> 字号. 余-1 ->位号
  10. ip地址32位, 末尾的/26表示前26位是网络前缀, 后6位表示主机个数2^6 - 2= 62位. 地址范围是 (第4位+1) ~ (第四位+62)
  11. (想象打印机)进程【有纸无任务】就是就绪状态 -> 打印开始运行 完成继续就绪 打印后【无纸就阻塞】 阻塞后无法自动运行 【必须放纸】后就绪

网络通信

  1. 单工: 数据只在一个方向传输. 电视/广播
  2. 半双工: 2个方向, 但只存在一个, 对讲机
  3. 全双工: 2个方向同时, 电话
  4. ip转mac是arp协议 mac转ip是marp协议
  5. 常见端口
    POP3: 110
    FTP: 21/21
    Telnet: 23 23学的这个命令
    HTTP: 80
    SMTP: 25
    DHCP: 67 订火车票
    TFTP: 69 tft屏幕
    SNMP: 161 nm 竖线多 11
    DNS: 53

软件工程

  1. 结构化方法: 【面向数据流】特点: 软件功能的分解和抽象。先把系统功能视作一个大的模块, 再对其进行【模块分解或组合】。
  2. Booch方法: 开发是一个螺旋上升的过程,每个周期包括4个步骤,分别是标识类和对象、确定类和对象的含义、标识关系、说明每个类的接口和实现。
  3. 微内核结构: 进程调度及消息通信在核心态, 其他服务在用户态.
  4. 并发数资源 = 并发数 * (需要进程 - 1) + 1
  5. 模块独立: 弱->强: 偶然 -> 逻辑 -> 时间 -> 过程 -> 通信 -> 顺序 -> 功能 【巧逻4过通顺功】
  6. 测试覆盖: 语句(if测试一边) -> 条件(if测试2边) -> 判定(条件 + 最大最小) -> 路径(所有路径)
  7. 模块耦合 ↓ (书记控制外部公共内容)
    无直接
    数据: 基本数据
    标记: 对象标记, 数据结构. 简单组合数据传输, 不影响决策
    控制: 控制开关行为, 干扰对方决策
    外部: 外部通信
    公共: 公共数据库
    内容: 对方全部内容, 直接访问对方数据
  8. 测试分层:
    算法层: 类中定义的每个方法 –单元测试
    类层: 同个类的所有方法属性关系 –模块测试
    模块层: 一组类的关系 –集成测试
    系统层: 各子系统组装测试 –组装测试

可维护 测试/分析/改变/稳定

  1. 正确性: 运行时正常
  2. 适应性: 外部环境发生改变
  3. 完善性: 更多功能
  4. 预防性: 未来可能发生

模型

  1. 瀑布模型: 一步一步的走下去, 【需求明确】或者【二次开发】. 有风险.
  2. V模型: 【测试】贯穿开发.
  3. 原型模型: 【需求不明确】. 迭代思想.
  4. 螺旋模型: 多个模型混合, 【增加风险分析】
  5. 增量模型: 【先开发核心功能】, 再开发简单功能. 不利于模块划分, 每次增量可独立操作.
  6. 喷泉模型: 【用户需求】为动力, 对象作为驱动模型
  7. CBSD: 构件
  8. 形式化方法: 基于数学基础.

开发方法

  1. 结构化开发: 流程固定, 需求明确, 自顶向下, 面向数据流.
  2. Jsckson: 面向数据结构, 适合小项目
  3. 原型方法: 需求不明确
  4. 面向对象: 强调复用, 构件组装模型

敏捷开发

  1. 针对中小项目.
  2. 结对: 一个开发一个看.
  3. 自适应: 强调适应性, 开发方法为什么具备适应性
  4. 水晶: 每个项目都需要不同策略/ 约定/ 方法
  5. 特性驱动: 中小项目, 模型驱动
  6. 极限编程: 测试先行
  7. 并列争球: 迭代增量过程

成功的测试是发现了新错误.

数据库

  1. 视图 -> 外模式, 表 -> 模式, 存储文件 -> 内模式

事务管理

  1. 原子性: 要么全做, 要么全不做
  2. 一致性: 数据不会因为事务的执行而被破坏.
  3. 隔离性: 事务执行不能被其他事务干扰
  4. 持久性: 一旦提交, 改变是永久的

算法

二叉树遍历

  1. 中序: 左根右: 先找最左, 按左根右的顺序走, 如果左子存在节点. 再遍历替换
  2. 前序: 跟左右: 从根出发 , 找到所有左子, 再切到右边
  3. 后序: 左右根 先做最左, 再找最右
  4. 层序: 上到下, 左到右

哈夫曼编码

  1. 构造: 先取最小的2个 得到和, 再取2个最小的, 如果一大一小, 取小与和组合, 如果都小或都大, 则自己组合. 放在和的一侧,
  2. 编码: 左0右1, 从顶点处方, 数路径

深度优先搜索序列

  1. 拿选项从图中移动, 完全按箭头方向表示正确