java基础知识-数组

数组

  • 数组概念:数组是存储相同类型值的固定长度的容器。

数组的定义

数组是一种数据结构,用来存储相同类型的值,并且可以通过下标来对数组中的值进行访问,接下来介绍几种常见的定义数组的方式。

  1. 数组元素类型[] 数组变量名 = new 数组类型[长度];

    数组元素类型代表存储在数组中的元素的数据类型,包括之前的基本数据类型和引用数据类型,[]代表的是数组,new是关键字,长度表示这个数组有多大,因为数组是固定大小的,如果不输入长度,就会报错。长度一旦确定,就不能再进行更改。有些时候我们也可以写成 数组元素类型 数组变量名[]这种形式。

    例如: int[] array = new int[5];

    在这里我们定义了一个长度为5的int数组,我们只能存储5个int类型的值。

  2. 数组元素类型[] 数组变量名 = new 数组类型[] {元素1,元素2…}

    这种定义数组的方式和上面类似,但是上面只是定义了一个数组,没有提供初始值,而这种方式不仅创建了一个数组同时还提供了初始值。在这里,我们没有直接指定长度,长度是根据后面的元素个数来定的。

​ 同时,java还提供了一种简写形式, int[] array = {元素1,元素2,元素3…};

数组的访问

数组一旦创建,就可以通过一个下标(也可称之为索引)来进行访问,但是要注意的是,数组的索引是从0开始的,即array[0] 代表数组的第一个元素,

public static void main(String[] args) {
        int[] a = new int[]{1,2,3,4,5};
        System.out.println(a[2]);
    }

在这里插入图片描述
当创建一个数字数组时,所有的元素都默认为0,而对于boolean数组,元素会初始化为false,而对于对象数组的元素则初始化为null值。除了可以通过索引值来对数组净心血管访问,也可以修改数组元素。

a[2] = 3;//将数组中第三个元素的值修改为3

我们刚刚说过,数组索引是从0开始的,所以如果定义一个长度为5的数组,我们最多只能访问到4,如果访问a[5]将会出现数组索引越界异常。

public static void main(String[] args) {
        int[] a = new int[]{1,2,3,4,5};
        System.out.println(a[5]);
    }

在这里插入图片描述
要想获得数组的元素个数据,也可以通过length方法,

public static void main(String[] args) {
        int[] a = new int[]{1,2,3,4,5};
        System.out.println("数组的长度是" + a.length);
    }

在这里插入图片描述
接下来,我们讨论一下数组的存储

public static void main(String[] args) {
          int[] a = new int[]{1,2,3,4};
        System.out.println(a);
    }

在这里插入图片描述
我们直接打印数组,得到的一串奇怪的数字,这个是数组在内存中的地址,凡是new 出来的,都在堆内存中存储,在这里我们简单了解一下jvm虚拟机对内存的划分(借用一下别人的图)

区域名称作用
寄存器给cpu使用的,和开发无关
本地方法栈jvm在使用操作系统功能的时候使用,和开发无关
方法区存储可以运行的class文件
堆内存存储对象或者数组,凡是通过new创建的,都存储在堆内存中
方法栈方法运行时使用的内存,比如main方法,在方法栈中执行

我们在变量中存储的是数组的地址,通过地址,就可以在堆内存中找到对应的数组。

public static void main(String[] args) {
    int[] a = new int[]{1,2,3,4};
    int[] b = a;
    System.out.println("数组a的地址:" + a);
    System.out.println("数组b的地址: " + b);
}

在这里插入图片描述

我们发现打印的两个地址相同,说明通过赋值给的是当前数组的地址。

关于数组一些方法,就不在这里一一说明了,可以通过查api文档获取。还有一个就是数组的遍历,通过循环来将数组中的每个元素的值取出来,(也可以通过Arrays的toString()方法,它会返回一个包含数组元素的字符串)

public static void main(String[] args) {
        int[] a = new int[]{1,2,3,4};
        for(int i = 0; i < a.length; i++){
            System.out.print(a[i] + ",");
        }
        System.out.println();
        System.out.println(Arrays.toString(a));
    }

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值