数组
1、数组的含义和特点
数组的含义
- 数组是相同类型数据的结合
- 数组按照一定的先后次序排列组合而成
- 数组中的每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们。
数组的四个基本特点
- 其长度是确定的。数组一旦被创建,它的大小就是不可以改变的。
- 其元素必须是相同类型,不允许出现混合类型。
- 数组中的元素可以是任何数据类型,包括基本类型和引用类型。
- 数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组 本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象 本身是在堆中的。
2、数组的声明与创建
1.声明数组
数组必须先声明,才能使用
//数据类型[] 数组名; // 首选的方法
double[] array;
//或
//数据类型 数组名[]; // 效果相同,这是C和C++的声明方法,Java也能用,目的是为了让C++程序员快速上手Java
double array[];
2、数组的创建
Java语言使用new操作符来创建数组,语法如下:
//数组名 = new 数据类型[数组的长度];
3、数组变量的声明,和创建数组也可以用一条语句完成
//数据类型[] 数组名 = new 数据类型[数组的长度];
double[] array = new double[5];
可通过数组名.length的方式获取数组长度:
//数组名.length
array.length
4、数组的初始化
静态初始化
//数据类型[] 数组名={元素值,元素值...}
int[] arr={1,2,3,4,5,123,5213,55};
int arr2[]={1,2,3,4,5,6,7};
动态初始化
//先定义数组,为数组分配好空间再进行赋值
int[] arr = new int[6];
arr[0]=1;
arr[1]=4;
arr[2]=3;
arr[3]=2;
arr[4]=5;
arr[5]=6;
利用Scanner进行初始化
public class Demo01 {
public static void main(String[] args) {
int[] arr = new int[5];
Scanner scanner = new Scanner(System.in);
//从键盘中输入数组元素
for (int i = 0; i < arr.length; i++) {
System.out.print("请输入第"+(i+1)+"个数组元素:");
arr[i]=scanner.nextInt();
}
System.out.println("=====================");
//遍历数组
for (int i = 0; i < arr.length; i++) {
System.out.print("第"+(i+1)+"个数组元素为:");
System.out.println(arr[i]);
}
}
}
数组使用的注意事项
- 数组是多个相同类型数据的组合,实现对这些数据的统一管理
- 数组中的元素可以是任何数据类型,包括基本类型和引用类型,但不能混用
- 数组创建后,如果没有进行初始化,数组的元素都有默认值,比如Int类型的默认值为0,String类型的默认值为null
- 使用数组的步骤:1. 声明数组并开辟空间 2.给数组各个元素进行初始化 3.使用数组
- 数组的下标是从0开始的
- 数组下标必须在指定范围,不能超出规定的范围,否则抛出下标越界异常,比如int[] arr =new int[5];的有效下标为0-4, 像arr[10]=7;这样的使用就超出了范围
- 数组属于引用类型,数组型数据是对象(object)
数组的赋值机制
基本数据类型赋值,这个值就是具体的数据,而且相互不影响。
int a = 2;
int b = a;
b = 6;
System.out.println("a="+a);//a=2
System.out.println("b="+b);//b=6
//b的变化不会影响到a的值
但是数组在默认情况下是引用传递,赋的值是地址,赋值方式为引用传递
int[] arr1={1,2,3};
System.out.println(Arrays.toString(arr1));//输出 [1,2,3]
int[] arr2=arr1;
arr2[0]=7;
arr2[1]=8;
arr2[2]=9;
//Arrays.toString()是自带的遍历数组的方法
System.out.println(Arrays.toString(arr1));//输出 [7,8,9]
System.out.println(Arrays.toString(arr2));//输出 [7,8,9]
//很明显,arr2的变化影响到了arr1
int[] arr2=arr1; 这条语句将arr1的地址赋给了arr2,如下图所示arr1和arr2都指向堆区的同一块区域,所以改变arr2的数组元素就相当于也改变了arr1
以上是看韩顺平老师的Java课程做的随笔笔记
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/288711.html