java中数组的内容
Posted alice4
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中数组的内容相关的知识,希望对你有一定的参考价值。
今天了解了一下java中数组的内容。
数组是用于存储一组有序数据的集合,可以通过数组来保存任何相同数据类型的数据,而数组本身属于引用类型。
以一维数组为例,数组的声明写成 数据类型[] 数组名。通过这条语句仅仅声明了一个数组变量,并没有创建一个真正的数组,也无法确定数组的长度,这时候数组还不能被访问。在声明了数组之后,就要具体规定数组的大小,给数组分配内存空间,可以通过new操作符来显示创建一个数组,在定义并用运算符new为数组分配空间后,才可以引用数组中的每个元素。当然数组的声明和数组的大小分配可以放到一起完成,即 type [] arr_name = new type[length];接下来就是对数组进行初始化,在java中,数组的初始化有两种,静态初始化和动态初始化。(而在java中,为了保证安全性,防止内存缺失,为已创建的数组提供了默认化初始机制,在创建成功一个数组后,将完成三个动作:1.创建一个数组对象 2.在内存中给数组分配存储空间 3.给数组的元素初始化一个相应的数据类型的默认值。)所谓静态初始化就是在定义数组的时候就对数组进行初始化,例:int k[]={1,3,5,7,9};动态初始化就是将数组的定义和空间分配与给数组元素赋值分开,例:char ch=new char[3];ch[0]=a;ch[1]=b;ch[2]=c;。
下面讲一下数组的内存空间和内存分配。先介绍java在内存分配时会涉及到的区域:寄存器,栈(存放基本类型和对象的引用,但对象本身不存放在栈中,而是存放在堆中),堆(存放用new产生的数据)。
首先介绍简单数据类型数组从定义到初始化的内存变化过程。在声明数组的时候,系统会给这个数组分配用于存放这个数组的内存空间,它会在堆内存空间中给数组分配一个空间用于存放数组引用变量,在栈内分配空间存入数组对象的引用;在创建简单数据类型的数组的时候,系统会分配合适的堆空间用来存放该种数据类型数据的内存空间,并且将这个数组的各个元素赋一个和数组类型匹配的初值;当对数组进行初始化时,会将值赋给对应的各个数组元素。
如图:
引用数据类型数组从定义到初始化内存变化的过程。引用类型数组的定义和简单数据类型数组的定义基本相同;创建的时候也是首先给数组元素分配内存空间,然后赋给这些数组元素一个默认的初始值null;在进行初始化的时候,因为数组本身也是引用类型,而现在的数组元素也是引用类型,所以数组元素所引用的对象也要分配内存空间。
如图:
以上是关于java中数组的内容的主要内容,如果未能解决你的问题,请参考以下文章
Java中set方法传递一个数组,用get方法怎么获取数组中的内容?
java将InputStream呈现为ByteBuffer而不将整个内容加载到数组中