在执行Java编写的程序时,共计在本机内存中开辟了四块区域,他们分别别是:栈区(Stack Section),堆区(Heap Section),数据引用区(Data Segment Section)和代码存储区(Code Segment Store Section)。具体详细介绍如下:
A:堆区(Heap Section)
堆区(Heap Section):用来存放类(Class)的引用对象即 T myT = new T();中的myT也就是我们在编写代码时new出来的实例对象。在堆区(Heap Section)中可以实现动态分别对象资源及其释放程序资源等功能。
B:栈区(Stack Section)
栈区(Stack Section):用于存放在类(Class)、函数(Class Function)中的局部变量,及其对堆区(Heap Section)中的新建对象的引用地址。
C:数据引用区(Data Segment Section)
数据引用区(Data Segment Section):用于存放类(Class)中的常量、静态变量,大部分为通过Final和Static修饰的变量。
D:代码存储区(Code Segment Section)
代码存储区(Code Segment Section):用于存储我们写的大部分代码,一般情况下可以理解为类似C语言性的过程性代码。
代码执行顺序:
第一步:将代码加载到代码存储区(Code Segment Section),然后解析类(Class),函数(Function)和常量(Final、Static)标识,然后将其分别加载到不同的内存区域中。
第二步:在代码中寻找Main函数即程序执行入口。
第三步:在进入Main函数之后首先创建主线程,在主线程上顺序执行代码。在执行代码的过程中要不断的调取其他三个区中的相关资源及其伺机起送垃圾回收机制进行代码的资源释放和垃圾碎片回收。