Java中byte[]数组new byte[0]与null的区别

Java新手小白求教,以下代码推荐使用哪个,区别是什么

byte[] bytes = new byte[0];

byte[] bytes = null;

byte[] bytes = new byte[0]; 表示定义了byte类型数组,但是数组的长度为0,在堆区有地址值

而byte[] bytes = null; 堆区没地址值,因为数组的长度不能改变,所以这样的语句毫无意义

空箱子和没有箱子的区别

数组是定长的,定义出来几个,就只能存几个元素;

比如你第一个byte[] bytes = new byte[0]; 你定义了一个长度为0的数组,是存不进元素的(如果你代码中有这样的定义,可能是为了防止空指针);

第二个你给数组等于null,下边不赋值也是不能用的

byte[] bytes = null;

bytes = new byte[3];

变量要声明加赋值才可以使用

null是不存在,而[0]是jvm已经为其开辟了一片内存空间了