part4 Java数组

part4 Java数组

  • 数组就是一个容器,用来存储同一批类型的数据
  • 数组是一种引用数据类型

一、静态初始化数组(只确定元素内容)

♦静态初始化数组的格式

标准格式:

数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3,元素4....};
int[] ages = new int[]{12,24,36};

简化写法:

数据类型[] 数组名 = {元素1,元素2,元素3......};
int[] ages = {12,24,36};
double[] scores2 = {89.9,99.5,59.5,88};

数组在内存中的原理:

  • 数组变量名存储的是数组在内存中的地址
  • 数组是一种引用数据类型
    Pasted image 20241031151053

二、数组的访问

♦访问数组

数组名[索引]
arr[2] = 100;

♦数组的常用操作

输出整个数组为字符串:

Arrays.toString(数组名)

foreach方法输出整个数组

int[] abc = new int[]{1,2,3,4,5};
for(int a : abc) {
System.out.print(a + " ");
}

数组的长度属性:length
获取数组的长度,也就是数组元素的个数

int[] ages = new int[]{12,24,36};
System.out.println(ages.length);

数组的遍历(i<arr.length)

int[] ages1 = new int[]{11,22,33,44,55,66,77,88};
for (int i = 0;i < ages1.length;i++){
System.out.println(ages1[i]);
}

三、动态初始化数组(长度类型确定)

定义时不存入具体的元素值,只确定数组存储的数据类型和数组长度
数组的动态初始化格式:

数据类型[] 数组名 = new 数据类型[长度];
int[] arr = new int[3];

原理:
Pasted image 20241031154140
动态初始化数组的默认值:
Pasted image 20241031155134

四、数组的内存执行原理

直接输出数组名输出的是数组的地址信息

运行一个Java程序,主要看JVM中包含的以下区域:

  • 方法区:放mian等入口
  • 栈内存:放普通类型变量和执行程序
  • 堆内存:放new的引用类型变量
  • 多个变量可以指向同一个数组
  • 如果一个数组变量存储的是null,那么这个变量将不再指向任何数组对象

五、数组案例

♦数组求最值:

思路:设一个max变量遍历数组与其比较,大于则替换max变量为数组值

♦数组反转:

思路:两个变量从数组两头走,当i<j时结束循环,前后变量置换

int[] arr2 = {5,6,7,8,9};
for (int i = 0 , j = arr2.length-1; i<j ; i++ , j--) {
int sum = 0;
sum = arr2[j];
arr2[j] = arr2[i];
arr2[i] = sum;
}
System.out.print(Arrays.toString(arr2));

Write your comment Here