『壹』 java里,string的長度是固定的
String s;這個只是聲明了一個變數,除了變數本身,是沒有長度的;
String s = "sss";這個與"sss"的值的長度有關,此時s.length將為3;
但即使給s執行s + "1"操作,Java虛擬機也將創建一個新的字元串"sss1",這個與剛才的"sss"指向了不同的地址空間,此時s.length為4;
這是因為String的實現是final類型的char[],一旦對其賦值,其所對應的地址空間將不會改變;如果再次賦值或者執行"s"都將開辟新空間創建新對象,所以說每一個Java棧上的String對象的長度是固定的。
『貳』 下面這段java代碼為什麼輸出的字元串長度加了1。
因為空格也是一個字元。"hello"的長度是5," world"的長度是1+5=6,所以加起來是11。
『叄』 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個字元都有可能。
『肆』 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個字元都有可能。
『伍』 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字元,那麼雙引號中字元的數量會更少(一個中文字元佔用三個位元組)。如果超出這個數量,在編譯的時候編譯器會報錯。
『陸』 java數據長度問題:一段帶有回車的數據長度。實際長度比人家提供的長度多一個。 是因為我用的是WINDOW系統
回車(回車換行)在windows上是 \r\n ,linux換行是\n是如果你用linux創建同樣的文件,回車就只佔1個長度了。
你可以這樣
String s="abc\r\ndef";
String s1="abc\ndef";
它們都代表換行,輸出也一樣,但長度不一樣。
『柒』 java string有長度限制嗎
代碼的實現沒有明確標識過最大長度,但是String的內部實現是由char[]實現的。而char的長度由int定義,所以int的最大長度決定了String 的長度。
『捌』 Java中String接受的最大字元串的長度是多少
我們可以使用串接操作符得到一個長度更長的字元串,那麼,string對象最多能容納多少字元呢?查看string的源代碼我們可以得知類string中
是使用域
count
來記錄對象字元的數量,而count
的類型為
int,因此,我們可以推測最長的長度為
2^32,也就是4g。
不過,我們在編寫源代碼的時候,如果使用
sting
str
=
"aaaa";的形式定義一個字元串,那麼雙引號裡面的ascii字元最多隻能
有
65534
個。為什麼呢?因為在class文件的規范中,
constant_utf8_info表中使用一個16位的無符號整數來記錄字元串的長
度的,最多能表示
65536個位元組,而java
class
文件是使用一種變體utf-8格式來存放字元的,null值使用兩個位元組來表示,因此只剩
下
65536-
2
=
65534個位元組。也正是變體utf-8的原因,如果字元串中含有中文等非ascii字元,那麼雙引號中字元的數量會更少(一
個中文字元佔用三個位元組)。如果超出這個數量,在編譯的時候編譯器會報錯
『玖』 Java中String接受的最大字元串的長度是多少
數組最大的長度為Integer.MAX_VALUE
『拾』 java中string多少個位元組
從String的源代碼我們可以得知類String中是使用域 count 來
記錄對象字元的數量,而count 的類型為 int,因此,我們可以推測最長的長度
為 2^32,也就是4G。如果是ASCII 碼的話最多隻能有 65534 位元組,utf8編碼的話最多是65536 個位元組。