数组(Array)之概念

1. 数组的概念

是一种可以同时存放多个数据值的容器
  • 数组的特点
    • 数组是引用数据类型(所以内存分配上java的数组分配在堆上)
    • 数组当中的多个数据,类型必须统一
    • 数组的长度在程序运行期间不可改变

2. 数组的定义(初始化)

在Java程序开发中,使用数组之前要先把这个数组创建出来,这就是数组的初始化。
也就是在内存当中创建一个数组,并且向其中赋予一些默认值。
因为数组是引用类型,声明数组只是声明一个引用类型的变量,并不是数组对象本身,只要让数组变量指向有效的数组对象,程序中就可使用该数组变量来访问数组元素。所谓数组初始化就是让数组名指向数组对象的过程,该过程主要分为两个步骤,一是对数组对象进行初始化,即为数组中的元素分配内存空间和赋值,二是对数组名进行初始化,即为数组名赋值为数组对象的引用。

2.1 两种常见数组初始化的方式

分为静态初始化和动态初始化
1.动态初始化(指定数组长度)

数据类型[] 数组名称 = new 数据类型[长度];
int[] arrS = new int[8];

2.静态初始化(指定内容)

数据类型[] 数组名称 = new 数据类型[] {元素1,元素2,元素3,...};
  int[] arrB = new int[] {1,2,3};
  String[] arrC = new String[] {"aaa","bbb"};

静态初始化数据的时候,格式还可以省略一下

数据类型[] 数组名称 = {元素1,元素2,元素3,...};
int[] arr = {1,2,3};

3.注意
(1)静态初始化和动态初始化都可以拆分成两个步骤
但是静态初始化的省略格式不可以拆分成两个步骤 报错

//拆分
int a[];  //定义数组,即声明一个int类型的数组a[ ]
a=new int[3];  //给数组元素分配内存空间。

(2)初始化的时候元素默认值

/*
使用动态初始化数组的时候,其中的元素将会自动拥有一个默认值。规则如下:
如果是整数类型,那么默认为0;
如果是浮点类型,那么默认为0.0;
如果是字符类型,那么默认为'\u0000';
如果是布尔类型,那么默认为false;
如果是引用类型,那么默认为null。

注意事项:
静态初始化其实也有默认值的过程,只不过系统自动马上将默认值替换成为了大括号当中的具体数值。
 */
public class Demo05ArrayUse {

    public static void main(String[] args) {
        // 动态初始化一个数组
        int[] array = new int[3];

        System.out.println(array); // 内存地址值
        System.out.println(array[0]); // 0
        System.out.println(array[1]); // 0
        System.out.println(array[2]); // 0
        System.out.println("=================");

        // 将数据123赋值交给数组array当中的1号元素
        array[1] = 123;
        System.out.println(array[0]); // 0
        System.out.println(array[1]); // 123
        System.out.println(array[2]); // 0
    }

}

数组的访问

直接打印数据名称,得到的事数组对应的内存地址哈希值

int[] arr = new int[]{11,22,33};
 System.out.println(arr);//[I@4554617c
//上面的哈希值含义:[代表数组类型 I代表里面数据都是int @后面是十六进制的数
  • 索引:数组中元素的编号(从0开始,一直到“数组的长度-1”为止)
//定义存储int类型数组,赋值元素1,2,3,4,5
        int[] arr = {1,2,3,4,5};
        //为0索引元素赋值为6
        arr[0] = 6;
        //获取数组0索引上的元素
        int i = arr[0];
        System.out.println(i);
        //直接输出数组0索引元素
        System.out.println(arr[0]);
posted @ 2021-01-28 16:31  风餮  阅读(439)  评论(0)    收藏  举报