数组:
数组到底是什么呢?有什么特点呢?通过上面的分析:我们可以得到如下两句话:
1、数组是存储同一种数据类型多个元素的集合。也可以看成是一个容器。
2、数组既可以存储基本数据类型,也可以存储引用数据类型。
语句定义格式:
格式1:数据类型[] 数组名;
举例:int[] arr; 推荐第一种方式。
格式2:数据类型 数组名[];
举例:int arr[] 定义一个存放int类型数据的数组。
为什么不推荐使用第二种方式。
从辨识度来看,第一种一眼就能识别是一个数组。
从使用长久来看,今后使用的趋势是第一种,第二种渐渐会被淘汰。
数组不初始化不能被使用,初始化?
初始化就是给这个变量开辟一个内存空间,为将来的值提供存放的空间
那么数组如何初始化呢?
两种:
1、动态初始化:初始化时只指定数组长度,由系统为数组分配初始值。
动态初始化的语句格式:
存放元素的数据类型[] 数组名 = new 存放元素的数据类型[数组的长度];
举例:定义一个可以存放3个int类型数据的数组。
int[] bigdata15 = new int[3];
2、静态初始化:初始化时指定每个数组元素的初始值,由系统决定数组长度。
int[] arr = new int[3];
左半部分:
* int: 表示数组中存放元素的数据类型是int类型
* []: 表示是一个一维数组
* arr: 数组名字,符合标识符规则
*
右半部分:
* new: 就是为数组在堆内存中开辟一个内存空间
* int: 表示数组中存放元素的数据类型是int类型
* []: 表示是一个数组
* 3: 表示数组中最多可以存放元素的个数(数组本身的长度)
* ;: 表示一个语句的结尾
//如何获取数组中的元素呢?
//java在数组中提供了一个类似于下标的说法,我们可以通过下标获取到该下标位置上的元素
//这个下标有一个专业的叫法:索引(index)
//从左往右编号,从0开始
// 举例:现在数组的长度是3,索引从0开始,最大可以到2,也就是长度-1
// 获取数组元素的格式:数组名[想要获取元素的对应索引]
动态初始化
package com.shujia.wyh.day06;
public class ArrayDemo1 {
public static void main(String[] args) {
int[] arr = new int[3];
System.out.println(arr);
System.out.println(arr[0]); //获取第一个元素 0
System.out.println(arr[1]); //获取第二个元素 0
System.out.println(arr[2]); //获取第三个元素 0
}
}
如何给数组中的元素进行赋值呢?
通过数组中的索引给元素进行赋值
package com.shujia.wyh.day06;
public class ArrayDemo2 {
public static void main(String[] args) {
//定义一个数组并动态初始化
//定义一个存放int元素类型的数组,最多可以存放3个。
int[] arr = new int[3];
System.out.println(arr);
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
System.out.println("============================");
//手动赋值
//给数组中第一个元素进行赋值
arr[0] = 10;
//给数组中第二个元素进行赋值
arr[1] = 20;
//给数组中第三个元素进行赋值
arr[2] = 30;
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
}
}
定义两个数组,先定义一个数组,赋值,输出。
然后定义第二个数组的时候把第一个数组的地址赋值给第二个数组。
然后给第二个数组赋值,再次输出两个数组的名及元素。
package com.shujia.wyh.day06;
public class ArrayDemo4 {
public static void main(String[] args) {
//定义第一个数组
int[] arr1 = new int[3];
arr1[0] = 11;
arr1[1] = 22;
arr1[2] = 33;
System.out.println(arr1);
System.out.println(arr1[0]);//11
System.out.println(arr1[1]);//22
System.out.println(arr1[2]);//33
//定义第二个数组的时候把第一个数组的地址赋值给第二个数组。
int[] arr2 = arr1;
arr2[0] = 100;