JavaSE之数组

数组入门

变量一次只能存放一个值;数组,是一种容器可以存放多个数据值。

数组的特点:

  1. 数值是一种引用数据类型
  2. 数据当中多个数据,类型必须统一
  3. 数组的长度在程序运行期间不可改变

数组的初始化: 在内存中创建一个数组,并向其中赋予一个默认值。

两种常规的初始化:

  1. 动态初始化(指定长度)
  2. 静态初始化(指定内容)

动态初始化数组的格式:

  • 数据类型[ ] 数组名称 = 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};

注意事项:

  1. 静态初始化没有指定长度,但是仍然会自动推算得到长度。
  2. 静态初始化的标准格式可以拆分为两个步骤
  3. 动态初始化也可以拆分为两个步骤
  4. 静态初始化一旦使用省略格式,就不能拆分成为两个步骤了

使用建议:
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]);
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨DaB

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值