数组:
定义:相同类型变量的集合,连续的空间;
特征:
1、数组名,即标识符,连续空间的首地址;
2、元素下标标明了元素在数组中的位置,从0开始;
3、每个数组都可以通过下标来访问;
4、数组长度固定不变,避免数组越界;
使用数组四步走:
1、声明数组 int score[];int[] score;【声明时不能指定数组长度】
2、分配空间 数据类型[ ] 数据名 = new 数据类型[大小] int[ ] score = new int[30];【注意关键字new和数组长度】
3、赋 值 int[ ] score = {89,79,76}; int[ ] score = new int[ ]{89,79,76 }【数组名+下标】
4、处理数据 【使用,数组名+下标,下标从0开始】
Ps.数组名.length代表数组长度
会出现的错误:
java.lang.ArrayIndexOutOfBoundsException 数组越界异常
java.lang.NullPointerException 空指针异常【int[] ns = null;】
常用做法:
1、声明+ 分配空间:不确定数组个数时
int[] a = new int[10];
2、声明+分配空间+赋值:确定数组初始化数据时,数组长度由初始值来决定
int[] a = {1,2,3,4,5};
数组遍历:
1、for循环:遍历的次数由数组长度来决定,数组长度:arr.length属性,开始索引以0开始,结束索引为arr.length-1
for(int i=0;i<arr.length;i++){
//数据通过数组名+索引(下标)来获取
int tmp=arr[i];
}
注意:java.lang.ArrayIndexOutOfBoundsException 数组索引越界异常
2、foreach循环:不涉及索引
for(int t : arr){
//t为每次循环从数组中取到的数据,不使用赋值和使用索引的情况
int tmp=t;
}
数组new后,初始值:
int/short/ long/char/byte 0
double/float 0.0
boolean false
String hull
堆栈:
栈:赋值时是具体的值;
堆:开辟一个栈用于存放堆所在的地址;