假设要初始化一个byte数组,有以下两种方法://方法1:
byte[] b = {(byte) 0x4040, (byte) 0x2001, (byte) 0x0000};
//方法2:
byte[] b = new byte[]{(byte) 0x4040, (byte) 0x2001, (byte) 0x0000};哪一种更加规范?效率更高呢?或者说,在哪几种情况下,使用其中哪种方法更好?

解决方案 »

  1.   

    一样的。推荐方法1方法1是“数组初始化式”,仅用于初始化。
    方法2的右边叫作“数组字面量”,可用在任何需要一个byte数组的地方。
      

  2.   

    我觉得第二种比较好,一般都用new来初始化一个对象得啊
      

  3.   

    第二种看上去比较象JAVA,前面1种看上去象JAVASCRIPT,呵呵
      

  4.   

    惊异的发现果然如此!!!csdn果然正如马士兵老师所说是个卧虎藏龙的地方编译前的源代码:class Test
    {
      public static void main(String[] args)
      {
        //方法1:
        byte[] a = {(byte) 0x4040, (byte) 0x2001, (byte) 0x0000};
        //方法2:
        byte[] b = new byte[]{(byte) 0x4040, (byte) 0x2001, (byte) 0x0000};
      }  
    }编译后的字节码被反编译后:class Test
    {    Test()
        {
        }    public static void main(String args[])
        {
            byte a[] = {
                64, 1, 0
            };
            byte b[] = {
                64, 1, 0
            };
        }
    }
      

  5.   

    byte是几个字节啊?
    为啥写成这样(byte) 0x4040,这不是两个字节吗?