在java中数组 Array 有两种 : 一维数组 和 多维数组
数组属于引用数据类型 , 数组的元素可以是基本数据类型 , 也可以是引用数据类型.
一维数组
1.一维数组初始化的默认值
1.1其中的 char 类型 需要注意 打印出来的值是" "(一个空格) , 但是 也等于0
2.一维数组在内存中的解析
2.1首先了解一下 jvm 的结构
2.2数组在内存中的存储位置
(图2.2)
说明 : 左边栈 , 右边 堆 , 左边是声明的局部变量(方法内声明的变量称为局部变量) , 右边是堆(凡是new出来的 , 都存放在堆中) , 对应的局部变量和 值 都有一个地址值(例如:0x34ab), 局部变量通过这个地址值找到对应的数据.
二维数组
说明 : 二维数组中的元素是数组(数组的元素可以是基本类型也可以是引用类型)
1.二维数组的创建
静态初始化 : 数据在数组创建时确定
动态初始化1: 数组的元素个数 , 以及元素中数组的元素个数以确定 , 但具体的值不确定.
动态初始化2: 数组的元素个数确定 , 但元素中的数组的元素个数并未确定.
数组创建的另一种写法:
一维 :
String[] strs = {"1","2"};
二维:
int[][] arr4={{1,2,3},{1,2},{3,4,5,6}};
注意 : 如果是先声明变量然后创建 , 这种写法会报错.
2.二维数组的初始化值
地址值中的 " [ " : 表示的是输出的数组是几维的 , 一个 [ 就表示一维 , [[ 就表示二维, " I "表示数组中的数据类型
注意 : 如果没有声明内存空间 , 就会报空指针异常
总结 :
3.二维数组的内存结构
数组总结 : 数组可以是多维的 , int[][][] ... 但是如果从内存结构来看 , 所有的多维数组都是一维的.