最近在使用String的時候遇到用string接字符串,結果出現String 接不住,數據過多,超出長度了.原來String是有容量限制的 咱們能夠使用串接操做符獲得一個長度更長的字符串,那麼,String對象最多能容納多少字符呢?查看String的源代碼咱們能夠得知類String中java
是使用域 count 來記錄對象字符的數量,而count 的類型爲 int,所以,咱們能夠推測最長的長度爲 2^32,也就是4G。.net
不過,咱們在編寫源代碼的時候,若是使用 Sting str = "aaaa";的形式定義一個字符串,那麼雙引號裏面的ASCII字符最多隻能 有 65534 個。爲何呢?由於在class文件的規範中, CONSTANT_Utf8_info表中使用一個16位的無符號整數來記錄字符串的長 度的,最多能表示 65536個字節,而java class 文件是使用一種變體UTF-8格式來存放字符的,null值使用兩個字節來表示,所以只剩 下 65536- 2 = 65534個字節。也正是變體UTF-8的緣由,若是字符串中含有中文等非ASCII字符,那麼雙引號中字符的數量會更少(一 箇中文字符佔用三個字節)。若是超出這個數量,在編譯的時候編譯器會報錯 ———————————————— 版權聲明:本文爲CSDN博主「勇往直前-千夜」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連接及本聲明。 原文連接:https://blog.csdn.net/wolfking0608/article/details/78583944對象