Rumah >Java >javaTutorial >Mengapa Tatasusunan Java Byte Saya Mencetak sebagai \'[B@1ef9157\' Daripada Kandungannya?
Memahami "[B@1ef9157": Perduaan atau Alamat?
Apabila bekerja dengan tatasusunan bait dalam Java, anda mungkin menghadapi "[ B@ prefix" semasa mencetak tatasusunan bait. Ini boleh mengelirukan, kerana anda mungkin menjangkakan untuk melihat kandungan sebenar tatasusunan dan bukannya rentetan aksara yang kelihatan rawak.
Penjelasan
The "[B@ awalan" bukan perwakilan kandungan tatasusunan bait. Ia ialah ID objek tatasusunan. ID ini mengenal pasti tatasusunan dalam ingatan.
Struktur ID Objek
ID objek terdiri daripada:
Mencetak Kandungan Array Byte
Jika anda matlamatnya adalah untuk mencetak nilai sebenar tatasusunan bait, anda perlu menggunakan kaedah yang secara khusus menukar bait kepada format boleh cetak. Sebagai contoh, anda boleh menggunakan kaedah byteArrayToString():
<code class="java">byte[] in = new byte[] { 1, 2, 3, -1, -2, -3 }; System.out.println(byteArrayToString(in));</code>
Kaedah byteArrayToString() menukar tatasusunan bait kepada rentetan aksara perenambelasan, menjadikannya lebih mudah dibaca.
Tama Jenis JNI
"[B@ awalan" ialah sebahagian daripada tatanama jenis JNI (Antara Muka Asli Java). Tatanama ini digunakan untuk mengenal pasti jenis Java dalam kod asli:
Untuk maklumat lanjut tentang tatanama jenis JNI, rujuk dokumentasi rasmi JNI.
Atas ialah kandungan terperinci Mengapa Tatasusunan Java Byte Saya Mencetak sebagai \'[B@1ef9157\' Daripada Kandungannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!