数组
数组的声明和创建
public class Demo01 {
public static void main(String[] args) {
//变量类型 变量的名字 = 变量的值
//数组类型 数组的名字
int[] nums; //1.声明一个数组
nums=new int[10]; //2.创建一个数组 分配初始大小
//1.2可以合到一起写成 int[] nums=new int[10];
//3.给数组元素赋值
nums[0]=1; //数组索引从零开始
nums[1]=2;
nums[2]=3;
nums[3]=4;
nums[4]=5;
nums[5]=6;
nums[6]=7;
nums[7]=8;
nums[8]=9;
nums[9]=10;
//计算所有元素的和
int sum=0;
//获取数组长度:arrays.length
for (int i = 0; i <nums.length ; i++) {
sum=sum+nums[i];
}
System.out.println("sum:"+sum);
}
}
//输出 sum:55
三种初始化及内存分析
-
内存分析
- 声明数组:int[] array; 在栈里
- 创建数组:array=new int[10]; 在堆里
-
三种初始化
-
静态初始化
-
动态初始化
-
数组的默认初始化
public class Demo02 { public static void main(String[] args) { //静态初始化:创建+赋值 int[] a={ 1,2,3,4,5,6,7,8}; //{}可以代表赋值 System.out.println(a[0]); //动态初始化:包含默认初始化 int[] b=new int[10]; //声明+初始化(创建空间) b[0]=10; System.out.println(b[0]); System.out.println(b[1]); //输出0,虽然没有给b[1]赋值,但是在初始化的时候默认为0 } }
-
数组边界
- 下标的合法区间:[0,length-1],如果越界就会报错
- ArrayIndexOutOfBoundsException:数组下标越界异常
数组的使用
- for-each循环
- 普通for循环
public class Demo03 {
public static void main(String[] args) {
int[] arrays={
1,2,3,4,5};
//打印全部的数组元素
for (int i = 0; i <arrays.length ; i++) {
//快捷键:fori然后enter
System.out.println(arrays[i]);
}
System.out.println("==================");
//计算所有元素的和
int sum=0;
for (int i = 0; i <arrays.length ; i++) {
sum+=arrays[i];
}
System.out.println("sum="+sum);
System.out.println("=======================");
//查找最大元素
int max=arrays[0];
for (int i = 0; i <arrays.length ; i++) {
if(arrays[i]>max){
max=arrays[i];
}
}
System.out.println("max="+max);
}
}
- 增强型for循环
public class Demo04 {
public