java 基础之概念

1 内存

   内存指的就是主板上的存储部件,是CPU直接与之沟通,并用其存储数据的部件,存放当前正在使用的(即执行中)的数据程序,它的物理实质就是一组或多组具备数据输入输出和数据存储功能的集成电路,内存只用于暂时存放程序和数据,一旦关闭电源或发生断电,其中的程序和数据就会丢失。

一个完整的应用程序在内存中的分布通常会是这样子的:

代码区(Code Segment):代码区,顾名思义,存放程序的可执行代码。

常量区(Const Segment):所有的常量都是存放在常量区。

全局数据区(Global Data Segment):全局数据区存放的是全局变量或者是static 变量。

栈区(Static Segment):栈区存放的是所有局部变量,一个函数的参数。

堆区(Heap Segment):堆区的数据由程序员申请并且释放,如果程序员不释放,那么程序在结束之后,会由操作系统进行释放。堆区的内存空间通过malloc或者new申请出来的。

(C#中 struct是在栈区而class是在堆区,因此C#中,struct的速度比class快。)

原文地址:https://www.cnblogs.com/yujian-bcq/p/3524212.html