一、数组赋值机制
数组在默认情况下是引用传递,赋的值是地址。
package com.jun.demo01;
public class demo08 {
public static void main(String[] args) {
//基本数据传递
int a = 10;
int b = a ;
b = 20;
System.out.println("a=" + a);
System.out.println("b=" + b);
//数组是引用传递
int[] arr1 = {1,2,3};
int[] arr2 = arr1;
arr2[0] = 4;
//遍历数组
for (int i = 0; i <arr1.length ; i++) {
System.out.print(arr1[i] + "\t");
}
}
}
二、内存图
二、数组的拷贝
package com.jun.demo01;
public class demo09 {
public static void main(String[] args) {
//创建一个数组
int[] arr1 = {1,2,3,4};
int[] arr2 = new int[arr1.length];
//遍历数组,将数据存入arr2
for (int i = 0; i < arr1.length ; i++) {
arr2[i] = arr1[i];
}
//修改arr2数据
arr2[0] = 5;
for (int i = 0; i < arr1.length ; i++) {
System.out.print("arr1:" + arr1[i]);
}
System.out.println();
for (int i = 0; i <arr2.length ; i++) {
System.out.print("arr2:" + arr2[i]);
}
}
}
三、数组翻转
方法一
package com.jun.demo01;
public class demo10 {
public static void main(String[] args) {
//定义一个数组
int[] arr = {1,2,3,4,5,6};
//用于接收数组的长度
int len = arr.length;
int num = 0;
System.out.println("原始数组");
for (int i = 0; i <len ; i++) {
System.out.print(arr[i]);
}
System.out.println(" ");
//数组翻转
for (int i = 0; i < len/ 2; i++) {
num = arr[len -1 - i];
arr[len - 1 - i] = arr[i];
arr[i] = num;
}
System.out.println("翻转后的数组");
//遍历数组
for (int i = 0; i <len ; i++) {
System.out.print(arr[i]);
}
}
}
方法二
package com.jun.demo01;
public class demo11 {
public static void main(String[] args) {
//定义一个数组
int[] arr = {1,2,3,4,5,6};
//创建一个新的数组
int[] arr2 = new int[arr.length];
for (int i = arr.length - 1,j = 0; i >= 0 ; i--,j++) {
arr2[j] = arr[i];
}
System.out.println("翻转后的数组");
//遍历数组
for (int i = 0; i <arr2.length ; i++) {
System.out.print(arr2[i]);
}
}
}