数组入门
变量一次只能存放一个值;数组,是一种容器可以存放多个数据值。
数组的特点:
- 数值是一种引用数据类型
- 数据当中多个数据,类型必须统一
- 数组的长度在程序运行期间不可改变
数组的初始化: 在内存中创建一个数组,并向其中赋予一个默认值。
两种常规的初始化:
- 动态初始化(指定长度)
- 静态初始化(指定内容)
动态初始化数组的格式:
- 数据类型[ ] 数组名称 = new 数据类型[数据长度];
解析含义:
- 左侧数据类型 也就是数组中保存的数据,全部都是同意的什么类型
- 左侧中括号 代表一个数组
- 左侧的数组名 给数组创建的名称
- 右侧的new 创建数组动作
- 右侧数据类型 必须和左侧数据类型保持一致
- 右侧中括号的长度 即表示数组中到底可以保存多少数据,是一个int型数据
public class DemoArray {
public static void main(String[] args) {
//创建一个数组,里面可以存放300个int型数据
//格式:数据类型[] 数组名称 = new 数据类型[数据长度];
int[] arrayA = new int[10];
//创建数组,可以存放10个double型数据
double[] arrayB = new double[10];
//创建一个数组,能存放5个字符串
String[] arrayC = new String[5];
}
}
数组的定义格式
动态初始化(指定长度): 在创建数组的时候,指定数组中的数据元素个数
静态初始化(指定内容): 在创建数组时,不直接指定数据个数多少,而是直接将具体的内容进行指定
静态初始化基本格式:
数据类型[ ] 数组名称 = new 数据类型[数据长度]{元素1,元素2,元素3};
省略格式:
数据类型[ ] 数组名称 = {元素1,元素2,元素3};
注意事项:
- 静态初始化没有指定长度,但是仍然会自动推算得到长度。
- 静态初始化的标准格式可以拆分为两个步骤
- 动态初始化也可以拆分为两个步骤
- 静态初始化一旦使用省略格式,就不能拆分成为两个步骤了
使用建议:
5. 如果不确定数组中的具体内容,用动态初始化,
6. 已经确定了具体的内容,用静态的初始化
public class DemoArray02 {
public static void main(String[] args) {
//直接创建一个数组,里面装着全部都是int数字,具体为......
int[] arrayA = new int[] {5,15,20,25,30};
//创建一个数组,用来装字符串:“Hello”...
String[] arrayB = new String[] {"Hello","world","java"};
//省略格式的静态初始化
int[] arrayC = {5,15,20,25,30};
//静态初始化拆分为两个步骤
int [] arrayD;
arrayD = new int[] {1,2,3,4,5};
//动态初始化拆分为两个步骤
int [] arrayE;
arrayE = new int[5];
}
}
访问并获取数组元素
直接打印数组名称,得到的是数组所对应得 内存地址的 哈希值
- 二进制:01
- 十进制:0123456789
- 16进制:0123456789abcdef
访问数组元素的格式 :
- 数组名称[索引值]
- 索引值:是一个int型数字,代表数组中元素的编号。
- 【注意】索引值从 0 开始,一直到“数组的长度-1为止”
使用动态初始化数组时,其中的元素会自动拥有一个默认值,
默认值的规则如下:
整型 默认为0;
浮点 默认值0.0;
字符 默认值’\u0000’;
布尔 默认值false;
引用 默认值null.
注意事项:
静态初始化也有默认值的过程,只不过系统自动马上将默认值替换成大括号当中的具体数值; 先默认,在替换,读取
/*
* 直接打印数组名称,得到的是数组所对应得 内存地址的 哈希值
* 二进制:01
* 十进制:0123456789
* 16进制:0123456789abcdef
*
* 访问数组元素的格式 :
* 数组名称[索引值]
* 索引值:是一个int型数字,代表数组中元素的编号。
* 【注意】索引值从0开始,一直到“数组的长度-1为止”
*/
public class DemoArrayUse {
public static void main(String[] args) {
// 静态初始化
int[] array = {10,20,30};
System.out.println(array);// [I@65b3120a
//打印访问后的数组数据
System.out.println(array[0]);//10
System.out.println(array[1]);//20
System.out.println("-------");
//将数组的数据赋值给变量,使用变量打印输出
int num = array[2];
System.out.println(num);
System.out.println("=======");
//动态初始化数组
int[] arrayA = new int[5];
System.out.println(array);//内存地址值
System.out.println(arrayA[0]);//0
System.out.println(arrayA[1]);//0
System.out.println("========");
//将123赋值给arrayA[1]
arrayA[1] = 123;
System.out.println(arrayA[1]);
}
}