java Java中String接受的最大字符串的長度是多少?
Java中String接受的最大字符串的長度是多少?陣列的最大長度為Integer.MAX然而,當我們編寫源代碼時,如果我們以sting STR=“AAAA”的形式定義一個字符串,那么雙引號中的ASC
Java中String接受的最大字符串的長度是多少?
陣列的最大長度為Integer.MAX然而,當我們編寫源代碼時,如果我們以sting STR=“AAAA”的形式定義一個字符串,那么雙引號中的ASCII字符的最大數(shù)目是65534。2因為在類文件規(guī)范中,info表中的constantUtf8u16位無符號整數(shù)用于記錄字符串的長度,最多可以表示65536字節(jié)。Java類文件使用一種變體UTF-8格式來存儲字符,空值由兩個字節(jié)表示,因此只剩下65536-2=65534字節(jié)。三。這也是變種UTF-8的原因。如果字符串包含非ASCII字符(如中文),則雙引號中的字符數(shù)將減少(一個漢字占用三個字節(jié))。如果超過此數(shù)字,編譯器將在編譯期間報告錯誤。
Java中String類型有沒有長度的限制?
嚴格來說,字符串確實有長度限制。
1. 在字符串中使用char[]數(shù)組來存儲字符串的內(nèi)容。數(shù)組的下標是integer(也可以參考字符串構造方法string(char value[]int offset,int count),可以知道字符數(shù)用integer表示,integer的范圍(Java指定32位)是2G,即Java數(shù)組的最大長度是2G,即,字符串不能超過2G個字符。
2. Java數(shù)組的大小還有其他限制嗎?實際上,數(shù)組的大小不能超過Java堆的大小,Java堆的最大大小可以由startup參數(shù)指定。如果Java堆足夠大,那么可以連續(xù)增加數(shù)組的最大長度。
3. 因此,理論上,一個字符串不能超過2G個字符,而且有可能少于2G個字符。