注册 登录
编程论坛 JAVA论坛

有关于声明数组的问题

Z1020 发布于 2020-04-18 17:17, 2808 次点击
Java小白,想问一下数组的声明和初始化应该是不一样的吧...
如我把它的声明和初始化分开:
int a[];
int[] a = new int [10];
那么声明后数组里是null,在内存中不占空间,初始化后数组里虽然还是没有值,但是被分配了空间,不再是null了...
是这样的吗?
4 回复
#2
KennyFr2020-04-23 21:51
数组是引用数据类型,声明之后引用对象为null
初始化后默认值为0
#3
love云彩2020-04-24 14:09

int[] a = new int[10];//这里会有10个为0的值,作为a的元素
Integer[] b = new Integer[10];//b里面的值都是为null


基础类型byte,char,int,short,double,float,long,boolean,在类里面定义成员属性,都会分配一个默认值

程序代码:

public class Test{
        public int a;
        public char b;
        public double c;
        public float d;
        public long e;
        public byte f;
        public boolean g;
        public short h;
public static void main(String...args){
Test s = new Test();
System.out.println(s.a);//0
System.out.println(s.b);//
System.out.println(s.c);//0.0
System.out.println(s.d);//0.0
System.out.println(s.e);//0
System.out.println(s.f);//0
System.out.println(s.g);//false
System.out.println(s.h);//0
}
}
#4
诺亚19982020-06-23 12:02
数组声明后就会被设置默认值,如int[] a;这是a中已有了默认值null,之后给a赋值时 a=new int[10];时a中的值是int0x000000(heap堆地址 PS:int0x000000是瞎编的,反正是个地址)但a这个数组变量和int0x000000这个heap堆地址在Jdk栈中,同时在heap堆中会有一个叫int0x000000的地方被赋默认值{0,0,0,0,0,0,0,0,0,0};
#5
yao1231232020-06-30 17:46
回复 5楼 诺亚1998
1