前言
Hello,大家好!很开心与你们在这里相遇,我是一个喜欢文字、喜欢有趣的灵魂、喜欢探索一切有趣事物的女孩,想与你们共同学习、探索关于IT的相关知识,希望我们可以一路陪伴~
1. 一维数组
1.1 概念
多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。
定义:相同数据类型的固定长度的容器。
总结:存放数据,长度和类型是固定的;
四部曲:声明数组、分配空间、赋值、处理数据
1.2 数组定义格式
- 格式一
数据类型[] 数组名;
示例:
- 格式二
数据类型 数组名[];
示例:
1.3 数组初始化
1.3.1 数组静态初始化
- 什么是静态初始化
在创建数组时,直接将元素确定,由系统计算出数组的长度。
- 静态初始化格式
完整版格式:
数据类型[] 数组名 = new 数据类型[]{元素1,元素2,...};
简化版格式:
数据类型[] 数组名 = {元素1,元素2,...};
代码示例:
1.3.2 数组动态初始化
- 什么是动态初始化
数组动态初始化就是只给定数组的长度,由系统给出默认初始化值。
- 动态初始化格式
数据类型[] 数组名 = new 数据类型[数组长度];
- 动态初始化格式详解
等号左边:
- int:数组的数据类型
- []:代表这是一个数组
- arr:代表数组的名称
等号右边:
- new:为数组开辟内存空间
- int:数组的数据类型
- []:代表这是一个数组
- 3:代表数组的长度
1.4 访问数组元素
- 什么是下标
- 语法格式
数组名[索引];
- 代码示例
1.5 内存分配
1.5.1 内存概述
内存是计算机中的重要原件,临时存储区域,作用是运行程序。
我们编写的程序是存放在硬盘中的,在硬盘中的程序是不会运行的。
必须放进内存中才能运行,运行完毕后会清空内存。
Java虚拟机要运行程序,必须要对内存进行空间的分配和管理。
1.5.2 java中的内存分配
1.6 数组内存图
- 单个数组的内存图
- 多个数组的内存图
- 多个数组指向相同内存图
1.7 注意事项
1.7.1 索引越界异常
- 出现原因
数组长度为3,索引范围是0~2,但是我们却访问了一个3的索引。
程序运行后,将会抛出ArrayIndexOutOfBoundsException 数组越界异常。在开发中,数组的越界异常是不能出现的,一旦出现了,就必须要修改我们编写的代码。
- 解决方案
将错误的索引修改为正确的索引范围即可!
1.7.2 空指针异常
- 出现原因
arr = null 这行代码,意味着变量arr将不会在保存数组的内存地址,也就不允许再操作数组了,因此运行的时候会抛出 NullPointerException 空指针异常。在开发中,数组的越界异常是不能出现的,一旦出现了,就必须要修改我们编写的代码。
- 解决方案
给数组一个真正的堆内存空间引用即可!
1.8 数组案例
- 数组遍历
- 数组元素反转
数组中的元素颠倒顺序,例如原始数组为1,2,3,4,5,反转后的数组为5,4,3,2,1,影响原始数据;
- 代码实现
2. 二维数组
- 什么是二维数组
二维数组其实就是这个二维数组中有多少个一维数组,是一维数组的 一维数组。
2.1 二维数组格式
(1)格式一:
数据类型[][] 变量名 = new 数据类型[m][n];
格式解释:
m表示这个二维数组有多少个一维数组
n表示每一个一维数组的元素个数
代码示例:
(2)格式二:
数据类型[][] 变量名 = new 数据类型[m][];
格式解释:
m表示这个二维数组有多少个一维数组
这一次没有直接给出一维数组的元素个数,可以动态的给出
代码示例:
(3)格式三:
标准版:
数据类型[][] 变量名 = new 数据类型[][]{{元素…},{元素…},{元素…}};
简化版:
数据类型[][] 变量名 = {{元素…},{元素…},{元素…}};
示例:
java基础语法数组
int[][] arr = {{1,2,3},{4,5},{6}};
2.2 二维数组遍历
择人先问心,爱人先爱己~ 希望你今天也开心~
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/19401.html