一.什么是数组

1.是可以 一次性声明大量的存储空间用来存储数据的变量

2. 要存储的数据通常都是同类型数据

3数组中的元素是被存储在一段连续的内存空间中

二.数组的格式

格式:数据类型 [ ] 变量名

数据类型包括int、double、boolean、char、String

三.数组的初始化

数组的初始化分为:动态初始化和静态初始化

Java中的数组必须先初始化,然后才能使用

初始化:就是为数组中的数组元素分配内存空间,并为每个数组元素赋默认值

整数:默认值0

浮点数:默认值0.0

布尔值:默认值false

字符:默认值是空字符

引用数据类型:默认值是null

动态初始化

格式:数据类型 [ ] 变量名 = new 数据类型[数组长度];

静态初始化

格式:数据类型 [ ] 变量名= new 数据类型[ ]{数值1,数值2,...数值n};

简化后格式:数据类中[ ] 变量名 = {具体数据内容};

注意:

采用动态初始化,计算机会给出默认值

访问数组元素的方式

格式:数组名[索引]

注意:

1:索引是指下标,下标从0开始一直到数组长度-1

2:索引是连续的

3:索引逐一增加,每次加1

数组内存分析




java动态初始化一维数组 java一维数组的初始化_java动态初始化一维数组


栈内存:存储局部变量定义在方法中的变量,例如:strs

使用完毕,立即消失

堆内存:存储new出来的内容(实体,对象)数组在初始化时,会为存储空间添加默认值

整数:0

浮点数:0.0

布尔:false

字符:空字符

引用数据类型:null

每一个new出来的东西都有一个地址值

使用完毕,会在垃圾回收器空闲时被回收

在采用动态初始化,将会给数组赋默认值

而当改变数组中某个位置上的值,默认值也将随之更改为所赋得值

当给对象重新定义数组长度,则原数组长度也随之改变,若比原初始的数组长度短,则会丢弃后面的数据,反之,创建新的,赋默认值

数组常见的问题

  1. 索引越界

当定义了int[] a =new int [3];

出现了System.out.println(a[3]);即越界

new int[3]是指下标从0开始到2 ps:数组下标0,1,2。可存放三个数

  1. 空指针异常

int[] a = new int[3];

System.out.println(a[2]); 这是可以进行输出的

但如果把 null赋值给数组a即 a = null; 则出现空指针

数组常见的操作

一维数组遍历格式

int[] a = new int[3];//定义数组
for(int i = 0; i < a.length; i++){ //遍历数组
System.out.println(a[i]);//输出
}