数组(Array): 特点: ·引用数据类型 ·有多个数据,类型必须统一 ·数组长度在程序运行中不可改变 初始化: 动态初始化(指定长度): 数据类型[] 数组名称 = new 数据类型[数组长度] 静态初始化(指定内容):数据类型[] 数组名称 = {元素1,元素2,...} 注: ·静态初始化没有直接指定长度,但仍会自动推算得到长度 ·不确定具体内容用动态,确定具体内容用静态 ·直接打印数组名称,得到的数组对应的内存地址值 访问数组元素的格式: 数组名称[索引值] 索引值从0开始,一直到数组的长度-1为止 Java的内存划分为5个部分: 1.栈(stack):存放方法的局部变量,方法的运行在栈当中 局部变量:方法的参数,or方法{}内的变量 作用域:一旦超出作用域,立即从栈中消失 2.堆(Heap):凡是new出来的东西都放在堆当中 堆内存里面的东西有一个地址值:16进制 堆内存放的数据都有默认值,规则: 整数 0 浮点数 0.0 字符 \ u000 布尔 false 引用类型 null 3.方法区(Method Area):存储.class的相关信息,包含方法的信息 4.本地方法栈(Native Method Stack):与操作系统有关 5.寄存器(pc Register):与cpu相关 数组使用常见错误: ·索引越界 ·空指针异常:忘记了new初始化 获取数组的长度: 数组名称.length
// 创建数组
// 动态初始化
// int[] arrayA = new int[10];
// 静态初始化
// int arrayB = new int[]{2,3,4}
// 获取数组长度
int[] arrayA = {2,8,5,6,9};
int len = arrayA.length;
System.out.println(len);
// 获取数组的每个元素
for (int i = 0; i < arrayA.length; i++) {
System.out.println(arrayA[i]);
}
// 获取数组中最大值
int max = arrayA[0];
for (int i = 1; i <arrayA.length ; i++) {
if (arrayA[i]>max){
max = arrayA[i];
}
}
System.out.println(max);
// 数组元素反转
for (int Min = 0,Max = arrayA.length-1; Min <Max ; Min++,Max--) {
int temp = arrayA[Min];
arrayA[Min] = arrayA[Max];
arrayA[Max] = temp;
}
for (int i = 0; i < arrayA.length; i++) {
System.out.println(arrayA[i]);
}
遍历数组每个元素的便捷代码: 数组名称.fori
//当产生多个返回值时,可用数组来接收
public static int[] calculate(int a, int b ,int c){
int sum = a+b+c;//求和
int avg = sum/3;//平均数
int[] arrayB = {sum , avg};
return arrayB;
}
int[] resault = calculate(10,20,30);
System.out.println(resault[0]);
System.out.println(resault[1]);