一、数组定义
同一中类型数据的集合,即数组相当于一个容器,用来存放相同类型的数据。
二、数组特点
数组中的数据都有一个唯一的编号,下标从0开始。
三、数组的格式
元素类型[] 数组名 = new 元素类型[数组长度]
eg: int[] a = new int[10]; //a是一个能存放int类型数据的数组类型,能存储10个元素,默认为0
四、内存分配
Java程序在运行时,需要在内存中分配空间,为了提高运算效率,又对空间进行了不同区域的划分。因为每一片区域都有特定的处理方式和存储管理方式。
1、栈内存: 用于存储局部变量(定义方法内的变量,定义在方法内的参数,for循环内定义的变量等),当数据使用完,变量所占空间会自动释放,ps:上面的int[] a,就是在栈内存中,a存的是实体在堆中的地址值。
2、堆内存:
通过new创建的实体,在堆中就会开辟空间用来存new出来的实体,数组和对像,ps:new int[10]就是在堆内存中。
每一个实体都有内存地址值,用来赋值给栈中的变量。
实体中的变量都有默认初始化值,初始化值由变量类型决定。
实体使用完毕后,会在不确定的时间内被垃圾回收器回收。
3、方法区:(共享区,数据区)
用于存放类的方法和static修饰的变量
4、本地方法区:待续
5、寄存器:待续
五、取数组最大最小值
最大值:
public int getMax(int[] arr) { int max = 0;//这里存的是数组第一个值的下标 for(int x = 1; x < arr.length; x ++ ) { if(arr[x] > arr[max]) max = x; { return arr[max]; }
不直接比较数值大小是因为如果数组内存的是负数,初始化为0,那么最大值就是0,得不出数组的最大值。
最小值同理。
六、排序
//选择排序
public void selectSort(int[] arr) { for(int x = 0; x < arr.length; x ++) { for(int y = x+1; y < arr.length; y++) { if(arr[x] > arr[y]) { int temp = arr[x]; arr[x] = arr[y]; arr[y] = temp; } } } }
//冒泡排序
public void bubbleSort(int[] arr)
{
for(int x = 0; x < arr.length - 1; x ++)
{
for(int y = 0; y < arr.length-x-1; y++)
{
if(arr[y] < arr[y+1])
{
int temp = arr[y];
arr[y] = arr[y+1];
arr[y+1] = temp;
}
}
}
}