一、数组创建方式
方式一:静态创建
数据类型[] 变量名=new 数据类型[]{数据元素1、数据元素2、、、}
数据类型 变量名[]=new 数据类型[]{数据元素1、数据元素2、、、}
简化格式:
数据类型[] 变量名={数据元素1、数据元素2、、、}
数据类型 变量名[]={数据元素1、数据元素2、、、}
适用范围:已知数据元素的具体值
方式二:动态创建
数据类型[] 变量名=new 数据类型[元素个数]
数据类型 变量名[]=new 数据类型[元素个数]
适用范围: 数据元素的大概个数
二、数组访问方式及常见问题
访问格式:
变量名[下标]
常见问题:
数组越界、空指针异常。
三、数组从内存角度理解
背景知识之jvm内存分布:
栈:程序运行时执行方法的区域。可理解为具体执行每一段代码的地方。
堆:保存数据的地方。new的数据都保存在这里。所有引用类型的实列。
方法区:保存运行的class文件。
本地方法栈:本地接口库里调用的方法,就是java里面native
关键字修饰的方法。
寄存器:结合cpu的
示例
int a[]={1,2,3};
1、堆区开辟空间保存1、2、3三个数。
2、a=堆区的地址值。
int[] b=a;
b=a=堆区的地址值。
理解:上诉访问a和b的值是相同的。可以理解为变量名保存的是数据存储位置的地址值,本质上只要地址值相同访问的就是同一个数据元素。 与变量的具体名字无关。