byte[ ]动态开辟小问题
请问各位大神:
public class E3
{
public static void main(String args[])
{
byte b[]=new byte[10];
System.out.println(b[0]);
}
}
小弟上述的代码为何输不出任何东西,b[0]里面存放的到底是什么东西哇?
求大神指点一番
------解决方案--------------------LZ的代码应该输出 0。
byte类型的数组 里面装的当然是byte类型的数据。
------解决方案--------------------楼主申请的是字节数组,没赋值应该是输出0吧
------解决方案--------------------局部变量不会自动赋值~成员变量会自动赋值,楼主用的是字节数组,如果是成员变量会输出0,你这个是没有输出把
------解决方案--------------------顶1楼
楼主的代码应该输出0
顺便说一下3楼描述的不是你的问题。
------解决方案--------------------public class E3
{
public static void main(String args[])
{
byte b[]=new byte[10];
Byte c[]=new Byte[10];
System.out.println(b[0]);
System.out.println(c[0]);
}
}
要是数组存储的是基本类型的话就是基本类型的初始值,这里byte是0
如果存储的是对象的话,就是null
------解决方案--------------------看着byte b[] 这种写法真蛋疼
------解决方案--------------------测试过了,的确是0,如果声明对象,则初始为null
------解决方案--------------------java的所有内存分配都是会被初始化的,
数字 初始值 0
布尔 初始值 false
对象 初始值 null
你刚才的语句初始化了一个byte数组,因此数组中每个元素都是0.
------解决方案--------------------应该是0.如果是double就是0.0等等你可以搜下JAVA关于基本类型的初始化。如果是对象,输出null.
------解决方案--------------------
你就原谅他吧,毕竟刚学嘛