A:为什么要有数组:(容器)//没学之前用变量存储数值
为了存储同种数据类型的多个值B:数组的概念 数组是存储同一种数据类型多个元素的集合,也可以看成容器 数组既可以存储基本数据类型,也可以存储引用数据类型 C:数据定义格式: 数据类型【】数组名 = new 数据类型【数组的长度】 左边:int:数据类型 【】:代表的是数组,几个中括号就代表几维数组 arr:合法的标识符 **右边:**new :创建新的实体或对象 int:数据类型 【】:代表数组 5:代表长度 eg:int [] arr = new int [5];
数组初始化: A:为数组开辟连续的内存空间,并为每个数组元素赋值 B:如何初始化: a:动态初始化:只指定长度,由系统给初始化值int[] arr = new int [5] b:静态初始化:给出初始化值,根据数值个数由系统决定长度
int []arr = new int[5];//动态初始化,创建五个连续空间 System.out.println(arr[0]);//系统给出默认初始化值,整数类型都是0
开辟空间时,每个地址都有默认初始化值 整数类型:byte,short ,int ,long,//默认初始化值为0 浮点型:float ,double//默认初始化值为0.0 布尔型:boolean //默认初始化值为false 字符型:char//默认初始化值为’\u0000’ //char在内存中两个字节,是16个二进制位 \u0000,每一个0代表16进制,4个0代表16个二进制位
A:栈
存储局部变量局部标量:定义在方法声明上和方法中的变量B:堆
存储new出来的数组或对象C:方法区:
面向对象部分讲解D:本地方法区:
和系统相关E:寄存器
给cpu使用A:静态初始化的格式: 格式:数据类型【】数组名 = new 数据烈性【】{元素1,元素2…} 简化格式: 数据类型【】数组名 ={元素1,元素2} B:案例演示: 对数组的解释 输出数组名称和数组元素
两种格式区别: 第一种:可以先声明后赋值 eg:int【】arr;arr=new int【】{1,3,4,5,9} 简写形式声明和赋值在同一行
A:案例 a:数组索引越界异常 原因:访问了不存在的索引 b:空指针异常: 原因:数组已经 不再指向堆内存了,而你还用数组名区访问元素 int【】arr = {1,2,3}; arr = NULL; System。out。println(arr【0】);
数组的遍历:一次输出数组中的每一个元素 数组属性:arr.length数组的长度 数组最大索引:arr.length-1 提高复用性,使用循环 int[]arr ={1,2,3,4,5,6} for(int i = 1;i<length-1;i++){ System.out.println(arr[i]); }
数组的遍历: 1.返回值类型void//打印每一个元素,不需要返回值 2.参数列表int【】arr
public static void main(String[]args){ //数组的遍历 int [] arr = {1,2,3,89,5,6}; shuzu (arr); } public static void shuzu(int []arr){ for(int i=1;i<=arr.length-1;i++){ System.out.println(arr[i]+" "); } }A:数组获取最值:(获取数组中最大值和最小值)
public class Arry { public static void main(String[]args){ int []arr = {10,513,6,541,13,-60,-10,-90,}; int max= getMax (arr); System.out.println("最大值为:"+max); int min = getMin(arr); System.out.println("最小值为:"+min); } public static int getMax(int []arr ){ int max = arr[0]; for(int i=1;i<arr.length;i++){ //从数组第二个元素开始遍历 if(max<arr[i]){ //如果 max记录值<数组中元素 max = arr[i]; //max记录值 } } return max; } public static int getMin(int [] arr){ int min = arr[0]; for(int i=0;i<arr.length;i++){ if(arr[i]<min){ min = arr[i]; } } return min; } }