数组(!)

本文详细介绍了Java中的数组,包括数组的概念、声明方式、创建过程、数组长度及其特点。强调了数组是相同类型数据的有序集合,数组下标从0开始,长度不可变。还提到了数组的默认初始化和边界问题,并通过示例展示了如何避免数组边界错误。此外,文章还讨论了如何通过Arrays工具类显示数组内容以及数组作为对象的特性。
摘要由CSDN通过智能技术生成

目录

数组的概念

数组的定义

数组的声明

创建数组

创建数组过程分析

注意

数组的长度

数组的四个基本特点

数组边界

小结


数组的概念

  • 数组Array,标志是[ ] ,用于储存多个相同类型数据的集合

  • 想要获取数组中的元素值,可以通过脚标(下标)来获取

  • 数组下标是从0开始的,下标的最大值是数组的长度减1

  • 图像解析

数组的定义

  • 数组是相同类型数据的有序集合

  • 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成

  • 其中,每一个数据称作一个数组元素,每个数据元素可以通过一个下标(索引)来访问他们。(数组的下标排序是从0开始的)

数组的声明

  • 首先声明数组变量,才能在程序中使用数组。

  • 声明数组变量的语法:

    dataType[] arrayRefVar; //首选方法
    int [] array;
    或
    dataType arrayRefVar[];     //效果相同但不是首选方法。(这个C++的语法,是为让从C++工程师更快的了解Java设定的)
    int array[];

创建数组

  • Java语言使用new操作符来创建数组

  • 数组的创建方式一般分为动态初始化静态初始化

  • 静态初始化------------------------------------------------------------------------>知道了数组中存放的集体元素

    int [] num = {1,2,3,4};
    Man[] mans = {new.Man(1,1),new Man(2,2)};
  • 动态初始化------------------------------------------------------------------------>先指定类型与长度,后续再存自定义的值

    int[] a = new int[2];
    a[0] = 1;
    a[2] = 2;
  • 数组的默认初始化:

    数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素

    也被按照实例变量同样的方式被隐式初始化。

创建数组过程分析

  • 程序创建数组 int[] a = new int[5]; 时发生了什么?

    1. 在内存中开辟连续的空间,用来存放数据,长度是5

    2. 给数组完成初始化过程,给每个元素赋予默认值,int类型默认值是0

    3. 数组完成初始化会分配一个唯一的地址值

    4. 把唯一的地址值交给引用类型的变量a去保存

    5. 可以根据下标改变元素的值

注意

  • 数组名是个引用类型的变量,它保存着的是数组的地址值,不是数组中的数据。不可以直接打印具体内容

  • 由于Java对char类型做了底层处理,所以char[]可以直接打印具体内容

  • 但除了char类型以外,其他任何类型的数组想要查看数组中具体元素,需要借助数组的工具类来完成

  • 需要使用数组的工具类Arrays的toString(数组名)

  • 代码实现

     public static void main(String[] args) {
            char[] b = {1,2,'中',4,'A'};//可以定义数字但是会输出空格(方块)
            int[] a = {1,2,3,4,5};
            System.out.println(a);//[I@1b6d3586 地址值
            System.out.println(b);//••中•A
            System.out.println(Arrays.toString(a));//[1, 2, 3, 4, 5]
        }

数组的长度

数组的长度用 length属性来表示,数组一旦创建,长度不可改变 数组的长度允许为0

array.length            //array : 定义的数组名字

数组的四个基本特点

  • 其长度是确定的。数组一但被创建,它的大小就是不可变的。

  • 其元素必须是相同类型,不允许出现混合类型

  • 数组中的元素可以是任何数据类型,包括:基本类型和引用类型

  • 数组变量属于引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。

    数组本身就是对象,Java中对象实在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的。

数组边界

  • 下标的合法区间:[0,length-1],如果越界就会报错;

  • ArrayIndexOutOfBoundsException:数组下标异常

小结

  • 数组是相同数据类型(数据类型可以是任意类型)的有序集合

  • 数组也是对象。数组元素相当与对象的成员变量

  • 数组的长度是确定的,不可变的。如果越界,就会报:ArrayIndexOutOfBoundsException:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值