java数据结构之数组
零.本片疑问
1.创建数组的本质是什么?
2.堆数据类型是什么
一.数组的定义
数组是引用数据类型
二.数组的初始化
1.动态初始化
动态初始化可以指定数组的大小,其定义方式为
int[] arr = new int[3];
int [] 代表数组的类型,
new表示在内存堆区开辟一段空间
2.静态初始化
一般适用于一直数组大小
数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3...};
或者
数据类型[] 数组名 = {元素1,元素2,元素3...};
举例:
int[] arr = new int[]{1,2,3,4,5};
int[] arr = {1,2,3,4,5};
三.动态初始化的默认值
只要是定义在堆空间中的变量(new )都会有默认值,其中
int----0;
double----0.0;
字符----\u0000;
布尔----false;
引用类型-----null;
四.java虚拟内存
1.java虚拟内存
java将虚拟内存分为五个分区,依次是
栈内存-------局部变量
堆内存--------new出的变量,地址值为十六进制(哈希值)
方法区--------存储.class相关信息,包含方法信息
本地方法栈
寄存区
2.一段程序在内存层面的执行
这里是引用
其中,第一步为方法进栈,并开普一片内存空间
五.数组常见异常
1.数组越界异常
2.空指针异常
public static void main(String[] args) {
int[] arr = {1,2,3}; //arr指向一个有效地址
arr = null; //arr执行那个一个空地址
System.out.println(arr[0]);
}
六.对数组的操作
1.获取数组的长度
2.对数组的遍历
public static void main(String[] args)
{ int[] arr = { 1, 2, 3, 4, 5 };
for (int i = 0; i < arr.length; i++)//此处为获取数组的长度
{ System.out.println(arr[i]);
}
}