日期:2014-05-20  浏览次数:20721 次

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.
------解决方案--------------------
引用:
看着byte b[] 这种写法真蛋疼

你就原谅他吧,毕竟刚学嘛