您当前位置:设计在线网 >> JavaScript >> 浏览文章

java数组在内存中的运行机制问题分析

分享到:
本文章讲述了java数组在内存中的运行机制问题分析.

组在内存中的运行机制

数组属于引用类型(还包括字符串和类)

数组由数组变量(即定义时的数组名)和数组元素两部分组成。并且他们是分开存放的,

数组变量存放在内存的栈(heap)中,而数组元素则存放在内存的堆(stack)中。

数组变量就是一个指向堆内存的地址。

计算机访问数组,实际是通过对数组引用变量的引用,利用数组引用变量所指向的堆内存空间,来访问数组的元素。

数组引用变量是访问数组的唯一方式。

数组的初始化:

分为静态初始化和动态初始化。

静态初始化:

type[] a={value1,value2 ,value3 ,value4 ,value5 };//定义并初始化。

type[] a;

a=new type[]{value1,value2 ,value3 ,value4 ,value5};

动态初始化:(先分配空间,再赋值)

type[] a= new type[6];

a[0]=value1;

a[1]=value2;

type[] a;

a=new type[6];

a[0]=value1;

a[1]=value2;

动态初始化只需程序员指定数组长度,为每个数组元素指定内存空间。

与c不同的是:

Java 定义数组习惯上将数据类型和数组特征的[]组合在一起成为一个整体的数据类型

要输入和输出数组和c一样,运用for循环来逐个输入输出数组。

数组是引用类型,存放在堆内存中,这就存在内存的释放问题。

java不比c需要程序员主动去释放堆内存,只需要在程序最后将引用类型赋null, 让引用类型变量与堆内存失去联系,最终引用变量成为空指针。被系统的回收机制在适当的时期回收。

当我们看一个数组时:一个是数组引用(定义数组的引用变量);另一个是数组本身(存在与系统内存里),通常无法直接访问,只能通过数组引用变量来访问数组。

推荐阅读:
基于Java和C/C++语言 比较区别
html等转义字符总结
基于java+oracle环境下 对于clob类型的数据的插入
推荐文章  
赞助商链接  
热门排行  
主题推广  
中国设计在线网 All Rights Reserved. 互联网违法和不良信息举报
信息产业部备案号:湘ICP备09001063号