java语言是典型的静态语言,因此java的数组也是静态的,所以java程序的数组需要经过初始化才能使用,初始化是指为数组对象的元素分配内存空间,并为每个元素指定初始值。
需要明确的是,java的数组变量是一种引用型的变量,数组变量并不是数组本身。他只是指向堆内存中的数组对象。对数组变量来说,它们不需要进行所谓的初始化,只要让数组变量指向一个有效的数组对象,程序即可正常使用该数组变量。需要初始化的永远只是该引用变量所引用的对象,而不是引用变量本身。
1. 基本类型数组的初始化:程序先为数组分配内存空间,再将数组元素的值存入相应的内存中;
局部变量都是存放在栈内存中(不管是基本类型的变量还是引用类型的变量,都是存储在各自方法的栈区中),但是数组的所引用的对象中引用的变量是存于堆中的;
2.引用类型数组的初始化:其元素是引用型的变量,java语言不允许直接访问堆内存中的数据;而程序是通过该引用变量间接来访问数组中的引用对象,这样引用对象是存储在堆内存中。
|