recherche

Maison  >  Questions et réponses  >  le corps du texte

赋值 - Java数组初始化,这三种方式有什么区别?

形式1:

Object[] params = null;
params = {1, 2, 3, 4};

形式2:

Object[] params = {1, 2, 3, 4};

形式3:

Object[] params = new Object[]{1, 2, 3, 4};

1.为什么第一种形式就是错的(编译阶段就报错),而第二种就可以呢?(第三种很显然)
2.第二种和第三种,哪种初始化方式更优呢?(或者有更好的?)

天蓬老师天蓬老师2769 Il y a quelques jours941

répondre à tous(4)je répondrai

  • 迷茫

    迷茫2017-04-18 09:51:39

    Tout d'abord, la longueur du tableau doit être déterminée lors de l'utilisation de l'initialisation du tableau, ce qui signifie que la longueur du tableau est immuable.
    Il existe deux manières de créer des tableaux en JAVA :
    (1) Création statique telle que

    Object[] arr1 = {"a","b","c"}; 

    (2)Création dynamique de tel que
    1

        Object[] arr3 = new Object[]{"a","b","c"};

    2

        Object[] arr2 = new Object[3];  
                arr2[1] = "a";
                arr2[2] = "b";
                arr2[3] = "c";
                //先确认元素个数,一般情况下习惯使用动态创建方式 比较灵活 可以先规定元素个数 后对每个元素进行赋值

    3

        Object[] arr4 = null;  
        arr4 = new Object[3];
                arr4[1] = "a";
                arr4[2] = "b";
                arr4[3] = "c";
                //直接给arr4初始化为null,然后要使用的时候再创建一个新的数组new Object[3],让arr4指向新数组的地址,然后再依次赋值

    Et la méthode évoquée par l'interrogateur :

    Object[] params = null;
    params = {1, 2, 3, 4};

    Erreur 1 : vous créez directement un tableau vide params, c'est-à-dire qu'il est vide et la longueur du tableau ne peut pas être modifiée. Si vous y ajoutez des données à ce moment, un tableau vide ne peut naturellement rien ajouter, c'est donc quelque chose qui va mal se passer. Vous devez faire la même chose que la deuxième méthode que j'ai mentionnée ci-dessus, recréer un tableau d'une longueur de 4 et donner l'adresse du nouveau tableau à params, c'est-à-dire Object[] params = null; 4] ; de cette façon Peut être créé.
    Erreur 2 : L'initialisation du tableau ne peut être ajoutée en continu que lorsqu'il est défini une fois la définition terminée

    Object[] params = null;
    params = new Object[4];

    Après cela, si vous souhaitez y ajouter des données, vous ne pouvez les ajouter qu'une par une en fonction de l'indice du tableau.

    params[1] = 1;
    params[2] = 2;
    params[23 = 3;
    params[4] = 4;

    mais pas directement params = {1, 2, 3, 4};

    répondre
    0
  • 迷茫

    迷茫2017-04-18 09:51:39

    Formulaire 1

    Object[] params = {1, 2, 3, 4};

    Cette méthode de déclaration n'est en fait que du sucre de syntaxe pour le tableau d'initialisation Java. Le soi-disant sucre syntaxique est juste pour la commodité des programmeurs. Dans l'exécution réelle, Java le transformera en forme 3. ,

    Object[] params = new Object[]{1, 2, 3, 4};

    Java ne fournit pas de sucre syntaxique comme la forme 2, il est donc illégal de l'utiliser de cette façon.

    répondre
    0
  • 迷茫

    迷茫2017-04-18 09:51:39

    Object[] params = null;
    params = new Object[]{1, 2, 3, 4};

    A. La syntaxe stipule que l'affiche n'a pas besoin de trop s'inquiéter
    B Si vous connaissez les éléments du tableau à l'avance, il est plus concis d'utiliser le Object[] params = {1, 2, 3, 4}; pour déclarer le code du tableau. il n'y a pas de meilleure façon de le dire.

    répondre
    0
  • 巴扎黑

    巴扎黑2017-04-18 09:51:39

    La première façon de déclaration est incorrecte
    Elle devrait être Object[] params = new Object[length]

    Le deuxième est celui que j'utilise habituellement

    répondre
    0
  • Annulerrépondre