Tegasnya, String memang mempunyai had panjang.
1. String secara dalaman menggunakan tatasusunan char[] untuk menyimpan kandungan rentetan Subskrip tatasusunan ialah integer (anda juga boleh merujuk kepada kaedah pembinaan String(nilai aksara[], int offset, int count) untuk mengetahui. bilangan aksara. Ia diwakili oleh jenis integer), dan jenis integer (Java menentukan 32 bit) mewakili julat 2G Maksudnya, panjang maksimum tatasusunan Java ialah 2G, iaitu rentetan tidak boleh melebihi aksara 2G.
2. Adakah terdapat sebarang sekatan lain pada saiz tatasusunan Java? Sebenarnya, saiz tatasusunan tidak boleh melebihi saiz timbunan Java, dan saiz maksimum timbunan Java boleh ditentukan melalui parameter permulaan Jika timbunan Java cukup besar, panjang maksimum tatasusunan boleh terus meningkat .
Jadi, mengikut teori, bilangan aksara dalam rentetan tidak boleh melebihi 2G, tetapi mungkin mempunyai kurang daripada aksara 2G.
String disimpan secara dalaman dalam bentuk tatasusunan aksara Panjang tatasusunan adalah jenis int, jadi panjang maksimum yang dibenarkan oleh String ialah Integer.MAX_VALUE. Dan kerana aksara dalam Java disimpan dalam 16 bit, kira-kira 4GB memori diperlukan untuk menyimpan panjang maksimum rentetan. Tetapi ini hanya untuk pembolehubah rentetan Jika ia adalah literal rentetan (huruf rentetan), seperti "abc", "1a2b" dan literal rentetan lain yang ditulis dalam kod, maka panjang maksimum yang dibenarkan bergantung pada rentetan Saiz storan dalam kolam malar ialah format storan rentetan dalam fail format kelas:
CONSTANT_Utf8_info {
u1 tag;
u2 panjang;
u1 bait[panjang];
}
u2 ialah integer 16-bit yang tidak ditandatangani, jadi panjang maksimum teori rentetan literal yang dibenarkan ialah 2^16-1=65535. Walau bagaimanapun, selepas ujian sebenar, didapati bahawa panjang maksimum yang dibenarkan hanya 65534, dan melebihi had ini akan menyebabkan ralat penyusunan.
Atas ialah kandungan terperinci Adakah terdapat sebarang had pada panjang jenis String di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!