導航:首頁 > 編程語言 > java中string為什麼長度多一個

java中string為什麼長度多一個

發布時間:2022-09-17 18:06:28

『壹』 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 個位元組。

閱讀全文

與java中string為什麼長度多一個相關的資料

熱點內容
網路HRV是什麼意思 瀏覽:918
word框中打勾 瀏覽:577
tcl筆試題java 瀏覽:467
win10怎麼登錄安全模式 瀏覽:679
除了archdaily還有什麼網站 瀏覽:567
數控下料圓形怎麼編程 瀏覽:785
安裝游戲在文件管理找不到怎麼辦 瀏覽:216
想買奢侈包包下載什麼app 瀏覽:1000
閃送員是哪裡的app 瀏覽:530
火車站進站閘機的數據哪裡可以查 瀏覽:503
cad備份文件清理軟體 瀏覽:822
夾具裝配圖cad文件百度網盤 瀏覽:567
如何將excel表格轉成文件包 瀏覽:1
網路配置文件應該怎麼設置 瀏覽:886
蘋果全能文件王下載位置 瀏覽:700
中國知網是哪些資料庫 瀏覽:280
fastjson優點 瀏覽:302
mstcam數控銑床編程如何串連 瀏覽:502
d4252用什麼軟體編程 瀏覽:35
大學生如何參與大數據 瀏覽:779

友情鏈接