day04数组
-
了解数组的定义
-
掌握数组的动态初始化
-
掌握数组的静态初始化
-
掌握数组的遍历
-
掌握数组求最值
-
掌握数组的排序 冒泡排序
-
了解数组的内存图
-
了解java的内存分配
-
了解一个数组内存图
-
了解多个数组指向各自空间的内存图
-
了解多个数组指向同一内存的内存图
-
1.数组的定义
数组就是用来存储相同数据类型数据的容器
1.1数组定义的格式
/*
数组定义格式
数据类型 [] 变量名;
int [] arr;//定义了一个数组,只能存放int类型相匹配的数据
数据类型 变量名 [];
double brr[];//定义了一个double类型的数组,可以存放和double相匹配的数据
*/
public class Demo01数组定义格式 {
}
1.2数组的动态初始化
/*
数组的动态初始化:
数据类型 [] 数组名 = new 数据类型[长度];
*/
public class Demo02数组的动态初始化 {
public static void main(String[] args) {
//定义一个长度为3的int类型的数据
int [] arr = new int[3];
//定义一个长度为5的float类型的数组
float [] brr = new float[5];
}
}
1.3动态初始化数组的基本操作 取值 赋值
/*
动态初始化数组的基本操作
取值:
格式:数组的数据类型 变量名 = 数组名[索引];
索引:是数组在内存中开辟空间编号,从0开始到数组长度减一 例如 数组的长度为5 数组最大索引是4
赋值:
格式:arr[索引] = 值;
*/
public class Demo03动态初始化数组的基本操作 {
public static void main(String[] args) {
//动态初始化一个长度为5的int类型的数组
int [] arr = new int[5];//数组的长度为5 只能存放int类型相匹配数据,他的索引是0 1 2 3 4
//取值:格式:数组的数据类型 变量名 = 数组名[索引];
int a = arr[0];//取出0索引对应的数值 存放到变量a中
//打印a
System.out.println(a);
int b= arr[1];
System.out.println(b);
int c= arr[2];
System.out.println(c);
int d= arr[3];
System.out.println(d);
int e= arr[4];
System.out.println(e);
System.out.println("--------");
for (int i = 0; i < 5; i++) {
/*System.out.println(i);*/
int f = arr[i];
System.out.println(f);
}
System.out.println("------------------");
//赋值:格式:arr[索引] = 值;
arr[0] = 10;
arr[1] = 20;
arr[2] = 30;
arr[3] = 40;
arr[4] = 50;
for (int i = 0; i < 5; i++) {
int x = arr[i];
System.out.println(x);
}
}
}
1.4数组的静态初始化
/*
数组的静态初始化:
格式1:
数据类型[] 数组名 = new 数据类型[]{.........}
int [] arr = new int[]{1,2,3,4,5,6,7,8,9,0}
格式2:
数据类型[] 数组名 = {............};
int [] brr = {1,2,3,4,5,6,7,8,9};
提示:
静态初始化数组推荐使用格式2,当存储元素是已知数据时推荐使用数组的静态初始化
静态初始化数组有默认值,默认值是初始化是赋给的值
*/
public class Demo04数组的静态初始化 {
public static void main(String[] args) {
int [] brr = {1,2,3,4,5,6,7,8,9};
int a = brr[0];
System.out.println(a);
System.out.println("----------");
for (int i = 0; i < 9; i++) {
System.out.println(brr[i]);
}
System.out.println("---------------");
int [] crr = {1,2,3,4,5,6,7,8,9,0};
/*
求数组的长度 数组提供了一个属性length 用来求数组的长度
使用格式:
int l = 数组名.length;
*/
int l = crr.length;
System.out.println(l);
int length = brr.length;
System.out.println(length);
//取出数组中所有元素 打印到控制台
for (int i = 0; i < crr.length; i++) {
System.out.println(crr[i]);
}
}
}
1.5 动态初始化数组有默认值
/*
动态初始化数组有默认值:
基本类型的数组有默认值:
byte short int long数组 默认值是0
float double 数组 默认值是0.0
boolean 数组 默认值是false
char 数组 默认值 '\u0000'
引用数据类型数组的默认值是:null
*/
public class Demo05动态初始化数组有默认值 {
public static void main(String[] args) {
//int 数组 默认值是0
int[] arr = new int[3];
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
System.out.println("-----------");
//byte 数组 默认值是0
byte [] brr = new byte[3];
for (int i = 0; i < brr.length; i++) {
System.out.println(brr[i]);
}
System.out.println("-----------");
short [] crr = new short[3];
for (int i = 0; i < crr.length; i++) {
System.out.println(crr[i]);
}
System.out.println("------------");
long [] drr = new long[3];
for (int i = 0; i < drr.length; i++) {
System.out.println(drr[i]);
}
System.out.println("------------");
float[] err = new float[3];
for (int i = 0; i < err.length; i++) {
System.out.println(err[i]);
}
System.out.println("------------");
double[] frr = new double[3];
for (int i = 0; i < frr.length; i++) {
System.out.println(frr[i]);
}
System.out.println("------------");
boolean [] grr = new boolean[3];
for (int i = 0; i < grr.length; i++) {
System.out.println(grr[