数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按无序的形式组织起来的一种形式。这些无序排列的同类数据元素的集合称为数组。
格式1:数据类型[] 数组名;(推荐使用)
格式2:数据类型 数组名[];
//数组的定义: 数据类型[] 数组名 int[] aa; //定义了一个int类型的数组——这个数组中只能存放int类型的数据 String[] ss; //定义了一个String[]数组——只能存放String类型的数据 double[] dd; //另一种定义方法(不常用) 为了兼容C语言的写法 int aaa[]; String sss[]; /* int x; System.out.println(x); //变量定义完,不赋值,是不能使用的!!! */就是为数组中的数组元素分配内存空间,并为每个数组元素赋值。
注意: Java中的数组必须先初始化,然后才能使用。
格式 数据类型[] 数组名 = new 数据类型[数组长度];
// 数组长度指定后,不能改变 int[] aa = new int[5]; // 初始化数组,并制定数组的长度为5(这个数组中最多可以存放5个int类型数据) String[] ss = new String[10];格式 数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…}; 简化格式 数据类型[] 数组名 = {元素1,元素2,…};
int[] aa = new int[]{4,1,3,8,8,9}; // 创建了一个6个长度的数组,并完成了赋值 String[] ss = new String[]{"aaa","bbb","ccc"}; int[] aaa = {1,2,4,5,8,9}; //创建了一个6个长度的数组,并完成了赋值 String[] sss = {"aaa","bbb","ccc"};索引 每一个储存到数组的元素,都会自动分配一个编号,这个编号就是数组索引(index)(下标),可以通过数组的索引访问到数组中的元素
格式 数组名[索引]
数组长度属性 每个数组都具有长度,而且是固定的,Java中赋予了数组的一个属性,可以获取到数组的长度 语句为: 数组名.length 属性length的执行结果是数组的长度,int类型结果。 由次可以推断出,数组的最大索引值为数组名.length-1 。
通过索引访问数组中的元素 数组名[索引]=数值,为数组中的元素赋值 变量=数组名[索引],获取出数组中的元素
内存是计算机中的重要原件,可以用来给程序临时存储数据。我们编写的程序,必须放进内存中才能运行,运行完毕后会清空内存。 Java虚拟机要运行程序,必须要对内存进行空间的分配和管理。
JVM的内存划分: 寄存器,给CPU使用,和我们开发无关。 本地方法栈: JVM在使用操作系统功能的时候使用,和我们开发无关。 方法区: 存储可以运行的class文件。 堆内存: 存储对象或者数组,new来创建的,都存储在堆内存。 方法栈(栈内存): 方法运行时使用的内存,比如main方法运行,进入方法栈中执行。
上面运行结果中所提示的错误信息是数组越界异常ArrayIndexOutOfBoundsException,出现这个异常的原因是数组的长度为4,其索引范围为0~3,而上述代码中的第4行代码使用索引4来访问元素时超出了数组的索引范围。
思想 相邻两个数进行比较,第一波比较后,最大的数在最后。(每比较完之后,后面的数就减少一个比较 )
for(int k = 0;k<aa.length-1;k++){ for(int i=0;i<aa.length-1-k;i++){ if(aa[i]>aa[i+1]){ //相邻的两个数据比较 ,满足条件就交换顺序 int temp = 0; temp = aa[i]; aa[i] = aa[i+1]; aa[i+1]=temp; } } }