然然,哎嘿嘿我的然然
P52 数组
数组声明创建
首先必须声明数组变量,才能在程序中使用
int[] nums;//声明
int nums2[];//这种方法不是常用的,只是兼容C++
Java语言使用new操作符来创建数组
dataType[] arrayRefVar = new dataType[arraySize];//伪代码
nums = new int[10];
给数组元素中赋值
nums[0] = 1;
nums[1] = 2;//没赋值的时候,会有默认值,int是0
nums.length//数组长度
Java内存分析
内存图
在声明的时候在栈有数组
只有new的时候在堆里才会有
一般声明和new会一起
int[] nums2 = new int [10];
int a[][] = new int[2][5];//二维数组
静态初始化
int[] a = {1,2,3,4,5,6,7,8}//静态初始化不可改值
int[][] array = {{1,2},{2,3},{3,4},{4,5}}//二维数组
动态初始化
int[] b = new int[10];//动态初始化
b[0] = 10;//赋值
数组的四个基本特点
- 其长度是确定的,一旦被创建大小就不可改变
- 元素必须是相同类型
- 元素可以是任何数据类型,包括基本类型和引用类型
- 数组变量属引用类型,数组也可以看作对象,数组中的每个元素相当于该对象的成员变量,数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,<font color='red'> 数组对象本身是在堆中的</font>
P57 Arrays类
数组的工具类java.util.Arrays
P58 冒泡排序
//冒泡排序
public static int[] sort(int[] array){
for (int i = 0; i < array.length-1; i++) {
boolean flag = false;//通过flag标志位减少没有意义的比较
//内层循环,比较判断两个数,如果第一个数比第二个数大,则交换位置
for (int j = 0; j < array.length-1-i; j++) {
if(array[j+1] > array[j]){
int temp = 0;
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
flag = true;
}
}
if(!flag){
break;
}
}
return array;
}