数组的学习
1.数组的定义:
int[ ] arr=new int[ ]{1,2,3 };
简写为:
int[ ] arr={1,2,3};
2.数组地址值含义
直接打印数组代表地址值,其中
[ 代表数组的意思,
I 代表int类型数组,
@ 代表固定搭配分隔符,
B6d3589才是其真正地址
3.数组的动态初始化
int[ ] arr=new int[10];
在开辟空间后,还未被赋值的则会被默认赋予值,例如:int类型数组,默认值为0;
4.如何将一组数组顺序打乱?(觉得不是很满意,肯请指点,有没有只创建一组数组就可以完成)
1 import java.util.ArrayList; 2 import java.util.List; 3 4 public class Main { 5 public static void main(String[] args) { 6 int[] arr={1,2,3,4,5}; //一组为原数据 若在一组数组中操作可能会被打乱回去 7 int[] arr1=new int[5]; //另一组为打乱后顺序 8 List<Integer> list=new ArrayList(); //创建list集合用于生成不重复的随机数 9 for (int i = 0; i < arr.length; i++) { 10 int a=(int)(Math.random()*5); 11 while (list.contains(a)){ //保证不重复 12 a=(int)(Math.random()*5); 13 } 14 list.add(a); 15 } 16 for (int i=0; i < list.size(); i++) { 17 arr1[i]=arr[list.get(i)]; 18 System.out.println(arr1[i]); 19 } 20 } 21 }
5.数组的内存分析
在java中,有栈内存和堆内存,
栈内存通俗的讲是用来执行方法的,
堆内存用来存储 new 出来的数据。
“ = ” 的意思是赋地址值的意思。将堆内存中数组的首地址值赋值给栈内存中的arr。
6.关于数组的数据共享
简单的数就是
将arr1的地址值赋值给arr2,这样一来就可以共享数据,同时修改同步效果。