java全栈系列之JavaSE--数组的三种初始化方法及内存分析024
作者:互联网
java内存分析
堆中存放new出来的对象和数组,存放具体的值的变量存放在栈里面
在定义和创建数组的时候内存发生了什么?
当用户定义了一个数组,例如:int [ ] Array;只是定义了一个数组没有创建。这时在栈里记录了一个int类型的数组Array,但是栈里面并没有存放数组里面的数据,当用户创建数组是,例:int [ ] Array=new int[5];在内存空间的堆创建了一个int类型的Array数据,并定义数组长度是5,所以数组创建前也就是在定义的时候,是存放在栈里的,创建后并赋值之后是存放在堆里面的
数组的下标越界:
当用户定义了一个int类型的数组名为Array长度为5,数组的下标为(0-Array.length)-1,也就是0-4,
int [] Array = new int[5];
//数组也可以直接创建,无需定义,定义则是空数组
Array[0]=1; //分别赋予初始值
Array[1]=2;
Array[2]=3;
Array[3]=4;
Array[4]=5;
当我取的值大于数组的最大长度则会出现下表越界的现象
例如:下表最大是4但是我取5的值,则会报错
System.out.print(Array[5])
数组的初始化方式:
//第一种
int []Array; //只定义数组,并没有创建
//第二种
int [] Array = new int [10];//无需声明数组,直接创建数组并指定长度
静态初始化与动态初始化
静态初始化
int [] Array1={1,2,3,4,5,6,7,8,9,10}; //定义数组时并定义初始值
int [] Array2={11,22,33,44,55,66,77,88,99,100};//定义后无法修改
Man引用类型
Man[] mans={new Man1(),new Man2()};
动态初始化
int [] Array = new int [10]; //先创建后赋予值
Array[0]=100;
Array[4]=400;
标签:int,定义,--,创建,024,全栈,数组,new,Array 来源: https://blog.csdn.net/xuzhibin666/article/details/119222162