1.声明数组:dataType[ ] arrayRefVar;(数据类型[] 数组名;)
或dataType arrayRefVar[];(数据类型 数组名[ ];//这种类型是正确的,但不推荐)
2.说明一个数组变量时并不在内存中给数组分配任何空间,仅创建一个引用数组的存储地址。如果变量没指向任何数组,则变量的值为null。除非数组已经创建,否则不能给它分配任何元素。声明数组变量之后,可以通过下面的语法用new操作符创建它:
arrayRefVar = n e w dataType[arraySize]; (数组名 = new数据类型[数组大小];)
这条语句做了两件事情:(1) 使用new dataType[arraySize];创建了一个数组。(2) 把新创建的数组引用赋值给arrayRefVar表示的变量。
3.声明一个数组变量、创建数组、将数组引用赋值给变量三件事可以合并在一个语句里,如下所示:
dataType[] arrayRefVar = n e w dataType[arraySize];
(数据类型[] 数组名=new数据类型[数组大小];)
或
dataType arrayRefVar[] = n e w dataType[arraySize];
(数据类型 数组名[]=new数据类型[数组大小];)
4.一个数组变量似乎存储了一个数组,实际上它只存储着数组的引用。
5.给数组分配空间时,必须通过指定存储元素的个数来约定数组的大小。数组创建之后就不能再修改它的大小。可以使用arrayRefVar.length方法求得数组的大小。
6.数组创建后,它的元素赋予默认值,数值型基本数据类型默认值为0,char型为’\u0000’,boolean型为false。
7.Java有一个简洁的记法,叫做数组初始化(array initializer),可以将声明数组、创建数组和初始化
数组结合到一个语句中,其语法如下:
dataType[] arrayRefVar = {value0,value1,...,valuek};
(数据类型[] 数组变量={直接量0, 直接量1,..., 直接量k};)
8.数组初始化语句中不使用运算符new。使用数组初始化时,必须将声明、创建、初始化数组都放在一个语句中。将其分开会产生语法错误
9.处理数组:
- 用随机数初始化数组
- 输出数组
- 对所有元素求和
- 查找最大元素
- 查找最大元素的最小下标值
10.JDK 1.5引进了一个新的for循环,称为foreach循环或增强的for循环,它不用下标变量就可以顺序地访问整个数组。
11.在Java中,可以使用赋值语句复制基本数据类型的变量,但不能复制数组。将一个数组变量赋值给另一个数组变量,实际上是将一个数组的引用复制给另一个变量,使两个变量指向同样的内存地址。
12.复制数组有三种方法:
- 用循环语句逐个复制数组的元素。
- 使用System类中的静态方法arraycopy。
- 使用clone方法复制数组。
13.arraycopy的语法如下:
arraycopy(sourceArray, srcPos, targetArray, tarPos, length);
参数srcPos和tarPos分别指在源数组sourceArray和目标数组targetArray中的起始位置。从sourceArray复制到targetArray中的元素个数由参数length指定。
14.前面的语句使用下述语法创建数组:
new dataType[]{value0,value1,...,valuek};(new数据类型[]{直接量0, 直接量1,..., 直接量k};)
该数组没有显式的引用变量,这样的数组称为匿名数组(anonymous array)。
15.DJK 1.5 允许把类型相同但个数不定的参数传递给方法,方法中参数的声明如下:
typeName... parameterName
在方法声明中,如果发现类型后紧跟省略号(…),那么只能给方法指定变长参数,并且该参数必须是最后一个参数,任何常规参数必须在它之前
Java把变长参数当成数组,所以,可以把数组或个数不定的参数传递给变长参数。当用个数不定的参数引用方法时,Java创建一个数组并把参数传给它。
16.JVM将数组存储在一个叫做堆(heap)的内存区域中,堆用于动态内存分配,在堆中内存块可以按任意的顺序分配和释放。
17.数组的查找
常见的算法:线性查找、二分查找
18.数组的排序
两种简单、直观的排序方法:选择排序和插入排序
19.Arrays类
20.二维数组中每一行本身是一个数组,因而各行就可以有不同的长度,这样的数组称为锯齿数组(ragged array)。
使用语法new int[5][]创建数组时,第一个下标必须给定。
21.声明二维数组的语法:
数据类型[][] 数组名;
或
数据类型 数组名[][]; / /这种方式是正确的,但不推荐
22.求二位数组的长度
二维数组实际上是每个元素是一个一维数组的数组。数组x的长度是数组中元素的个数,可以用x.length 求得。元素 x[0],x[1], … ,x[x.length-1] 也是数组,它们的长度可以利用x[0].length,x[1].length,…,x[x.length-1].length求得。
23.处理二维数组
- 用随机数初始化数组
- 输出数组
- 求所有元素的和
- 对数组按列求和
- 求哪一行和最大
24.在Java中,对任意的整数n都可以创建n维数组。