string的長度java
㈠ java中string多少個位元組
從String的源代碼我們可以得知類String中是使用域 count 來
記錄對象字元的數量,而count 的類型為 int,因此,我們可以推測最長的長度
為 2^32,也就是4G。如果是ASCII 碼的話最多隻能有 65534 位元組,utf8編碼的話最多是65536 個位元組。
㈡ JAVA里String數組在內存分配中分配的空間每個占幾個位元組
java中一個int佔4個位元組,由於java是unicode編碼,一個char可以占兩個位元組,可以存儲一個漢字。一個String,要看有幾個字母或者幾個漢字,一個英文字母就是一個位元組,一個漢字就是兩個位元組,以此類推計算。
㈢ Java中String類型有沒有長度的限制
嚴格來說,String確實有長度限制。
1、String內部使用一個char[]數組來存放字元串的內容,數組下標是整型(也可以參考String的構造方法String(char value[], int offset, int count) ,可以知道字元數量是用整型表示),整型(Java規定32位)表示範圍是2G,也就是說,Java數組最大的長度是2G,即字元串不能超過2G個字元。
2、Java的數組大小還有沒有別的限制?事實上數組大小不能超過Java堆的大小,而Java堆的最大尺寸可以通過啟動參數指定,如果Java堆開得足夠大,數組的最大長度是可以不斷增大的。
3、所以,理論上,字元串不能超過2G個字元,少於2G個字元都有可能。
㈣ string字元串長度限制
Java中的String有沒有長度限制?
這個問題要分兩個階段看,分別是編譯期和運行期。(ujiuye)不同的時期限制不一樣:
1、編譯期
String s = "";中,最多可以有65534個字元。如果超過這個個數。就會在編譯期報錯。
2、運行期
String長度的限制是編譯期的限制,也就是使用String s= "";這種字面值方式定義的時候才會有的限制。那麼。String在運行期有沒有限制呢,答案是有的,就是我們前文提到的那個Integer.MAX_VALUE ,這個值約等於4G,在運行期,如果String的長度超過這個范圍,就可能會拋出異常。(在jdk 1.9之前)String長度的限制是編譯期的限制,也就是使用String s= "";這種字面值方式定義的時候才會有的限制。
字元串不能超過2G個字元
㈤ Java中String接受的最大字元串的長度是多少
數組最大的長度為Integer.MAX_VALUE
㈥ Java中String接受的最大字元串的長度是多少
數組最大的長度為Integer.MAX_VALUE
1.不過,我們在編寫源代碼的時候,如果使用
Sting
str
=
"aaaa";的形式定義一個字元串,那麼雙引號裡面的ASCII字元最多隻能有
65534
個。
2.因為在class文件的規范中,
CONSTANT_Utf8_info表中使用一個16位的無符號整數來記錄字元串的長度的,最多能表示
65536個位元組,而java
class
文件是使用一種變體UTF-8格式來存放字元的,null值使用兩個位元組來表示,因此只剩下
65536-
2
=
65534個位元組。
3.也正是變體UTF-8的原因,如果字元串中含有中文等非ASCII字元,那麼雙引號中字元的數量會更少(一個中文字元佔用三個位元組)。如果超出這個數量,在編譯的時候編譯器會報錯。