Java数组

目录

一、数组的定义格式

 二、动态初始化

三、静态初始化

四、索引

默认初始化值

 五、内存分配

六、数组操作出现的两个常见异常

索引越界异常

空指针异常

七、数组遍历和获取最大值的一些思路

八、两个数组内存分配


数组就是存储数据长度固定的容器,存储多个数据的数据类型要一致。

一、数组的定义格式

1.格式一

数据类型[] 数组名

int[] arr;        
double[] arr;      
char[] arr;
//对应的数组内只能存储相应的数据类型

2.格式二

数据类型 数组名[]

int arr[];
double arr[];
char arr[];

 二、动态初始化

数组动态初始化就是只给定数组的长度,由系统给出默认初始化值。

动态初始化格式:

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

int[] arr = new int[3];

等号左边:

int:数组的数据类型(如果是浮点型就用double或者float,以此类推)

[]:代表这是一个数组(不可省略)

arr:代表数组的名称(可以自定义)

等号右边:

new:为数组开辟内存空间(在堆空间内开辟)

int:数组的数据类型(要与等号左边的数据类型一致) 

[]:代表这是一个数组(不可省略)

[]内的数:代表数组的长度(例如,如果[]内是3,则代表有3个长度)

 下面用代码来更加直观的了解数组

package com.wedu.array;

public class Demo2Array {
    /*
      在初始化的时候, 需要手动指定数组的长度, 系统会为数组容器分配初始值.

      动态初始化格式:数据类型[] 数组名 = new 数据类型[数组的长度];

      注意:打印数组变量的时候, 会打印出数组的内存地址

      [I@10f87f48 :
        [ : 当前的空间是一个数组类型
        I : 当前数组容器中所存储的数据类型
        @ : 分隔符
       
        10f87f48 : 十六进制内存地址
        0 1 2 3 4 5 6 7 8 9 a b c d e f
     */
    public static void main(String[] args) {
        // 数据类型[] 数组名 = new 数据类型[数组的长度];
        // 通过new关键字创建了一个int类型的数组容器, 该容器可以存储5个int类型的整数, 该容器被arr数组变量所记录
        int[] arr = new int[5];
        // [I@10f87f48
        System.out.println(arr);

        byte[] bArr = new byte[3];
        // [B@b4c966a
        System.out.println(bArr);

    }
}

三、静态初始化

在创建数组的时候就直接写死的元素

四、索引

数组内的元素都会有一个从0开始的编号,这个编号就是索引,英文名index,在编写程序时,我们可以通过数组的索引访问到数组中的元素,索引就像是你填的收货地址,卖家可以通过收货地址找到你,我们也可以通过索引找到数组中的元素。

访问格式:数组名[索引];

注意:数组在创建完毕后,即使没有赋值,也可以取出,但取出的元素都是默认初始化值

默认初始化值

数值型:整型(int,byte,short,long)的默认值为0,浮点型(float,double)的默认值为0.0

布尔型(boolean):false

默认值为null的类型有字符型(char);引用类型,如String,数组还有自定义对象等;局部变量,因为局部变量不会进行默认的初始化,所有他们必须在进入方法体后被明确的赋值。

静态变量和实例变量都会被默认初始化,这依赖于其数据类型

 五、内存分配

内存很重要,我们编写的程序都存放在硬盘中,而硬盘中的程序不会运行,必须放入内存才能运行,Java虚拟机要运行程序,必须要对内存进行空间的分配和管理。

目前我们只需要记住两个内存,分别是:栈内存和堆内存

六、数组操作出现的两个常见异常

索引越界异常

当数组长度为3,索引范围是0~2,但是我们却访问了一个3的索引。

程序运行后,将会抛出ArrayIndexOutOfBoundsException 数组越界异常。在开发中,数组的越界异常是不能出现的,一旦出现了,就必须要修改我们编写的代码。

将错误的索引修改为正确的索引范围即可。

空指针异常

当把null赋值给数组,arr = null 这行代码,意味着变量arr将不会在保存数组的内存地址,也就不允许再操作数组了,因此运行的时候会抛出 NullPointerException 空指针异常。在开发中,空指针异常是不能出现的,一旦出现了,就必须要修改我们编写的代码。

给数组一个真正的堆内存空间引用即可。

七、数组遍历和获取最大值的一些思路

八、两个数组内存分配

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

今年不养猪只除草

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值