学习笔记:突出程序员基本功(一)数组与内存控制

1.数组初始化

1.1 java语言是典型的静态语言,因此java的数组是静态的,即当数组被初始化之后,该数组的长度是不可变的。java程序中的数组必须经过初始化才可以使用。java数组一旦初始化完成,该数组的长度就不可改变。

数组的初始化有以下两种方式:

静态初始化:初始化时由程序员显示指定每个数组元素的初始值,有系统决定数组长度。

动态初始化:初始化时程序员只指定数组长度,有系统为数组元素分配初始值。

初始化数组,系统指定初始值规则:

数组元素(byte,short,int,long)  -->元素默认值: 0

数组元素(float,double)  --> 元素默认值: 0.0

数组元素(char)  --> 元素默认值: \u0000

数组元素(boolean)  -->元素默认值: false

数组元素(类,接口,数组)  -->元素默认值: null

注意:不要同时使用静态初始化和动态初始化。也就是说,不要在警惕性数组初始化时,既指定数组的长度,也为每个数组 元素分配初始值。

1.2 java的数组变量时引用类型的变量,它并不是数组对象本身,只要让数组变量指向有效的数组对象,程序中即可使用该数组变量。对于数组变量来说,它并不需要进行所谓的初始化,只要让数组变量指向一个有效的数组对象,程序即可正常使用该数组变量。

1.3 基本类型数组的初始化

对于基本类型数组而言,数组元素的值直接存储在对应的数组元素中,因此基本数据类型数组初始化比较简单:程序直接先为数组分配内存空间,再将数组元素的值存入对应的内存里。

所有局部变量都是放在栈内存里保存的,不管其时基本类型的变量,还是引用类型的变量,都是存储在各自的方法栈中;但引用类型的变量所引用的对象(包括数组,普通java对象)则总是存储在堆内存中。

1.4 引用类型的初始化

引用类型数组的数组元素依然时引用类型,因此数组元素里存储的还是引用,它指向另一个内存,这块内存里存储了该引用变量所引用的对象(包括数组和java对象)

2.使用数组

java语言不允许直接访问堆内存中的数据,因此无法直接访问堆内存中的数组对象,程序将通过数组引用变量来访问数组。

2.1 数组元素就是变量

只要在已有数据类型之后增加方括号,就能产生要给新的数组类型。(如:int-->int[],String-->String[],Person-->Person[])

2.2 多维数组

前面已经指出:只要在已有数据类型之后增加方括号,就会产生要给新的数组类型。

类型int  -->  一维数组 int[]  -->  二维数组 int[][]  --> 三维数组 int[][][]

 

你可能感兴趣的:(java)