Java学习笔记——数组与内存控制

来源:互联网 发布:iphone软件 编辑:程序博客网 时间:2024/04/19 22:17

数组是大多数编程语言都提供的一种复合结构。当程序需要多个类型相同的变量的时候,就可以考虑定义一个数组。Java语言中的数组变量是引用类型的变量,是Java的独特特性。

由于Java语言是典型的静态语言,因此Java语言的数组也是静态的。所谓的静态就是:当数组被初始化之后,该数组的长度是不可以改变的,数组元素的内存空间分配即结束(可以改变数组元素的值,无法改变数组的长度)。Java程序中的数组必须经过初始化才能够使用。所谓的初始化是:为数组对象元素分配内存空间,并为每个数组元素指定初始值。

数组的初始化有两种方式,分别是静态初始化和动态初始化。静态初始化就是在初始化的时候由程序员指定每个元素的初始值,由系统决定数组长度;动态初始化就是在初始化的时候程序员只指定数组长度,由系统分配初始值,指定初始指的时候,系统会将按如下规则分配初始值:当数组元素的类型是引用类型(类、接口和数组),数组元素的初始值是null;当数组元素的类型是基本类型中的整型(byte、short、int和long),数组元素的初始值是0;当数组元素的类型是基本类型中的浮点型(float、double),数组元素的值是0.0;当数组元素的类型是基本类型中的字符型(char),数组元素的值是'\u0000';当数组元素的类型是布尔类型(boolean),元素的值是false。

以上可知,无论采用哪种初始化的方式,一旦初始化完成,该数组的长度就不可以改变,并且不能同时使用静态初始化和动态初始化。也就是说,在数组初始化的时候,不要既指定数组的长度,也为每个数组元素分配初始值。

Java的数组变量是一种引用类型的变量,数组变量并不是数组本身,它只是指向堆内存中的数组对象,由此,改变一个数组变量所引用的数组,可以造成数组长度改变的假象。

0 0
原创粉丝点击