静态数组创建:jvm在数组创建是会为数组分配内存空间并赋值。
动态数组创建:数组在初始化时,会在堆内存为数组分配一块连续的内存空间,并为数组赋值(默认值:基本数据类型:整型为0;浮点型0.0;char\u0000;)
数组在Jvm运行时便会进行初始化,创建数组对象并分配内存地址且赋值,这个说法是错误的!
如:
int[] nums;(1)
int[] n={1,2,3,4,5};(2)
nums=n;(3)
(1)此时nums只在栈内存中指针并为指向堆内存中的有效数据,即nums并没有进行有效初始化,对象nums还不可使用;
(2)n在创建时便分配了内存空间且赋值了,对象n指向了堆内存中{1,2,3,4,5}这个数据
(3)此操作才让nums才完成真正的初始化操作,经过第三步才能使用nums对象! |
|