1、数组:
是存储同一种数据类型多个元素的集合。也可以看成是一个容器。
数组既可以存储基本数据类型,也可以存储引用数据类型。数组定义格式
数据类型[] 数组名 = new 数据类型[数组的长度];
数组的初始化:为数组开辟连续的内存空间,并为每个数组元素赋予值
对数组进行初始化动态初始化 只指定长度,由系统给出初始化值
int[] arr = new int[5];
静态初始化 给出初始化值,由系统决定长度
动态初始化的格式:
数据类型[] 数组名 = new 数据类型[数组长度];
静态初始化的格式:
数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…};
简化格式:
数据类型[] 数组名 = {元素1,元素2,…};
class ArrayDemo{
public static void main(String[] agrs){
int[] array = new int[5];
array[0] = 10;
System.out.println(array[0]);
System.out.println(array);
/*
[I@7852e922
[:代表数组维数,[有几个代表几维
@:固定符号
7852e922:代表十六进制的数组地址值
*/
}
}
2、数组内存:
栈:存储局部变量
堆:存储new出来的数组或对象
方法区:面向对象部分讲解
本地方法区:和系统相关
寄存器:给CPU使用
3、数组操作:
class ArrayMemory{
public static void main(String[] agrs){
//求取数组中最大值
int[] arr = new int[]{22,33,55,66,77,11,44};
int max = getMax(arr);
System.out.println("数组中最大值:"+max);
//数组元素反转
int[] array = new int[]{1,2,3,4,5,6,7,8,9};
reverseArray(array);//数组反转
printArray(array);//数组遍历输出
}
//获取最大值
public static int getMax(int[] arr) {
int max = arr[0];
for (int i = 1;i < arr.length;i ++) {
if (max < arr[i]) { //如果max记录的值小于数组中的元素,使用max记录较大的值
max = arr[i];
}
}
return max;
}
//数组反转
public static void reverseArray(int[] arr) {
for (int i = 0;i < arr.length/2;i ++) {
//array[0]和array[array.length-1-0]交换
//array[1]和array[array.length-1-1]交换
//array[2]和array[array.length-1-2]交换
//......
int temp = arr[i];
arr[i] = arr[arr.length-1-i];
arr[arr.length-1-i] = temp;
}
}
//数组遍历
public static void printArray(int[] arr) {
for (int i = 0;i < arr.length;i ++) {
System.out.print(arr[i] + " ");
}
}
}