作者简介:大家好,我是大杉。
个人主页:爱编程的大杉
支持我:点赞+关注~不迷路
✔系列专栏:javase基础
(❁´◡`❁)励志格言:面对世界永恒的新奇,我感到我每一刻都是新生。(佩索阿 《守羊人》)
数组就是存储数据长度固定的容器,存储多个数据的数据类型要一致。
格式一:数据类型[] 数组名
int [] arr;
double[] arr;
char[] arr;
格式二.数据类型 数组名[]
int arr[];
double arr[];
char arr[];
格式:数据类型 [] 数组名 = new 数据类型[数组长度];
etc: int [] arr = new int[3];
等号左边:
int: 数组的数据类型
[]: 代表这是一个数组
arr: 代表数组的名称
等号右边:
new: 为数组开辟内存空间
int: 数组的数据类型
[]: 代表这是一个数组
5: 代表数组的长度
索引类似于c语言中的数组下标
☀☀每一个存储到数组的元素,都会自动的拥有一个编号,从0开始。
这个自动编号称为数组索引(index),可以通过数组的索引访问到数组中的元素。
数组名 [索引];
public class ArrayDemo {
public static void main(String[] args) {
int[] arr = new int[3];
//输出数组名
System.out.println(arr); //[I@880ec60
//输出数组中的元素
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
}
}
内存是计算机中的重要原件,临时存储区域,作用是运行程序。
我们编写的程序是存放在硬盘中的,在硬盘中的程序是不会运行的。
必须放进内存中才能运行,运行完毕后会清空内存。
Java虚拟机要运行程序,必须要对内存进行空间的分配和管理。
int [] 开辟一个栈内存,存储定义在方法中的变量arr,其次new 会在创建一个堆内存,存储相应的实体和对象。
类对对象发出指令后,程序执行进入栈内存中,通过arr的地址指引到达堆内存,再通过数组索引找到对应的对象,执行命令!
int [] arr2=arr,就是将arr的地址赋给arr2此时两个数组指向相同的堆内存区域,可以将其理解为一个数组的两种不同表示形态,他们的功能是相同的
完整版:数据类型 [] 数组名 = new 数据类型[]{元素1,元素2,…};
简化版:数据类型 [] 数组名 = {元素1,元素2,…};
public class ArrayDemo {
public static void main(String[] args) {
int[] arr = new int[3];
//把null赋值给数组
arr = null;
System.out.println(arr[0]);
}
}
arr = null 这行代码,意味着变量arr将不会在保存数组的内存地址,也就不允许再操作数组了,因此运行的时候会抛出 NullPointerException 空指针异常。在开发中,数组的空指针异常是不能出现的,一旦出现了,就必须要修改我们编写的代码。
解决方案:
给数组一个真正的堆内存空间引用即可!
利用for循环逐项遍历:
public class ArrayTest01 {
public static void main(String[] args) {
//定义数组
int[] arr = {11, 22, 33, 44, 55};
//使用通用的遍历格式
for(int x=0; x<arr.length; x++) {
System.out.println(arr[x]);
}
}
}