Java 基础(十二) 流
1. 流的基础类
InputStream
OutputStream所有的输入、输出都基于这两个类. 这两个类的操作很有限, 都是字节( byte )层面的读写.注: Java 中 char 为两个字节 ( \u0000~\uFFFF ), byte 为一个字节 (-128 ~ 127).
12345678910111213141516package hello;import java.io.IOException;public class Main { public static void main(String[] args) { byte[] buffer = new byte[1024]; try { int len = System.in.read(buffer); String s = new String(buffer,0,len); System.out.println("读到了"+len+"字节"); ...
计算机组织结构(一) 数的二进制表示
📚 文档目录合集-数的二进制表示-定点运算-BCD 码-浮点数四则运算-内置存储器-Cache-外存-纠错-RAID-内存管理-总线-指令集: 特征- 指令集:寻址方式和指令格式
二进制补码整数补数:负数加模得补数,负数的补数和负数的绝对值相加等于模
浮点数小密 大稀疏
Java 基础(十一) 异常
1. 捕获异常的机制1234567try { //可能产生异常的代码} catch (Type1 id1) { //处理 Type1 异常的代码} catch (Type2 id2) { //处理 Type2 异常的代码}
异常机制的最大好处: 清晰地分开了处理正常的业务逻辑代码和遇到情况时的代码Java 中用try{}来包裹可能出现异常的代码块, 并用 catch(Type id){}捕捉并处理异常.
流程图
2. 捕捉到的异常在 catch(type id){}的代码块中, 可以调用 id 的 一些方法, 比如getMessage(), printStackTrace() 来获得相关的信息.如果在当前层面上无法全部处理, 可以通过 throw 再次将异常抛向上一层
有风险、可能会抛出异常的代码
1234567//必须声明它会抛出 BadExceptionpublic void takeTisk() throws BadException ...
计算机组织结构(三) BCD 码
📚 文档目录合集-数的二进制表示-定点运算-BCD 码-浮点数四则运算-内置存储器-Cache-外存-纠错-RAID-内存管理-总线-指令集: 特征- 指令集:寻址方式和指令格式
每 4 位二进制数表示十进制的一位数
加法:由于真值的进位是 10,而 BCD 码的进位是 16,所以在真值产生进位的时候需加 6 强制进位.
减法:类似于补码减法. BCD”补码”与原码相加得 9.若结果是负数(“补码”表示),需转化成负号+原码的形式.
计算机组织结构(四) 浮点数四则运算
📚 文档目录合集-数的二进制表示-定点运算-BCD 码-浮点数四则运算-内置存储器-Cache-外存-纠错-RAID-内存管理-总线-指令集: 特征- 指令集:寻址方式和指令格式
浮点数的加减运算$X=X_S \times 2^{X_E},Y=Y_S \times 2^{Y_E}$
步骤
检查是否为零
阶码对齐,尾数移位
对尾数加或减
标准化结果
溢出判断
对阶
求阶差$\Delta E=\begin{cases} =0,已经对齐\\ne0,\begin{cases}大的向小的对齐:减小较r大的阶码,同时扩大其尾数\小的向大的对齐:增大较小的阶码,同时减小其尾数 \end{cases} \\end{cases}$在计算机中,尾数左移可能会使最高位数据丢j失,故采用小阶向大阶对齐
浮点数加减的过程
一些溢出情况1. Exponent overflow
一个正的指数超出了指数的最大值(即127)
指定为$-\infty 或 +\infty$
2. Exponent underflow
一个负的指数小于了指数的最小值(即-126)
指定为0.
3. Signi ...
计算机组织结构 合集
📖 本笔记参考计算机组织结构课程的课件, 由于时间关系, 后期缺失部分内容
📚 文档目录合集-数的二进制表示-定点运算-BCD 码-浮点数四则运算-内置存储器-Cache-外存-纠错-RAID-内存管理-总线-指令集: 特征- 指令集:寻址方式和指令格式
系统概述
指令和数据在关机时储存在外存中,开机后存储在内存
冯·诺依曼计算机工作方式的基本特点是按地址访问指令并自动按序执行程序
指令由操作码和地址码组成
控制器通过执行指令来控制整个机器运行
注意对存储器来讲,例如 $32K\times16位$的存储器意为,该存储器为 16 位可寻址, 共有 32K 个存储单元, 若对于芯片来讲,不能得到什么信息
结构 ( Architecture ) :对程序员可见
对于程序的逻辑执行有着直接影响
例如: 该计main算机有无乘法器
组织 ( Organization ) : 对程序员不可见
操作单元及其相互联系
该计算机中的乘法器是如何实现的
Stored Program: 意为将指令、数据以二进制的方式存储到主存中.摩尔定律: 每 18 个月,晶体管的数量增加一倍,价格下降 ...
计算机组织结构(五) 内置存储器
📚 文档目录合集-数的二进制表示-定点运算-BCD 码-浮点数四则运算-内置存储器-Cache-外存-纠错-RAID-内存管理-总线-指令集: 特征- 指令集:寻址方式和指令格式
Memory存储器由一定数量的单元构成,每个单元可以被唯一标识,每个单元都有存储一个数值的能力.
地址:单元的唯一标识符(采用二进制).
地址空间:可唯一标识的单元总数.
寻址能力: 存储在每个单元中的信息的位数
大多数存储器是字节可寻址的,执行科学计算的计算机通常是64位寻址的.
半导体存储器
主存中广泛地运用了半导体芯片.
Memory Cell:半导体主存的基本元素.
特性:
它们展示了两种稳定(半稳定)的状态,可以用于表示二进制0和1.
能够被写入至少一次.
可以被读.
半导体存储器类型
RAMRAM
Random-Access Memory
Characteristics
易于读/写且快速
易失(断电丢失数据)
类型
DRAM:Dynamic RAM
SRAM:Static RAM
DRAM
以电容器上的电荷来存储数据
电容器中是否存有电荷被解释称二进制1和0
...
计算机组织结构(七) 外存
📚 文档目录合集-数的二进制表示-定点运算-BCD 码-浮点数四则运算-内置存储器-Cache-外存-纠错-RAID-内存管理-总线-指令集: 特征- 指令集:寻址方式和指令格式
特点
大容量,非常用
非易失性
类型
磁盘
光盘
磁带
U盘,SSD
磁盘
磁盘是一种由非磁性材料制成的称为衬底的圆盘,其上涂有一层磁性材料.
衬底材料: 铝合金,铝,玻璃..
玻璃衬底的优点:
改善磁层表面的均匀性,增加磁盘的可靠性.
显著减少整个表面的缺陷,有助于减少读写错误.
支持更低的飞行高度.
更好的刚度,降低了磁盘的动力需求.
更好的耐冲击和耐磨损能力.
分类:
软盘
硬盘
物理特性
采用可移动磁头,每面只有一个读-写头.磁头固定在支架上,支架可以伸缩,使磁头可以定位到任意磁道.
任何时候,所有的磁头都定位在磁道上,所有的磁道都是同心圆.
磁盘上相对位置相同的所有磁道的集合称为柱面.
读写机制
读-写是通过一个叫做磁头的导电线圈进行的.
读写期间,磁头静止不动,盘片高速旋转
头的数量:
单: 读写共用一个头.用于软盘, 老式硬盘.
双: 单独的读,写头.用于现代 ...
计算机组织结构(六) Cache
📚 文档目录合集-数的二进制表示-定点运算-BCD 码-浮点数四则运算-内置存储器-Cache-外存-纠错-RAID-内存管理-总线-指令集: 特征- 指令集:寻址方式和指令格式
为什么需要 cache?
因为 CPU 比 内存的速度要快得多.`
基本思路
使用较小, 较快的 Cache 和相对较大,更为缓慢的 Memory
Cache 中包含了 Memory 中数据的副本
Cache 位于中央处理器和存储器之间,并可以被集成在 CPU 或者作为主板上的一个模块.
Cache 工作的原理
Check :当处理器试图读取内存中的一个字的时候,会先检查该字是否在 Cache 中.
Hit : 如果确实在, 这个字被传送给处理器.
Miss : 否则,由一定数量的字组成的一块( block )主存中的数据 被读入 Cache ,然后传给处理器.
时间局部性:未来将要使用的信息(指令和数据), 可能是现在正在使用的信息.
空间局部性:未来将要使用的信息, 很可能与正在使用的信息在存储空间上是邻近的(比如遍历一个一维数组).
判断 Hit 与 Miss
冯诺依曼计算机的设计:内存中 ...
计算机组织结构(八) 纠错
📚 文档目录合集-数的二进制表示-定点运算-BCD 码-浮点数四则运算-内置存储器-Cache-外存-纠错-RAID-内存管理-总线-指令集: 特征- 指令集:寻址方式和指令格式
基本思想
方法: 添加一些位来存储附加信息以便校正
过程:
读入:$M$ 位的数据 $D$ 通过函数 $f$ 产生 $K$ 位的校验码 $C$
被读出:通过 $f$ 由$D’$ 生成 $C’’$与 $C’$ 相比较
无错误: 发送 $D’$
有错误并可以纠正,发送 $D’’$
有错误且不能纠正, 报告
奇偶校验法
过程$D=D_M…D_2D_1$
奇校验: $D_M \oplus …D_2 \oplus D_1 \oplus 1$
偶校验: $D_M \oplus …D_2 \oplus D_1$
检查 $S=C’ \oplus C’’$
$S=1$ 错误的位数为奇数
$S=0$ 错误的位数为偶数或者无错误
注意: 此处是指$C$与$D$合在一起
优势:
廉价
劣势:
无法确定出错的位置
无法纠正错误
适用于较短的 $D$
汉明码
基本思想:
将数据的位分组, 每位都分到多个 ...
