1.Java数组的定义和作用

455 阅读2分钟

一.数组的定义

定义:数组是一种数据类型,存储相同数据类型的一组数据

声明一个变量是在内存中开辟一个空间,声明数组就是在内存中开辟一串连续的空间

二.定义方式

1.动态初始化

只声明长度,由系统为数组分配初始值

int[] arr = new int[3];

系统默认为数组中的每个元素提供初始值

数据类型初始值
int0
double0.0
boolfalse
引用数据类型(String)null
字符空字符

2.静态初始化

声明数组的同时对数组元素赋初始值

int[] arr = new int[]{3, 45, 60};

Simplify

int[] arr = {3, 45, 60};

package com.huaweiyun.array;

/**
 * 数组的定义:
 *  1.动态初始化
 *  2.静态初始化
 */
public class ArrayDemo01 {
    public static void main(String[] args) {
        // 1.动态定义 系统默认为数组中的每个元素提供初始值
        // int -> 0, double -> 0.0, 引用数据类型(String) -> null,
        // bool -> false, 字符默认值为空字符
        int[] arr1 = new int[3];// 数组arr1只能存放三个int类型的整数
        System.out.println(arr1);// [I@4eec7777 arr是引用数据类型
        System.out.println(arr1[0]);// 获取第一个元素 0
        // 对数组中的第一个元素重新赋值
        arr1[0] = 12;
        System.out.println(arr1[0]);

        // 2.静态定义
        int[] arr2 = new int[]{3, 45, 60};
        System.out.println(arr2[2]);// 输出数组arr2中的第三个元素
        // Simplify
        int[] arr3 = {3, 45, 60};

    }
}

三.索引

所以用于访问数组中的元素

索引有三个特点:

  1. 从0开始
  2. 索引是连续的
  3. 索引逐一增加,每次加一

四.内存分配

栈内存

栈内存:存储局部变量

  • 定义在方法中变量,如:arr
  • 使用完毕,立即消失

堆内存

堆内存存储new出来的内容(实体,对象)

数组的内存分配

int[] arr = new int[3];

等号左边的 arr 是方法中的变量,属于局部变量,存放在栈内存中

等号右边的 int[3] 是new出来的,存放在堆内存中

输出arr

Snipaste_2023-02-17_03-34-21.png

输出arr[2],先通过arr访问到地址00xx,然后根据索引访问到arr[2]的值,最后返回

Snipaste_2023-02-17_03-58-15.png