Java数组内存简单分析
堆
- 存放new的对象和数组
- 可以被所有的线程共享,不会存放别的对象引用
栈
- 存放基本变量类型(会包含这个基本类型的具体数值)
- 引用对象的变量(会存放这个引用在堆里面的具体地址)
方法区
- 可以被所有的线程共享
- 包含了所有的class和static变量
三种初始化
静态初始化
int[] a={1,2,3,4,5,6};
动态初始化 (包含默认初始化)
int[] b=new int[10];
默认初始化
没有初始化的数组默认初始化。
如一个int类型的数组如果没有进行初始化的话,默认数组里的值为0。
数组边界
- 下标的合法区间:【0,length-1】,如果越界就会报错。
- 错误:ArrayIndexOutOfBoundsException:数组下标越界异常。
小结
- 数组是相同数据类型(数据类型可以为任意类型)的有序集合。
- 数组也是对象。数组元素相当于对象的成员变量。
- 数组长度是确定的,不可变的。如果越界,则报ArrayIndexOutOfBoundsException错误。