Java一维数组
本文将记录学习Java关于一维数组的知识总结,以便日后复习及查漏补缺。
一维数组的概念
1.数组是存储同***多个同种数据类型元素*** 的集合。也可以看成是一个容器。
2.数组既可以存储基本数据类型,也可以存储引用数据类型。
一维数组的定义格式
1.格式一:数据类型[ ] 数组名,例如:int[] a; 定义一个int类型的数组a变量;
2.格式二:数据类型 数组名[ ],例如:int a[]; 定义一个int类型的a数组变量;
注意:这两种格式定义完,数组中是没有元素的,数组中元素赋值的行为成为初始化,接下来我们看如何为数组初始化。
数组的初始化
数组初始化概述
Java中的数组必须先初始化,然后才能使用,所谓初始化,就是为数组中的数组元素分配内存空间,并为每个数组元素赋值。
Java中内存分配
Java程序在运行时,需要在内存中的分配空间。为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。
1.栈:存储局部变量(在方法定义中或方法声明上的变量都称为局部变量),栈内存的数据用完就释放掉;
2.堆:存储new出来的东西,特点,
A:每个new出来的东西都有地址值;
B:每个变量都有默认值,byte、short、int、long类型默认值为0,
float、double类型默认值为0.0,char类型默认值为’\u0000’,
Boolean类型默认值为false,引用类型默认值为null;
C:使用完毕就变成了垃圾,但是并没有立即回收,会在垃圾回收器空闲的时候回收。
3.方法区:
4.本地方法区;
5.寄存器(给CPU使用)。
初始化方式
动态初始化
动态初始化时只指定数组长度,由系统为数组分配初始值,
动态初始化的格式:数据类型[] 数组名 = new 数据类型[数组长度],例如:int[] arr = new int[3];
左边:
int:说明数组中的元素的数据类型是int类型
[]:说明这是一个数组
arr:是数组的名称
右边:
new:为数组分配内存空间。
int:说明数组中的元素的数据类型是int类型
[]:说明这是一个数组
3:数组长度,其实也就是数组中元素的个数
静态初始化
初始化时指定每个数组元素的初始化值,由系统决定数组长度,
格式:数据类型[] 数组名 = new 数据类型[ ]{元素1,元素2,…},例如:int[] arr = new int[]{1,2,3},简化版:int[] arr = {1,2,3};
数组操作中常见的问题
1.数组索引越界:ArrayIndexOutOfBoundsException,表明表明所访问的索引不存在;
2.空指针异常:NullPointerException,表明数组引用没有指向实体,却在操作实体中的元素。