導航:首頁 > 編程語言 > javastring最大

javastring最大

發布時間:2022-11-18 09:04:31

㈠ 2G個字元是多大多少個字元String最大長度是2g嗎

1G = 1024M
1M = 1024Kb
1Kb=1024Byte
一個字元占兩個位元組
2G=(2*1024*1024*1024)/2=1073741824(個字元)
java中String默認每行能輸入的最大長度是32768個字元。

㈡ Java中String接受的最大字元串的長度是多少

數組最大的長度為Integer.MAX_VALUE

㈢ java string 有多長

不考慮內存的前提下
String有個char[],它的最大的長度為Integer.MAX_VALUE。
但以String s = "aaaaaaaaa................"這種方式聲明的話,最多65536長度。
再多編譯器會報錯。

㈣ String的最大長度是多長

  初看到這個問題心裡還是有點尷尬的,平時確實沒注意過String最大能有多長。想要知道String到底有多長,只能從源碼層面來找答案了。
  Java中String不是基本數據類型,而是引用類型並且是final。String定義為final的原因:
   高效性
  JVM在查找字元串的時候可以直接定位到String類中,更准確的說String不可變,才能實現常量池。
   安全性
  定義成final,不能被繼承和修改,可以防止在子類或者其他地方被修改,導致隱藏Bug產生。
  上面提到常量池,JVM創建對象是需要開銷的,為了提高性能,對字元串使用字元串常量池進行了優化,每當我們創建一個字元串時,Jvm先去字元串常量池檢查,如果字元串常量池存在,直接返回實例引用;否則創建實例,並存入字元串常量池中。
  比如常見的判斷:

因為a和b都是指向"hello"這個常量池中的常量,即同一個地址所以a==b 為true

因為c是new了一個新對象,且對象是在堆上存放,所以c==a為false,雖然c的內容是創建在堆中,但是他的內部value還是指向JVM常量池的hello的value,它構造hello時所用的參數依然是hello字元串常量。

  下面正式進入今天的主題了,String的最大長度到底是多大呢?
  翻開String類的源碼,你會看到:

可以看到String的length是通過count值返回的,count是int型,最大為2 31 -1,所以String理論上最大長度為2 31 -1,2147483647。
但是由於String底層是通過char[]字元數組來實現,char佔用兩個位元組,2147483647 個 char 類型就是 4294967294 位元組,這接近於 4GB 大小,想要申請這么一大塊連續的內存空間,失敗也就不足為奇了,所以和電腦的硬體條件有關。
   總結
  String 的最大長度也就是字元數組的最大長度,理論上最大長度為 int 類型的最大值,即 2147483647。
  在實際中,一般可獲取的最大值小於理論最大值。

㈤ 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中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最大長度

String內部是以char數組的形式存儲,數組的長度是int類型,那麼String允許的最大長度就是Integer.MAX_VALUE了。又由於java中的字元是以16位存儲的,因此大概需要4GB的內存才能存儲最大長度的字元串。不過這僅僅是對字元串變數而言,如果是字元串字面量(string literals),如「abc"、"1a2b"之類寫在代碼中的字元串literals,那麼允許的最大長度取決於字元串在常量池中的存儲大小,也就是字元串在class格式文件中的存儲格式:

CONSTANT_Utf8_info {
u1 tag;
u2 length;
u1 bytes[length];
}

u2是無符號的16位整數,因此理論上允許的string literal的最大長度是2^16-1=65535。然而實際測試表明,允許的最大長度僅為65534,超過就編譯錯誤了.
參考:http://www.blogjava.net/killme2008/archive/2009/01/15/251368.html

㈧ java String[] 最大能存10M

應該是不限的,跟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個字元都有可能。

㈩ 在Java中String變數的最大長度是多少

u2是無符號的16位整數,因此理論上允許的string literal的最大長度是2^16-1=65535。然而實際測試表明,允許的最大長度僅為65534,超過就編譯錯誤了,有興趣可以寫段代碼試試,估計是length還不能為0。

閱讀全文

與javastring最大相關的資料

熱點內容
樂高機器人的編程軟體下載 瀏覽:223
工作中怎麼使用加密狗 瀏覽:735
雲伺服器的後台找不到 瀏覽:98
php逐行寫入文件 瀏覽:912
javaoracleweb 瀏覽:440
京東加密碼怎麼弄 瀏覽:467
單片機程序員培訓 瀏覽:992
PHP商城源代碼csdn 瀏覽:636
怎麼把電腦里文件夾挪出來 瀏覽:693
java流程處理 瀏覽:685
ftp創建本地文件夾 瀏覽:660
腰椎第一節壓縮 瀏覽:738
xp去掉加密屬性 瀏覽:117
2345怎麼壓縮文件 瀏覽:982
迷你奪寶新演算法 瀏覽:407
伺服器如何防止木馬控制 瀏覽:715
壓縮空氣用電磁閥 瀏覽:742
微信為什麼不能設置加密認證 瀏覽:672
鄧倫參加密室逃脫視頻 瀏覽:391
音頻壓縮編碼標准 瀏覽:300