数据类型 [] 数组名字;
是引用型数据类型
初始化
-
即创建,包括:
-
静态初始化(有长度、有元素) :
int[]array=new int[]{1,2,3}; new int[] 其中可以省略,因为前面有定义int[]
动态初始化(有长度、没元素(默认值为0)):int []array=new int[3];
注: -
引用数据类型创建都用new,eg,Scanner x=new Scanner();
反例:Math.random();static修饰的静态方法
默认值
浮点默认值:0.0
字符型默认值:0
布尔型默认值:false
引用型默认值:null
重点掌握
1、见到new关键字相当于在堆内存中申请开辟了一块新的空间。
2、数组在堆内存的空间形态是一串连续的地址。
3、基本数据类型变量空间存储的是值,传递的就是值,一个改变,另一个不变。
4、引用型变量空间存储的地址(引用),传递的就是引用,一个改变,另一个跟着改变。
数组的特点
1、数组本身是一个引用型数据类型
2、数组是在堆内存中的一连串连续的地址存在
3、堆内存的数组空间长度一旦确定,不能再次发生改变
4、占内存的变量存储的是数组的地址引用
数组的遍历(轮询)
foreach语句遍历:
for(int v:a){
system.out.println(v);
}
等价于
for(int i=0;i<a.length;i++){
system.out.println(a[i]);
}
注:System,out,print(value+"\t") //表示输出结果以表格形式显示
相关实例
-
问题一:
-
给定两个数组 对应位置互换
-
方式一:交换数组对应的元素(循环好多次,受长度的限制,长度必须相等)
方式二:直接换变量a 和 b 中的数组引用(地址),没有循环一次就搞定啦!
问题二:
-
创建一个数组 存储2—100之间的素数
步骤:
-
0.找寻2—100之间素数个数——>确定数组长度(为创建数组动态初始化)
1.创建一个数组,存素数思路一:
-
0.通过一个几千次循环找 count(素数个数)
1.创建一个数组 长度(刚好没有空间多余)
3.通过一个几千次循环找素数,将素数存入
思路二:
-
0.创建一个足够长的数组
1.通过几千次循环找素数,存入
2.将存入素数的数组,后面部分0元素去掉(这里创建一个新数组,存好后,让原来的数组名=null //清内存)
二维数组
二维数组遍历(轮询):
for(int i=0;i<array.length;i++){
for(int j=0;j<array[i],length;j++){
int value=array[i][j];
System,out,print(value+"\t");
}
System,out,println(); // 换行
}
等价于
for(int []arr:array){
for(int value:arr){
System.out.print(value+"\t");
}
System.out.println();
}
实例
二维数组在内存中的存储(行列矩阵——树)
int [][]array=new int[3][2];//动态初始化
array[0][0]=10;
array[0][1]=20;
array[1]=array[0]; 引用复制过去,则原来的删除
array[0]=new int[4]; 新开辟空间,原来的引用去掉
array[0][0]=100;
System.out.prinln(array[1][0]);????

2462

被折叠的 条评论
为什么被折叠?



