一、数组的创建:
第一步:声明
类型一:数组元素类型[] 数组名;(常用)
int[] intArray = null;
类型二;数组元素类型 数组名[];
int intArray[] = null;
注意没有初始化的数组是无法正常使用的
第二步:初始化
初始化的时间:
可以在声明的时候直接初始化
有的可以先声明后初始化
初始化的方式:(初始化的时候必须确定数组的长度)
第一种方式:int[] shuzu = new int[3];//按照默认值初始化0
第二种方式:int[] shuzu = new int[]{3,32,34};//长度根据元素个数确定
第三种方式:int[] shuzu = {23,234,23,4}//上面的简化版本,根据元素个数确定数组的长度
二、数组的默认值
基本类型默认值是 0(0、0.0、0所代表的字符(nul空)、false)
引用类型默认值是 null
在这里我们用代码来解释吧:
System.out.println("---------------------------------------");
System.out.println("int类型数组");
int[] scoreArray = new int[5];//基本类型
System.out.println(scoreArray[0]);
System.out.println(scoreArray[2]);
System.out.println(scoreArray.length);
System.out.println("---------------------------------------");
System.out.println("double类型数组");
double[] doubleArray = new double[5];
System.out.println(doubleArray[0]);
System.out.println(doubleArray[2]);
System.out.println(doubleArray.length);
System.out.println("---------------------------------------");
System.out.println("char类型数组");
char[] charArray = new char[5];
System.out.println(charArray[0]);
System.out.println(charArray[4]);
System.out.println(charArray.length);
System.out.println("---------------------------------------");
System.out.println("boolea类型数组");
boolean[] booleanArray = new boolean[5];
System.out.println(booleanArray[0]);
System.out.println(booleanArray[4]);
System.out.println(booleanArray.length);
System.out.println("---------------------------------------");
System.out.println("String类型数组");
String[] strArray = new String[5];//引用类型
System.out.println(strArray[0]);
System.out.println(strArray[1]);
输出结果如下:
整型(int)、浮点型(double、float)、字符类型(char)、boolea类型统称基本数据类型(前三者统称数值类型)属于基本类型
字符串型(String)属于 引用类型
三、引用类型变量与基本类型变量创建不同
基本类型变量:声明出来不管是否赋值,都已经分配了内存(存储实际数据或者内存地址)。
引用类型变量:创建分为两步:声明和初始化
第一步:声明在栈内分配内存(存储引用,或者存储内存地址)
第二步:初始化 在堆或者方法区分配内存(存储实际的数据) 。New出来的在堆里面分配内存。程序运行常量放在方法区里面。
上图中值类型即为基本类型
四、数组的值可直接修改
int[] intArray = {20,23,52,15,13};
System.out.println(intArray[2]);//52
intArray[2] = 13;
System.out.println(intArray[2]);//13
但在Java中String的值无法直接修改,Java中String一旦赋值将无法修改。
实际并不是完全不能修改,我们可以通过反射(value[])来对需要修改的String进行修改。