Java中的数组

目录

1.数组定义格式

1.1 数组概述

 1.2 数组的定义格式

2.数组初始化之动态初始化

2.1 数组初始化概述

2.2 数组初始化方式

2.3 动态初始化

3.数组元素访问

4.内存分配

4.1 Java种内存分配

4.2 数组内存图(单个数组)

 4.3 数组内存图(多个数组)

 4.4. 数组内存图(多个数组指向相同)

 5.数组初始化之静态初始化

6.数组操作的常见小问题

7.数组常见操作

7.1 遍历

7.2 获取数组元素数量

 7.3 获取最值


1.数组定义格式

1.1 数组概述

  • 一次性声明大量的用于存储的数据的变量;
  • 要存储的数据都是同类型数据,例如:份数;

 1.2 数组的定义格式

  • 格式一:数据类型 [ ] 变量名

       范例: int [] arr;(定义了一个int类型的数组,数组名是arr)

  • 格式二:数据类型 变量名[ ]

        int arr[ ];(定义了一个int类型的变量,变量名是arr数组)

2.数组初始化之动态初始化

2.1 数组初始化概述

        Java中的数组必须先初始化才能使用;所谓初始化,就是为数组中的元素分配内存空间,并为数组元素赋值。

2.2 数组初始化方式

  • 动态初始化
  • 静态初始化

2.3 动态初始化

  • 定义:初始化时只指定数组长度,由系统为数组分配初始值;
  • 格式:数据类型 [ ] 变量名=new 数据类型[数组长度];
  • 范例:int [ ] arr = new int[5];

3.数组元素访问

  • 数组变量的访问方式        
    • 格式:数组名
  • 数组内部保存的数据的访问方式
    • 格式:数组名[索引]
  • 索引是数组中数据的编号方式
  • 作用:用于访问数组中的数据使用,数组名[索引]等同于变量名,是一种特殊的变量名;
    • 索引从0开始;
    • 索引是连续的;
    • 索引逐一增减,每次加1;

4.内存分配

4.1 Java种内存分配

        Java程序在运行时,需要在内存中分配空间,为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。

  • 栈内存:存储局部变量
  • 局部变量:定义在方法中的变量,使用完毕立即消失;
  • 堆内存:存储new出来的内容(实体、对象);每一个new出来的东西都有一个地址值,使用完毕,会在垃圾回收器空闲时被回收。
    • 数组在初始化时,会为存储空间添加默认值:
      • 整数:默认值0
      • 浮点数:默认值0.0
      • 布尔值:默认值false
      • 字符:默认值是空字符
      • 引用数据类型:默认值是null

4.2 数组内存图(单个数组)

 4.3 数组内存图(多个数组)

 4.4. 数组内存图(多个数组指向相同)

 5.数组初始化之静态初始化

  • 初始化时指定每个数组元素的初始值,由系统决定数组长度;
  • 格式:数组类型[ ] 变量名 = new 数据类型[ ] {数组1,数组2,数组3,……}
  • 范例:int [ ] arr=new int[ ] { 1,2,3};
  • 简化:int [ ] arr={1,2,3};

6.数组操作的常见小问题

  • 索引越界:访问了数组中不存在的索引对应的元素,造成索引越界问题。
int [ ] arr=new int[3];
System.out.println(arr[3]);//数组中一共存在三个元素:arr[0],arr[1],arr[2]
  • 空指针异常:访问的数组已经不再指向堆内存的数据,造成空指针异常。
int [ ] arr=new int[3];
System.out.println(arr[2]);
arr=null;//把null赋值给数组
System.out.println(arr[0]);
  •  null:空值,引用数据类型的默认值,表示不指向任何有效对象。

7.数组常见操作

7.1 遍历

int[] arr={1,2,3,4,5};
for(int i=0;i<5;i++) {
    System.out.println(arr[x]);
}

7.2 获取数组元素数量

  • 格式:数组名.length
  • 范例:arr.length;
  • 遍历通用格式
int[] arr={……};
for(int i=0;i<arr.length;i++) {
    System.out.println(arr[x]);//对arr[x]进行操作
}

 7.3 获取最值

  • 定义一个变量用来保存最大值;
  • 取数组中第一个数据作为变量的初始值;
  • 与数组中剩余的数据逐个对比;
  • 循环结束后打印变量的值
int[] arr={12,45,98,73,60};
int max = arr[0];
for(int i=1;i<arr.length;i++) {
    if(arr[x]>max){
        max=arr[x];
    }
}
System.out.println("max:"+max);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值