数组
数组
数组中存放的是同一类型的多个数据
声明:数据类型[] 数组名字 = new 数据类型[数量]
int[] nums;//首选
int nums[];//不推荐
int[] nums = new int[10];//定义了10个int类型的数据存放在nums数组中
数组的赋值和提取,可以通过数组下标来操作,数组的下标是从0开始
数组的长度可以用 数组名.length属性来获取
数组声明定义时对应内存的状态
栈:存放基本变量类型(包含这个基本类型的具体数值),存放引用对象的变量(这个引用对象在堆里面的具体地址)
存储声明数组的数据变量名字(int[] nums)
堆:存放new出来的对象和数组,可以被所有线程共享,不会存放别的对象引用
存储数组的变量值(每一个下标对应一个值,这个值存储在堆中)
数组的初始化
初始化有默认初始化、静态初始化、动态初始化
默认初始化:
int[] nums = new int[10];
当没有给数组赋值时,int数组默认初始化都是0,即每个元素值都是0;String类型默认是null;char默认是Unicode码中0对应的字符;
double默认0.0;float默认是0.0F
静态初始化:用大括号括起来
int[] nums = {1,2,3,4};
动态初始化:先默认初始化,再动态初始化
int[] nums = new int[3];
int[0]=123;
int[1]=234;
int[2]=456;
数组的特点
- 数组的长度固定,大小不可改变,如果越界,会报ArrayIndexOutofBounds
- 数组内的类型必须是相同类型;
- 数组的元素类型可以是基础类型也可以是引用类型
- 数组属于应用类型,可以看成是一个对象,数组中的每个元素相当于对象的成员变量。数组对象本身是在堆中
冒泡排序
原理:(从小到大)
①两两比较大小,把较大的数放后面,较小的数放前面;
②一次遍历循环,就可以从数组中找到最大的数,并把它放到数组的最后位置;
③执行第二次循环,就可以找到第二大的数字,并把它放到数组倒数第二的位置上
④执行nums.length-1次循环,就可以实现从小到大的顺序排列。
public static int[] sortaec(int[] nums){
int temp = 0;
for(int i=0;i<nums.length-1;i++){
for(int j =0;j<nums.length-1;j++){
if(nums[j]>nums[j+1]){
temp = nums[j];
nums[j] = nums[j+1];
nums[j+1] = temp;
}
}
}
return nums;
}