java字符型 Java中String類型有沒有長度的限制?
Java中String類型有沒有長度的限制?嚴(yán)格來說,字符串確實有長度限制。1. 在字符串中使用char[]數(shù)組來存儲字符串的內(nèi)容。數(shù)組的下標(biāo)是integer(也可以參考字符串構(gòu)造方法string(c
Java中String類型有沒有長度的限制?
嚴(yán)格來說,字符串確實有長度限制。
1. 在字符串中使用char[]數(shù)組來存儲字符串的內(nèi)容。數(shù)組的下標(biāo)是integer(也可以參考字符串構(gòu)造方法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個字符。
對string常量的字符串長度有沒有限制?
字符串以字符數(shù)組的形式存儲。如果數(shù)組的長度為int類型,則字符串的最大允許長度為Integer.MAX價值觀。因此,Java中字符串存儲的最大長度約為16位。但是,這僅適用于字符串變量。如果是用代碼編寫的字符串文字,如“ABC”和“1a2b”,則允許的最大長度取決于該字符串在常量池中的存儲大小,即該字符串在類格式文件Utf8中的存儲格式。理論上,字符串文字的最大長度為2^16-1=65535。然而,實際測試表明,允許的最大長度僅為65534,如果長度超過則為編譯錯誤。
李老師mongoDB中,字符類型的字段,有大小長度限制嗎?
數(shù)字類型字段的長度固定為22。
數(shù)據(jù)類型字段的長度固定為7。
默認(rèn)情況下,索引按升序排列。如果索引按降序排列,則索引的長度為字段定義長度*1.51。
MySQL對索引長度有復(fù)雜的限制。每個版本和存儲引擎都是不同的。下面是mysql5.1.58的測試結(jié)果:
InnoDB的最大總長度是3072字節(jié),單字符字段是767字節(jié)。如果字段長度大于767,將自動截取前767個字符。
MyISAM的最大總長度為1000字節(jié),單個字符字段為1000字節(jié)。
內(nèi)存的最大總長度為3072字節(jié),單個字符字段為3072字節(jié)。