目录
数组介绍:可以存放多个同一类型的数据。数组也是一种数据类型,是引用类型。
数组的定义:数据类型 数组名【】 = new 数据类型【大小】;【】可以在数据类型之后也可以在数组名之后,看个人喜好。
int a【】= new int【5】; 创建了一个数组,名字a,存放5个int。
数组的大小/长度表示:用数组名.length表示。
数组的使用
使用方式1-动态初始化1
方法:先定义一个数组,之后再引用它。
int a[] = new int [3];//创建数组
举例:循环输入5个成绩,保存到double数组,并输出。
使用方法2-动态初始化2
方法:先声明数组再创建数组。
int a[];//数组的声明,内存里并未分配空间
a = new int[3];//数组的使用,内存中分配了空间,可以存放数据了
使用方法3-静态初始化
方法:如果知道数组有多少元素和具体值,可以用相关语法,数据类型 数组名【】 = {元素值,元素值...}。
数组使用的细节
1. 数组中的元素可以是任何数据类型,包括基本数据类型和引用数据类型,但是不能混用。
2. 数组创建后,如果没有赋值,有默认值。int - 0; short - 0; byte - 0; long - 0; float - 0.0; double - 0.0; char - \u0000; boolean - false; String - null。
3. 数组下标必须在指定范围内使用,否则会报下标越界异常。如 int arr[ ] = new int [5],那么有效的下标范围是0 ~ 4 。
4. 数组属于引用类型,数据型数据是对象(object)。
数组赋值机制
1. 基本数据类型赋值,这个值就是具体的值,相互不影响。(值拷贝)
2. 数组在默认情况下是引用传递,赋的值是地址。(地址拷贝)
编译结果
原理
数组扩容
public class ArrayAdd{
public static void main(String[]args){
int arr[] = {1, 2, 3};
int arrNew[] = new int [arr.length + 1];
for(int i = 0; i < arr.length; i++)
{
arrNew[i] = arr[i];
}
arrNew[arrNew.length-1] = 4;
arr = arrNew;
System.out.println("====arr扩容后元素情况====");
for(int i = 0; i < arr.length; i++)
{
System.out.print(arr[i] + "\t");
}
}
}
数组缩减和数组扩容是差不多的思想,感兴趣的朋友可以自己试试看能不能做出来哦!