Day04
第八章 数组
8.1 数组定义
public class Demo01Array {
public static void main(String[] args) {
int[] arrayA = new int[300];
double[] arrayB = new double[300];
String[] arrayC = new String[300];
}
}
public class Demo02Array {
public static void main(String[] args) {
int[] arrayA = new int[] {5, 15, 25};
String[] arrayB = new String[] {"Hello", "World", "Java"};
}
}
public class Demo03Array {
public static void main(String[] args) {
int[] arrayA = {10, 20, 30};
int[] arrayB;
arrayB = new int[] {11, 21, 31};
int[] arrayC;
arrayC = new int[5];
}
}
public class Demo05Array {
public static void main(String[] args) {
int[] arrayA = new int[3];
System.out.println(arrayA);
System.out.println(arrayA[0]);
System.out.println(arrayA[1]);
System.out.println(arrayA[2]);
arrayA[1] = 123;
System.out.println(arrayA[0]);
System.out.println(arrayA[1]);
System.out.println(arrayA[2]);
}
}
8.2 访问数组
public class Demo04Array {
public static void main(String[] args) {
int[] arrayA = {10, 20, 30};
System.out.println(arrayA);
System.out.println(arrayA[0]);
System.out.println(arrayA[1]);
System.out.println(arrayA[2]);
int num = arrayA[1];
System.out.println(num);
}
}
8.3 Java中的内存划分
Java的内存需要划分成为5个部分:
- 栈(Stack) :存放的都是方法中的局部变量。方法的运行一定要在栈当中。
局部变量:方法的参数,或者是方法()内部的变量 作用域:—旦超出作用域,立刻从栈内存当中消失。 - 堆(Heap):凡是new出来的东西,都在堆当中。
堆内存里面的东西都有一个地址值:16进制堆内存里面的数据,都有默认值。
规则: 如果是整数????????????????默认为0 如果是浮点数????????????默认为0.0 如果是字符????????????????默认为‘\u0000’ 如果是布尔????????????????默认为false 如果是引用类型????????默认为null
- 方法区(Method Area):存储.class相关信息,包含方法的信息。
- 本地方法栈(Native Method Stack) :与操作系统相关。
- 寄存器(pc Register) : 与CPU相关。
8.4 一个数组的内存图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l7t6yNJ9-1641568109960)(index_files/18813a04-e4ad-48b1-8187-6b7a24edfc10.png)]
8.5 练习数组的反转和数组作为方法的参数
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0f9fyfb8-1641568109961)(index_files/ab8c4926-55e9-4240-8d0b-31d9fb4a174a.png)]
public class Demo06ArrayReverse {
public static void main(String[] args) {
int[] array = {10, 20, 30, 40, 50};
int l = array.length - 1;
printArray(array);
System.out.println("====================");
for (int i = 0; i < l; i ++, l--){
swap(array, i, l);
}
printArray(array);
}
public static void swap(int[] array, int i, int j){
int temp;
temp = array[i];
array[i] = array[j];
array[j] = temp;
}
public static void printArray(int[] array){
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
}
}
8.6 数组作为方法的返回值
public class Demo02ArrayReturn {
public static void main(String[] args) {
int[] result = calculate(10, 20,30);
System.out.println("总和:" + result[0]);
System.out.println("平均值:" + result[1]);
}
public static int[] calculate(int a, int b, int c){
int sum = a + b + c;
int avg = sum / 3;
int[] array = {sum, avg};
return array;
}
}
|