A. 计算机是如何通过内存进行数据的存储
首先,需要由一些半导体组成门电路,可以完成与、或、异或等电路逻辑。
然后,由门电路组成一个基本的存储单元,这个存储单元可以稳定地保持低电平和高电平两个状态(0和1),这就是内存的一个bit
最后,把大量的这种存储单元组成阵列,通过纵横方向的控制电路来控制每个bit的电平状态,用来表示0和1,从而实现信息的存储。
物理介质上,所有这些存储单元是被蚀刻在硅片上,做成各种封装好的内存芯片(内存颗粒),再由厂家制作内存条电路板,把若干这样的芯片集中在一块板子上,成为内存条。
大体就是这样。
B. 内存的数据存储机制
1.寄存器(register)。这是最快的存储区,寄存器的数量极其有灶陵限,所以寄存器由
编译器
根据需求进行分配,你不能
直接控制
。
2.堆栈(Stack)。位于通用RAM(
random-access
memory,
随机访问存储器
)中,通过它的“
堆栈指针
”可以从处理器那里获得。堆栈指针若向
下移动,则分配新的内存空间,若向上移动,则
释放内存
。创建程序时,
Java编译器
必须知道存储在堆栈内所有数据的大小洞辩液和生命周期,
因为它必须生成相应的代码,以便上下移动堆栈指针。由于约束性质,所以一般存储的是Java的
对象引用
和变量。
优点:快速分配的存储,仅次于寄存器。
缺点:限制了程序的灵活性。
3.堆(heap)。通用性
内存池
,用于存放所有的Java对象。堆的好处是:编辑器
不需要知道
堆里要分配多少
存储区域
,也
不必知道
存储的数
据在堆里的存活多长时间。在Java中,创建一个对象,只需要用new,当执行这行代码,会自动在堆里进行存储分配。
优点:在堆里分配存储有很大的灵活性。
缺点是:用堆进行存储分配比用堆栈进行存储需要更多的时间。
4.静态存储(static
storage)。是指在固定位置(也在RAM里)。静态存储里存放程序运行时
一直存在
的数据。通常是Java的纳物
静态变量
,但
Java对象本身从来不会放在静态存储空间里。
5.常量存储(constant
storage)。通常是存放在ROM(read-only
memory,
只读存储器
)中,因为常量本身他们永远不会被改变。
C. 内存卡是怎样存储数据的
存储卡宽世樱是一种固态产品,也就是工作时没有 运 动部件。存储卡采用闪存(flash)技术,是一种稳定的存储解决方案,不需要电池来维持其中存储的数据。对所保存的数据来说,存储卡比传统的磁盘驱动器安全性和保护性都更高;比传统的磁盘驱动器及Ⅲ型PC卡的可靠性高5到10倍,而且存储卡的用电量仅为小型磁盘驱动器的5%左右。存储卡工作时一般采用逻辑寻址方式,它没有返蚂磁头和磁道的转换操作,因此在访问连续扇区时,操作速度比磁盘的物理寻址方式速度快。慎丛
D. 数据在内存中是如何存储的
计算机要处理的信息是多种多样的,如数字、文字、符号、图形、音频、视频等,这些信息在人们的眼里是不同的。但对于计算机来说,它们在内存中都是一样的,都是以二进制的形式来表示。
要想学习编程,就必须了解二进制,它是计算机处理数据的基础。
内存条是一个非常精密的部件,包含了上亿个电子元器件,它们很小,达到了纳米级别。这些元器件,实际上就是电路;电路的电压会变化,要么是 0V,要么是 5V,只有这两种电压。5V 是通电,用1来表示,0V 是断电,用0来表示。所以,一个元器件有2种状态,0 或者 1。
我们通过电路来控制这些元器件的通断电,会得到很多0、1的组合。例如,8个元器件有 28=256 种不同的组合,16个元器件有 216=65536 种不同的组合。虽然一个元器件只能表示2个数值,但是多个结合起来就可以表示很多数值了。
我们可以给每一种组合赋予特定的含义,例如,可以分别用 1101000、00011100、11111111、00000000、01010101、10101010 来表示 C、语、言、中、文、网 这几个字,那么结合起来 1101000 00011100 11111111 00000000 01010101 10101010 就表示”C语言中文网“。
一般情况下我们不一个一个的使用元器件,而是将8个元器件看做一个单位,即使表示很小的数,例如 1,也需要8个,也就是 00000001。
1个元器件称为1比特(Bit)或1位,8个元器件称为1字节(Byte),那么16个元器件就是2Byte,32个就是4Byte,以此类推:
8×1024个元器件就是1024Byte,简写为1KB;
8×1024×1024个元器件就是1024KB,简写为1MB;
8×1024×1024×1024个元器件就是1024MB,简写为1GB
现在,你知道1GB的内存有多少个元器件了吧。我们通常所说的文件大小是多少 KB、多少 MB,就是这个意思。
单位换算:
1Byte = 8 Bit
1KB = 1024Byte = 210Byte
1MB = 1024KB = 220Byte
1GB = 1024MB = 230Byte
1TB = 1024GB = 240Byte
1PB = 1024TB = 250Byte
1EB = 1024PB = 260Byte
我们平时使用计算机时,通常只会设计到 KB、MB、GB、TB 这几个单位,PB 和 EB 这两个高级单位一般在大数据处理过程中才会用到。
你看,在内存中没有abc这样的字符,也没有gif、jpg这样的图片,只有0和1两个数字,计算机也只认识0和1。所以,计算机使用二进制,而不是我们熟悉的十进制,写入内存中的数据,都会被转换成0和1的组合。
E. 内存条存储数据的原理
内存的存储原理
内存,英文名为RAM(Random Access Memory),全称是随机存取存储器。主要的作用就是存储代码和数据供CPU在需要的时候调用。但是这些数据并不是像用木桶盛水那么简单,而是类似图书馆中用有格子的书架存放书籍一样,不但要放进去还要能够在需要的时候准确的调用出来,虽然都是书但是每本书是不同的。对于内存等存储器来说也是一样的,虽然存储的都是代表0和1的代码,但是不同的组合就是不同的数据。让我们重新回到书和书架上来。
如果有一个书架上有10行和10列格子(每行和每列都有0~9编号),有100本书要存放在里面,那么我们使用一个行的编号和一个列的编号就能确定某一本书的位置。如果已知这本书的编号36,那么我们首先锁定第3行,然后找到第6列就能准确的找到这本书了。
在内存中也是利用了相似的原理现在让我们回到内存上,对于它而言数据总线是用来传入数据或者传出数据的。因为存储器中的存储空间是如果前面提到的存放图书的书架一样通过一定的规则定义的,所以我们可以通过这个规则来把数据存放到存储器上相应的位置,而进行这种定位的工作就要依靠地址总线来实现了。
对于CPU来说,内存就像是一条长长的有很多空格的“线”,每个空格都有一个唯一的地址与之相对应。如果CPU想要从内存中调用数据,它首先需要给地址总线发送地址数据定位要存取的数据,然后等待若干个时钟周期之后,数据总线就会把数据传输给CPU。当地址解码器接收到地址总线送来的地址数据之后,它会根据这个数据定位CPU想要调用的数据所在的位置,然后数据总线就会把其中的数据传送到CPU。
CPU在一行数据中每次知识存取一个字节的数据。会到实际中,通常CPU每次需要调用64bit或者是128bit的数据(单通道内存控制器为64bit,双通道为128bit)。如果数据总线是64bit的话,CPU就会在一个时间中存取8个字节的数据,因为每次还是存取1个字节的数据,64bit总线将不会显示出来任何的优势,工作的效率将会降低很多。这也就是现在的主板和CPU都使用双通道内存控制器的原因。
F. 内存卡如何存储信息
内存卡存储信息的原理。
闪存(Flash Memory)是一种长寿命的非易失性(在断电情况下仍能保持所存储的数据信息)的存储器,数据删除不是以单个的字节为单位而是以固定的区块为单位(注意:NOR Flash 为字节存储),区块大小一般为256KB到20MB。闪存是电子可擦除只读存储器(EEPROM)的变种,EEPROM与闪存不同的是,它能在字节水平上进行删除和重写而不是整个芯片擦写,这样闪存就比EEPROM的更新速度快。由于其断电时仍能保存数据,闪存通常被用来保存设置信息,如在电脑的BIOS(基本输入输出程序)、PDA(个人数字助理)、数码相机中保存资料等。另一方面,闪存不像RAM(随机存取存储器)一样以字节为单位改写数据,因此不能取代RAM。
闪存卡(Flash Card)是利用闪存(Flash Memory)技术达到存储电子信息的存储器,一般应用在数码相机,掌上电脑,MP3等小型数码产品中作为存储介质,所以样子小巧,有如一张卡片,所以称之为闪存卡。根据不同的生产厂商和不同的应用,闪存卡大概有SmartMedia(SM卡)、Compact Flash(CF卡)、MultiMediaCard(MMC卡)、Secure Digital(SD卡)、Memory Stick(记忆棒)、XD-Picture Card(XD卡)和微硬盘(MICRODRIVE)这些闪存卡虽然外观、规格不同,但是技术原理都是相同的。