Java语言的内存分析

在执行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函数之后首先创建主线程,在主线程上顺序执行代码。在执行代码的过程中要不断的调取其他三个区中的相关资源及其伺机起送垃圾回收机制进行代码的资源释放和垃圾碎片回收。

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值