首页 > 编程语言 >Java基础系列三、数组

Java基础系列三、数组

时间:2023-02-01 12:35:20浏览次数:46  
标签:arr 系列 数组 int 二维 一维 new Java


数组概述及格式

  • 数组:同一种类型数据的集合。其实数组就是一个容器
  • 只要是容器,就得重点掌握
  • 数组的好处
  • 可以自动给数组中的元素从0开始编号,方便操作这些元素
  • 数组的定义格式
A:当不明确数组中的元素时,动态初始化
int[] arr = new int[3];
arr[0] = 3;
B:当明确数组中的元素时,静态初始化
int[] arr = new int[] { 1, 2, 3, 4, 5 };
int[] arr = { 1, 2, 3, 4, 5 };
  • 什么时候使用数组?
  • 当要操作的同种数据类型的数据是多个的时候

数组的内存图

  • A:栈
  • 存储的是局部变量(在函数中定义的变量)
  • 变量被使用完后,立即自动释放
  • B:堆
  • 存储的是实体(数组和对象)
  • 实体:new出来的东西,可以存放很多数据的东西
  • 堆内存数据的特点
  • 每个实体都有内存地址
  • 堆内存中的变量都有默认初始化值
  • int --> 0
  • double --> 0.0
  • boolean --> false
  • char --> '\u0000' 空字符,unicode编码
  • 当实体不在被使用的时候,会在jvm空闲的时候,通过java垃圾回收机制使其自动释放
  • C:方法区:static
  • D:本地方法区:调用是Windows系统底层资源,我们不用考虑
  • E:寄存器:和CPU相关。我们不用考虑

数组的常见问题

  • A:当你访问到数组中的最后一个元素时,还想继续访问,这个时候,会发生角标越界异常
  • ArrayIndexOutOfBoundsException
  • B:当数组不在指向某个实体时,你还继续访问,就会发生空指针异常
  • NullPointerException

数组的操作

  • 遍历
  • 最值
  • 查找
  • 排序
  • 数组的参数传递

二维数组概述和定义

  • 格式1:int[][] arr = new int[3][2];
  • A:定义了名称为arr的二维数组
  • B:二维数组中有3个一维数组
  • C:每一个一维数组中有2个元素
  • D:一维数组的名称分别为arr[0], arr[1], arr[2]
  • arr:二维数组名
  • arr[1]:二维数组中的第二个一维数组名
  • arr[1][1]:二维数组中的第二个数组的第二个元素
  • E:给第一个一维数组1脚标位赋值为78写法是:arr[0][1] = 78;
  • 格式2:int[][] arr = new int[3][];
  • A:二维数组中有3个一维数组
  • B:每个一维数组都是默认初始化值null
  • C:可以对这个三个一维数组分别进行初始化
  • arr[0] = new int[3];
  • arr[1] = new int[5];
  • arr[2] = new int[7];
  • 格式3:int[][] arr = { { 3,8,2 }, { 2,7 }, { 9,0,1,6 } }; arr[2].length;
  • A:二维数组有3个一维数组
  • B:
  • 第一个一维数组有3个元素
  • 第二个一维数组有2个元素
  • 第三个一维数组有4个元素

二维数组的应用

  • 二维数组的遍历
int[][] arr2 = new int[2][3];
public static void printArray2(int[][] arr2) {
for(int i=0; i<arr2.length; i++) {
for(int j=0; j<arr2[i].length; j++) {
System.out.print(arr2[i][j]+" ");
}
System.out.println();
}
}
  • 二维数组的应用
// 求一年的销售总额
public static void printArray2(int[][] arr2) {
int sum = 0;
for(int i=0; i<arr2.length; i++){
for(int j=0; j<arr2[i].length; j++) {
sum = sum + arr[i][j];
}
System.out.println("sum =" + sum);
}
}

数组这块是很有技术深度的-->具体请学习数据结构

标签:arr,系列,数组,int,二维,一维,new,Java
From: https://blog.51cto.com/u_15950249/6031341

相关文章