一.数组的定义
定义:数组是一种数据类型,存储相同数据类型的一组数据
声明一个变量是在内存中开辟一个空间,声明数组就是在内存中开辟一串连续的空间
二.定义方式
1.动态初始化
只声明长度,由系统为数组分配初始值
int[] arr = new int[3];
系统默认为数组中的每个元素提供初始值
| 数据类型 | 初始值 |
|---|---|
| int | 0 |
| double | 0.0 |
| bool | false |
| 引用数据类型(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};
}
}
三.索引
所以用于访问数组中的元素
索引有三个特点:
- 从0开始
- 索引是连续的
- 索引逐一增加,每次加一
四.内存分配
栈内存
栈内存:存储局部变量
- 定义在方法中变量,如:arr
- 使用完毕,立即消失
堆内存
堆内存存储new出来的内容(实体,对象)
数组的内存分配
int[] arr = new int[3];
等号左边的 arr 是方法中的变量,属于局部变量,存放在栈内存中
等号右边的 int[3] 是new出来的,存放在堆内存中
输出arr
输出arr[2],先通过arr访问到地址00xx,然后根据索引访问到arr[2]的值,最后返回