java中创建数组的方式
案例
int[] array = new int[10];
/*
赋值号左侧:
int:
告知编译器,这里创建定义的是一个int类型数组,有且只能保存int类型数据,保
证数据类型一致化
[]:
1. 告知编译器,当前定义的数据类型是一个数组类型
2. 数组名 array是一个【引用数据类型】
array:
1. 这里是一个数组名,操作数组的核心数据!!!就是一个变量名
2. 数组名 array是一个【引用数据类型】
赋值号右侧:
new:
new关键字需要在计算机中申请【连续内存空间】,这块区域在内存的【堆区】
【生活案例】这里就好比,顾客找仓库管理员申请货架,管理员一定是给你一个整
个连续区域给你使用
int:
前后呼应,告知编译器这里能够存储的数据类型是int类型,其他类型都不可以,要
求数据类型一致化
[10]:
告知编译器,当前数组的【容量
组中有且只能保存10个int类型数据
*/
【补充知识点 引用数据类型 难点】
引用在生活中很常见,比如 文献中引用,文言文注解引用,广告角标上标引用,这些目的,引入其他的内容,其他的文献,其他的操作...
引用存在的一定的【指向性!!!】
取快递
快递小哥如何知道你的地址在哪里???
根据快递单上的地址,联系方式和姓名来找到你的位置。
快递单这里也存在一定的【指向性!!!】
快递单中存有一个非常重要的数据【地址】!!!
开发中的【引用数据类型】,实际上是一个指向其他内存空间的一个数据类型。引用数据类型的变量中存储的内容是其他内存空间的【首地址】。
当CPU访问到【引用数据类型】变量时,会得到其存储的地址,然后直接跳转到对应的内存空间中,执行代码,获取数据,操作内容...
定义数组和使用
定义数组:
int[] array = new int[10];
需要操作数组中哪一个元素,这里需要使用数组的【下标】
计算机内数据的开头都是从0开始,数组容量为10的情况
有效下标的范围
0 ~ 9
0 ~ 数组容量 Capacity - 1
操作格式:
数组名[有效下标]
/* 演示数组的定义和使用 */
class Demo2 {
public static void main(String[] args) {
/* 这里定义一个int类型的数组,数组的容量为10 */
int[] array = new int[10];
/*
给数组中下标为0的元素赋值
格式: 数组名[有效下标]
*/
array[0] = 10;
/*
给数组中下标为5的元素赋值
*/
array[5] = 20;
/*
给数组下标为10的元素赋值30
10 已经超出了有效下标范围 0 ~ 9
array[10] = 30;
*/
/*
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
at Demo2.main(Demo2.java:22)
ArrayIndexOutOfBoundsException 数组下标越界异常
*/
/*
给数组中下标为-1的元素赋值为20
-1 已经超出了有效下标范围 0 ~ 9
*/
// array[-1] = 20;
/*
java.lang.ArrayIndexOutOfBoundsException: -1
*/
/*
取出数组中下标为0和下标为5的元素内容
*/
System.out.println("array[0] : " + array[0]);
System.out.println("array[5] : " + array[5]);
// System.out.println("array[4] : " + array[4]);
}
}
数组和循环不得不说的秘密
数组的下标是不是一个等差数列?
0 ~ 数组容量 - 1
这里和循环存在一定的关系!!!
数组关系极为密切是for循环!!!
class Demo3 {
public static void main(String[] args) {
/* 定义一个int类型数组 容量为10 */
int[] arr = new int[10];
/*
数组名.length
获取当前数组的【容量 Capacity】,获取数组的【属性】
*/
for (int i = 0; i < arr.length; i++) {
// 给数组中每一个元素赋值操作
arr[i] = i + 1;
}
// 利用循环展示数据
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}