cari

Rumah  >  Soal Jawab  >  teks badan

赋值 - 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 hari yang lalu940

membalas semua(4)saya akan balas

  • 迷茫

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

    Pertama sekali, panjang tatasusunan mesti ditentukan apabila menggunakan pemula tatasusunan, yang bermaksud panjang tatasusunan tidak boleh diubah.
    Terdapat dua cara untuk mencipta tatasusunan dalam JAVA:
    (1) Penciptaan statik seperti

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

    (2)Penciptaan dinamik seperti
    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指向新数组的地址,然后再依次赋值

    Dan kaedah yang disebut oleh penanya:

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

    Ralat 1: Anda secara langsung mencipta param tatasusunan kosong, iaitu, ia kosong, dan panjang tatasusunan tidak boleh diubah Jika anda menambah data padanya pada masa ini, tatasusunan kosong secara semula jadi tidak boleh menambah apa-apa. jadi ada sesuatu yang tidak kena. Anda harus melakukan perkara yang sama seperti kaedah kedua yang saya nyatakan di atas, buat semula tatasusunan dengan panjang 4, dan berikan alamat tatasusunan baharu kepada params, iaitu, Object[] params = null = new Object[; 4]; cara ini Boleh dibuat.
    Ralat 2: Permulaan tatasusunan hanya boleh ditambah secara berterusan apabila ia ditakrifkan selepas definisi selesai

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

    Selepas itu, jika anda ingin menambah data padanya, anda hanya boleh menambahnya satu persatu mengikut subskrip tatasusunan.

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

    tetapi tidak langsung params = {1, 2, 3, 4};

    balas
    0
  • 迷茫

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

    Tingkatan 1

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

    Kaedah pengisytiharan ini sebenarnya hanyalah gula sintaks untuk tatasusunan permulaan Java Apa yang dipanggil gula sintaksis hanyalah untuk kemudahan pengaturcara Dalam pelaksanaan sebenar, Java akan mengubahnya menjadi bentuk 3, iaitu ,

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

    Jawa tidak menyediakan gula sintaksis seperti tingkatan 2, jadi haram menggunakannya dengan cara ini.

    balas
    0
  • 迷茫

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

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

    A. Sintaks menetapkan bahawa poster tidak perlu terlalu risau
    B Jika anda mengetahui elemen tatasusunan terlebih dahulu, adalah lebih ringkas untuk menggunakan Object[] params = {1, 2, 3, 4}; untuk mengisytiharkan kod tatasusunan tiada cara yang lebih baik untuk mengatakannya.

    balas
    0
  • 巴扎黑

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

    Cara pengisytiharan pertama tidak betul
    Ia sepatutnya Object[] params = Objek[panjang] baharu

    Yang kedua adalah yang biasa saya gunakan

    balas
    0
  • Batalbalas