Java 我们声明数组的方式有什么不同吗? int[]a=新的int[]{1,2,3}

Java 我们声明数组的方式有什么不同吗? int[]a=新的int[]{1,2,3},java,Java,及 int[]a={1,2,3} 它们之间有什么实际区别吗?它们是等价的,两者之间没有区别 new关键字创建一个对象。。你正在创造。。一个,它是一个对象 见: 在Java编程语言中,数组是对象 第二种形式只是第一种形式的语法速记。它们编译成完全相同的字节码。看看编译类文件中的字节码,没有区别 public class XFace { public void test1(){ int[] a = new int[] {1, 2, 3}; } pu

  • int[]a={1,2,3}

它们之间有什么实际区别吗?

它们是等价的,两者之间没有区别

new
关键字创建一个对象。。你正在创造。。一个,它是一个对象

见:

在Java编程语言中,数组是对象


第二种形式只是第一种形式的语法速记。它们编译成完全相同的字节码。

看看编译类文件中的字节码,没有区别

public class XFace  {

    public void test1(){
        int[] a = new int[] {1, 2, 3};
    }


    public void test2(){
        int[] a = {1, 2, 3};

    }

}

Compiled from "XFace.java"
public class XFace extends java.lang.Objec
public XFace();
  Code:
   0:   aload_0
   1:   invokespecial   #8; //Method java/
   4:   return

public void test1();
  Code:
   0:   iconst_3
   1:   newarray int
   3:   dup
   4:   iconst_0
   5:   iconst_1
   6:   iastore
   7:   dup
   8:   iconst_1
   9:   iconst_2
   10:  iastore
   11:  dup
   12:  iconst_2
   13:  iconst_3
   14:  iastore
   15:  astore_1
   16:  return

public void test2();
  Code:
   0:   iconst_3
   1:   newarray int
   3:   dup
   4:   iconst_0
   5:   iconst_1
   6:   iastore
   7:   dup
   8:   iconst_1
   9:   iconst_2
   10:  iastore
   11:  dup
   12:  iconst_2
   13:  iconst_3
   14:  iastore
   15:  astore_1
   16:  return

}

希望对您有所帮助,谢谢。我想问题是这样的:引擎盖下面有什么棘手的事情吗?类似于“newstring”(“blabla”)“否。Java中没有数组池字符串是特殊的,它们介于原语和对象之间。因此,
String a=“hello”
字符串a=新字符串(“你好”)不同。@ferrerverck您可以看到这两个的字节码,它将非常相同。