Rumah >Java >javaTutorial >Mengapa Tatasusunan Java Byte Saya Mencetak sebagai \'[B@1ef9157\' Daripada Kandungannya?

Mengapa Tatasusunan Java Byte Saya Mencetak sebagai \'[B@1ef9157\' Daripada Kandungannya?

Susan Sarandon
Susan Sarandonasal
2024-10-30 05:03:02418semak imbas

Why Does My Java Byte Array Print as

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:

  • [ : Menunjukkan bahawa ia ialah tatasusunan
  • B: Menentukan bahawa ia ialah tatasusunan bait
  • @: Mengasingkan jenis daripada ID objek
  • 1ef9157: Perwakilan heksadesimal bagi ID objek

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:

  • B - byte
  • [ - array
  • @ - pemisah antara jenis dan ID
  • 1ef9157 - ID objek

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn