关于数组的总结!

数组是多个相同类型数据的组合,实现对这些数据的统一管理。数组中每个数据称为数组的一个元素。
数组对应在内存中一段连续空间。
数组元素必须是相同数据类型,也可以是引用数据类型,但是同一个数组中的元素必须是同一类数据类型。

定义数组   数据类型[]数组名;或者数据类型 数组名 []
如 int[] scores;//int scores[];
String cities[];//String[] cities;

分配内存空间
数组名=new 数据类型[数组长度];
new关键字用来实现为数组或对象分配
数组具有固定的长度。获取数组的长度: 数组名.length

定义数组+分配内存空间
数据类型[]数组名=new 数据类型[数组长度];
定义数组时不指定长度,分配空间时指定数组长度;如:String cities[] = new String[6];

数组元素:
数组名[下标值];
数组下标从0开始  scores[0]=75;

数组的内存分配  栈内存和堆内存
如定义一个数组 int[]scores将在栈内存中为scores 分配内存空间,其值是一个不确定的值。
当执行语句scores=new int[5]时,将在堆内存分配连续5个空间,每个空间4个字节,用于存放整型数据,其初始值为0,然后将该段空间首地址,也就是第一个元素的地址,比如0*3000,赋给scores变量。该地址相当于一个指针,指向堆内存中分配的空间。此时堆内存中分配的5个空间可以分别使用scores[0],一直到scores[4]来表示。当执行四个赋值语句时,分别用指定值填充到对应元素位置。如果此时将null值赋给scores时,scores变量将不再指向任何位置,此时堆内存中分配的空间就变成了垃圾,由垃圾回收器在某一时间进行回收。\
在方法中定义的变量,包括基本数据类型变量和引用数据类型变量,都将在栈内存中分配空间,当超过变量作用范围后,自动回收

初始化=定义数组+分配空间+赋值
定义数组时进行赋值操作

foreach循环  专门用来实现对数组或集合中数据的访问,并且无需知道数组的长度,使用起来更加简单。
  区别:    for 你先要给初值,末值和步长。foreach 不需要事先给定初值,末值和步长,他是自动遍历给定的集合体的所有值

当一个引用变量的值变为null值后,如果仍旧对其进行操作,那么必然会出现空指针异常。
如果访问 组元素时指定的下标小于0,或者大于等于数组长度,都将出现数组下标越界的异常。

Arrays 类是JDK提供的专门用于操作数组的工具类,位于java.util包中。
直接调用Arrays类的方法操作数组,无需自己编码。
eqauls相等  sort对数组array的元素进行升序排列

for(int elem:arr1)是迭代的意思。将arr1的元素遍历一遍的意思。冒号之前是迭代时的临时变量,冒号之后是你要迭代的数组或者集合对象(可迭代的对象)

toString()方法:该方法用于将一个数组转换成一个字符串。 按着顺序把多个数组元素连结在一起。这多个元素之间使用逗号和空格隔开。

fill()方法,用于把数组array所有元素都赋值为val。
copyOf()方法,就是进行数组的复制,将把源数组复制成一个新数组,其中length是新数组的长度。这样子,如果源数组长度大于了新数组的长度,那么新数组是截取源数组当中length长度的元素值进行填充。
如果源数组的长度小于length值,新数组当中的前length个元素是源数组当中的,后面讲补充默认的初始值,比如整型填充0,浮点型填充0.0等。
binarySearch()方法,查询val值在数组array中出现的下标;
注:调用该方法时 要求数组中元素已经是按照升序进行排列,

你可能感兴趣的:(关于数组的总结!)