/** * @author WanJl * @version 1.0 * @title Demo09 * @description java引用数据类型 * @create 2026/7/15 */ public class Demo09 { /* Java中的数据类型分为两类: 基本数据类型 引用数据类型 |- 类 所有使用class修饰的,都是类 |- 数组 是一种用来存储多个数据的容器 数组是用来存储多个相同类型的值的容器。 数组的特点: 1、是连续存储,数组中的每个值,称为数组的元素,所有元素都是存储在连续的内存空间中,通过索引值来访问。 2、Java数组有一个属性:length 表示数组的长度 3、数组创建的时候必须要指定数组的类型,数组里面要存什么类型的元素。 4、数组中只能存储同一种类型的元素。 5、数组的长度一旦确定,就不能改变 6、数组的索引值(下标)从0开始,对应第一个元素,到 length-1 为止,对应最后一个元素 定义数组的格式: 数据类型 [] 数组名(变量名); */ public static void main(String[] args) { //数据类型 [] 数组名(变量名); //声明数组变量 int[] a; //这是一个int类型的数组变量,为它赋值的地址对应的数组必须是整数类型 //对数组变量进行初始化赋值 //【动态初始化】赋值,格式: 数组变量名=new 数组类型[数组长度]; a=new int[10]; System.out.println(a); //输出a,就会输出 这个数组在堆内存中的地址值 /* 比如地址值: [I@b4c966a [ 表示这是一个一维数组 I 表示这是一个int类型的数组 @ 分隔符 b4c966a 是这个数组在堆内存中的地址值 */ // 所谓的动态初始化,就是先定义了数组的长度,并且为数组的空间每个元素都赋值初始值。 // 初始值 就是 数组类型的默认值,比如整数默认值:0、小数默认值:0.0、char类型的默认值 是空字符 \u0000、布尔类型的默认值是 false //我们可以直接声明数组并且进行动态初始化赋值 int[] arr=new int[10]; //粗暴的理解:动态初始化就是 程序员负责定义数组长度,计算机负责为数组元素赋值。 /* 为数组中的某个元素赋值--格式: 数组名[索引值]=变量(字面量); */ arr[0]=1; int x=15; arr[1]=x; //访问(使用/输出)数组元素: // 数组名[索引值] System.out.println(arr[0]); //第一个元素,被赋值为1 ,所以输出就是1 System.out.println(arr[1]);//第二个也一样 System.out.println(arr[2]); //第三个元素因为没有赋值,所以输出就是0 //我们可以使用循环来快速的遍历整个数组的所有元素 // 数组名.length 就可以获取这个数组的长度 for (int i = 0; i < arr.length; i++) { //数组名[索引值] System.out.println(arr[i]); } // /* 【静态初始化】 数组数据类型[] 数组名=new 数组数据类型[]{数组元素1,数组元素2,....,数组元素n}; 静态初始化是程序员负责为数组元素赋值,计算机负责计算数组的长度。 简写方式: 数组数据类型[] 数组名={数组元素1,数组元素2,....,数组元素n}; */ //数组数据类型[] 数组名=new 数组数据类型[]{数组元素1,数组元素2,....,数组元素n}; int[] arr1=new int[]{1,3,5,7,9,6,2,4}; //简写方式:数组数据类型[] 数组名={数组元素1,数组元素2,....,数组元素n}; int[] arr2={1,3,5,7,9,6,2,4}; //这种是最常用的方式 /* 注意: 访问数组元素使用的是 数组名[索引值] 但是注意索引值 必须是0~长度-1之间,否则会出现异常 数组下标索引异常 */ } }