计算机的存储区域C++和JAVA

来源:互联网 发布:淘宝店铺装修书籍 编辑:程序博客网 时间:2024/05/15 03:20

请加我的微信公众号YWQKirin

计算机存储器分为内存ROM 和 RAM )和外存。

ROM(只读存储器):在 ROM 中,只读数据是预先记录的,不能被移动。ROM 不易于丢失,也就是,不管计算机处于开机还是关机状态,ROM 始终保留其内部内容。大多数个人计算机的 ROM 较小,主要用于存储一些关键性程序,诸如用来启动计算机的程序。

RAM(随机存储器):该存储器中的内容可以以任意顺序存取(读、写和移动)。RAM 通常负责计算机中主要的存储任务,如数据和程序等动态信息的存储。

外存:一般是非易失的,可以永久保存。在程序中一般用于保存流对象和持久化对象。

C++对内存的划分:

1.寄存器:这是最快的存储区域,但是数量有限,并且存在于CPU内部。

2.栈:就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。

3.堆:就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。

4.全局/静态存储区:全局变量和静态变量被分配到同一块内存中。

5.常量存储区:这是一块比较特殊的存储区,他们里面存放的是常量,不允许修改(当然,你要通过非正当手段也可以修改)。

6.程序代码区:储存程序的二进制代码。

C++的变量分为:

1:全局变量:静态存储区

2:静态全局变量:静态存储区

3:静态存储区:静态存储区

4:局部变量:栈区

JAVA中存储区域分类:

1.寄存器:这是最快的存储区域,但是数量有限,并且存在于CPU内部。

2栈区:位于RAM中,有栈指针移动控制其分配和释放,所以缺乏灵活性。速度仅次于寄存器。在JAVA中对象引用和基本类型变量一般存储在栈区。

3堆区:也位于RAM中,用于存储JAVA的对象。在堆中存储灵活性高,但是速度比较慢。

4.常量区:常量值一般直接放在代码内部,这样就不会被改变,就是安全的。

5非RAM区:就是在程序没有运行时也可以存在,如流对象和持久化对象。

在JAVA中一切皆是对象,所以JAVA中的变量就只是对象了。


原创粉丝点击