数组
数组特点
1.数组本身是引用数据类型,但是里面也能存放基本类型,也能存放引用类型。
2.数组当中的数据必须类型统一。
3.【重点】数组的长度一旦确定,不可以发生改变。
创建数组
初始化:在内存当中为数组开辟空间,并且赋予一个默认值。
两种初始化方式:
动态初始化(指定长度):
静态初始化(指定内容):
动态初始化
格式: 数据类型 数组名称[ ] = new 数据类型 [ 长度]
左侧的 [ ]:代表这是一个数组
左侧的数组名称:就是自定义的标识符
右侧的new关键字:代表创建的动作
右侧的数据类型:必须和左侧完全一样
右侧[ ]中的长度:也就是数组当中能放几个数据的个数。
int [ ]arrayA = new int [3];
(°_°)…4
静态初始化
静态初始化用来指定句体的元素内容
格式: 数据类型 [ ] 数组名称 = new 数据类型 [ ] {元素1,元素2,元素3..
} ;
省略格式:数据类型 [ ] 数组名称 = {元素1,元素2,元素3…..} ;
int [ ] arrayA = { 10,20,30};
注意:
静态初始化虽然没有直接指定长度,但是根据内容也可以推算得到长度。
静态初始化省略格式,虽然没有new关键字,但是内存当中仍然还是会开辟空间创建数组的。
动态初始化/静态初始化,都可以分成两个步骤。
int [ ] arrayB;
arrayB = new int [3];
int [ ] arrayC;
array C = new int [ ] {5,10,15,20};
如果知道了数组的固定长度,但是内容不确定 ,尽量使用动态初始化顶顶长度。
如果直接知道了数组句体的元素内容,那么就可以直接使用静态初始化指定内容。
一般使用省略格式。
访问数组元素
格式:数组名称 [索引编号]
索引编号:从0开始,一直到数组长度-1为止。
改变数组元素的内容,格式一样
数组名称 [索引编号] = 数据值;
array[1]= 10;
动态初始化 如果制定了长度 没说具体元素是什么 如果是整数默认值为 0
小数默认为0.0 字符默认为 ‘\u0000’布尔 false 引用类型默认为 null。
java内存划分
五个部分
栈Stack 方法的执行都在这里,存放的都是局部变量。
局部变量,凡是在方法{}里边的变量,或者方法的参数,都叫做~
堆Heap: 凡是new出来的东西,都在堆里。
堆当中的数据都会有一个默认值,规则如下
整数 0
浮点数 0.0
字符\u0000
布尔 false
引用欸行 null
方法区 存储.class相关信息,包含方法信息。
本地方法栈 Native Method Stack
寄存器 pc Register
数据索引越界异常
索引编码超出范围。
空指针异常
数组只是进行了定义,没有new或者{ }初始化,那么数组不能用。
null赋值 不算初始化。
如何方便快捷获取数组的长度
格式
数组名称.length
将会得到一个int数字,代表元素个数。
int len = array . length;
数组的遍历打印输出
堆一大堆数据一个一个逐一处理,一般情况下,就是打印输出,
int [ ] array = {10,20,30};
int len = array.length;
for(int i = 0;i