Java语言中的数组

不止Java

共 3666字,需浏览 8分钟

 · 2021-03-31

目录

  • 一、定义格式
  • 二、动态初始化
  • 三、元素访问
  • 四、内存分配
  • 五、静态初始化
  • 六、两个常见问题
  • 七、两个常见操作

数组(array)是一种用于存储多个相同类型数据的存储模型。

一、定义格式

格式1:数据类型[ ] 变量名
例:int[ ] arr
定义了一个int类型的数组,数组名是arr
格式2:数据类型 变量名[ ]
例:int arr[ ]
定义了一个int类型的变量,变量名是arr数组

二、动态初始化

Java语言中的数组必须初始化后才能使用,数组初始化即为数组中的元素分配内存空间,并为每个元素赋值。
动态初始化:初始化时指定数组长度,由系统为数组分配初始值。
格式:
数据类型[ ] 变量名 = new 数据类型 [ 数组长度 ] ;
例:int[ ] arr = new int[5];
int:说明数组类型为整型
[ ]:说明定义了一个数组
arr:数组名称
new:为数组申请内存空间
int:数组中的元素类型是int类型
5:数组长度,也是数组中元素的个数

三、元素访问

数组变量访问方式
格式:
数组名
数组内部保存的数据的访问方式
格式:
数组名[索引]
索引:数组中访问数据的编号方式,用于访问数组中的数据使用。
索引的特征:从0开始,连续,逐一增加,每次加1。

四、内存分配

Java程序在运行时,需要在内存中分配空间。为了提高运算效率,对空间进行了不同区域的划分,每一块区域都有特定的处理数据方式和内存管理方式。
栈内存:
存储局部变量,即定义在方法中的变量,例如arr,使用完毕,立即消失。
堆内存:
存储new出来的内容(实体、对象)。
数组在初始化时,会为存储空间添加默认值,
整数:0
浮点数:0.0
布尔:false
字符:空字符
引用数据类型:null
每一个new出来的东西都要有一个地址值,使用完毕,会在垃圾回收器空闲时被回收。

五、静态初始化

静态初始化:初始化时指定每个元素的初始值,由系统决定数组长度。
格式:
数据类型[ ] 变量名 = new 数据类型[ ] {数据1,数据2,数据3,……};
例:int [ ] arr = new int[ ]{1, 2, 3};
简化格式:数据类型[ ] 变量名 = {数据1,数据2,数据3,……};
例:int[ ] arr = {1, 2, 3};
public class day_005 {public static void main(String[] args){//动态初始化int arr1[] = new int[3];        System.out.println("动态初始化");       System.out.println("在内存中的地址是:"+arr1);        System.out.println(arr1[0]);        System.out.println(arr1[1]);        System.out.println(arr1[2]);        System.out.println("------");//静态初始化int[] arr2 ={2,3,4};        System.out.println("静态初始化");       System.out.println("在内存中的地址是:"+arr2);        System.out.println(arr2[0]);        System.out.println(arr2[1]);        System.out.println(arr2[2]);    }}


六、两个常见问题

1. 索引越界
访问了数组中不存在的索引对应的元素,造成索引越界问题
public class day_005 {    public static void main(String[] args) {        //动态初始化        int arr1[] = new int[3];
       System.out.println(arr1[3]);        System.out.println("------");    }}


2. 空指针异常
访问的数组已经不再指向对内存的数据,造成空指针异常
public class day_005 {public static void main(String[] args) {//动态初始化int arr1[] = new int[3];
//null,空值,引用数据类型的默认值,表示不指向任何有效对象        arr1 = null;        System.out.println(arr1[1]);    }}



七、两个常见操作

1. 遍历
格式:
int[ ] arr = {……};
for(int i = 0; i < arr.length; i++){
arr[i] //对arr[i]进行操作
}
public class day_005 {    public static void main(String[] args) {        //静态初始化        int[] arr = {1, 2, 3};
       //遍历数组        for (int i = 0; i < arr.length; i++) {            System.out.println(arr[i]);        }    }}


其中,arr.length表示获取数组元素数量,也就是数组的长度。


2. 获取最值
//最大值public class day_005 {    public static void main(String[] args) {        //静态初始化        int[] arr = {23, 2, 35, 67, 10};
       //定义变量用来保存最值        int max = arr[0];//取数组中第一个值作为最值的初始值
       //将定义的最值变量与数组中每一个值进行比较,每次都将最大值保存在变量中        for (int i = 1; i < arr.length; i++) {            if (arr[i] > max) {                max = arr[i];            }        }
       //比较结束后输出最值       System.out.println("最大值为:" + max);    }}





热爱生活,热爱学习




要不来个“在看”




浏览 27
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报