数组
格式
- 数据类型 [ ] 变量名
- 数据类型 变量名[ ]
初始化
动态初始化
- 数据类型 [ ] 变量名 = new 数据类型[数组长度];
静态初始化
- 数据类型 [ ] 变量名 = new 数据类型[ ] { 数据1 , 数据2 , 数据3 , ……} ;
索引
定义
- 索引是数组中数据的编号方式
- 数组变量访问方式
格式:数组名 - 数组内部保存的数据的访问方式
格式:数组名[索引]
作用
- 索引用于访问数组中的数据使用,数组名[索引]等同于变量名,是一种特殊的变量名
特点
- 索引从0开始
- 索引是连续的
- 索引逐一增加,每次加1
内存分配
栈内存
栈内存:存储局部变量存储局部变量
定义在方法中的变量,例如:arr
使用完毕,立即消失
堆内存
堆内存:存储new出来的内容(实体,对象)
默认值
数组在初始化时,会为存储空间添加默认值
整数:0
浮点数:0.0
布尔:false
字符:空字符
引用数据类型:null
每一个new出来的东西都有一个地址值
使用完毕,会在垃圾回收器空闲时被回收
数组操作常见问题
-
索引越界:访问了数组中不存在的索引对应的元素,造成索引越界问题
-
空指针异常:访问的数组已经不再指向堆内存的数据,造成空指针异常
-
最大值 例子 定义一个整型int 类型 使其等于其取值范围最小然后就可以比较,如果比较的数大于max 则可以将其赋值给max 实现最大值的输出
int max= Integer.MIN_VALUE; -
最小值 也一样的原理:int min = integer. Max_VALUE;
-
输出数组的时候 可以使用遍历数组
例如:
1.使用for 循环输出其对应的数
for (int i=0;i<number.length;i++){//遍历number数组使输出到控制台
System.out.println(number[i]);
}
2.还有一种简单的方法 Arrays.toString(数组) 可以直接输出其对应数组
System.out.println(Arrays.toString(数组));
注意使用2方法时要导入对应的包;
冒泡排序
package heima4.练习1;
public class 冒泡{
public static void main(String[] args){
int arr[]={1,2,3,5,9,4};
for(int i=0;i<arr.length-1;i++){//-1是因为数组是从0开始计数的
for (int j=0;j<arr.length-1-i;j++){//-i是因为前面以及将其排在指定位置了 不需要再进行循环
if(arr[j]>arr[j+1]){
int a=arr[j];
arr[j]=arr[j+1];
arr[j+1]=a;
}
}
}
for (int i = 0; i < arr.length; i++)
System.out.print(arr[i] + " ");
}
}