字元串的存儲長度
⑴ js字元串最多存儲多少位元組
JS字元串的長度受到下標限制。理論最大長度是2^53-1(即js中可表達的最大安全整數)。2^53是多大呢?大約9PB。根據統計,中國2014年所有出版物(不計復本)不到2000億字,也就是400GB而已。按此推算,不要說存一個txt了,中國自有甲骨文以來所有的書、各類出版物字數加在一起估計也不可能超過100TB,也就是0.1PB。當然啦,實際引擎是不可能允許分配那麼大的字元串的,你的電腦也沒那麼大存儲不是。V8的heap上限只有2GB不到,允許分配的單個字元串大小上限更只有大約是512MB不到。JS字元串是UTF16編碼保存,所以也就是2.68億個字元。FF大約也是這個數字。根據最長的網路小說是哪部,目前最長的網路小說大概2000萬字。所以還是綽綽有餘的。《道藏》大約7000萬字,《大藏經》大約1億字,也是存得下的。不過《永樂大典》有3.7億字,《四庫全書》有8億字,V8/FF的一個字元串就存不下嘍。然而IE11貌似可以存4GB的字元串,即21億字。其實限制是在伺服器資源、網速和存儲。你文本還沒讀完,值還沒賦完,內存不夠了。內存夠了,幾百m幾個G的變數,搞得頁面請求超時了,訪客沒耐心關掉了,或者瀏覽器內存崩潰了。取一次嗎?還是經常要用,要持久化不,資料庫肯定存不下,文件存吧〔占硬碟,存不了幾個〕,又每次要io讀。你幹嘛不搞幾百字的簡介,配個圖,附上文件的下載地址〔放網盤,2T內免費〕不是很好嗎。
⑵ 字元串長度有哪些
這個字元串長度為10個字元:
可以用strlen("ab'1'\12803")來求這個字元串的長度。
也可以用sizeof("ab'1'\12803")來求,但是這個求出的結果是多了一個字元串結束符 。
可以試著輸出這個字元串看看是不是10個字元。
strlen()函數判斷的字元串長度是以 為結尾作為標志的。
當char * m=new char[TOKEN_LENGTH]後,雖然為指針分配了地址,但是其指向的內容未被初始化,所以m指向的內容是未知的,可能在第24個字元的位置發現了 所以strlen()顯示長度為24。
在 ASCII 編碼中,一個英文字母字元存儲需要1個位元組。在 GB 2312 編碼或 GBK 編碼中,一個漢字字元存儲需要2個位元組。在UTF-8編碼中,一個英文字母字元存儲需要1個位元組,一個漢字字元儲存需要3到4個位元組。
在UTF-16編碼中,一個英文字母字元或一個漢字字元存儲都需要2個位元組(Unicode擴展區的一些漢字存儲需要4個位元組)。在UTF-32編碼中,世界上任何字元的存儲都需要4個位元組。
以上內容參考來源:網路-字元串
⑶ 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個字元都有可能。
⑷ 存儲字元串「a」需要至少佔用存儲空間中的幾個位元組
存儲字元串「a」需要至少佔用存儲空間中的2個位元組。
字元串是用雙引號(「」)括起來的由零個或多個字元組成的有限序列。字元串在存儲上是使用單個字元代碼的數組,每個字元佔用一個位元組。由於每個字元串尾自動加一個『\0』作為字元串結束標志。
所以字元串「a」的長度使用單字元'a'和單字元『\0』共2個單字元代碼的數組進行存儲,即佔用存儲空間中的2個位元組。
(4)字元串的存儲長度擴展閱讀:
在程序設計中,字元串通常以串的整體作為操作對象,如:在串中查找某個子串、求取一個子串、在串的某個位置上插入一個子串以及刪除一個子串等。兩個字元串相等的充要條件是:長度相等,並且各個對應位置上的字元都相等。
由於在程序中經常出現大量String對象的值相同的情況,造成內存空間的冗餘。為了有效地利用內存,預留了一塊特殊的內存區域,稱為String常量池。當編譯器遇到一個String常量時,先檢查常量池中是否存在值相同的String常量,如果存在,則把該常量的引用指向常量池中的String常量。
⑸ 字元串的長度是怎麼樣的
一般的說,有兩種類型的字元串數據類型:「定長字元串」,它有固定的極大長度並且不管是否達到了這個極大值都使用同樣數量的內存;和「變長字元串」,它的長度不是專斷固定的並且依賴於實際的大小使用可變數量的內存。
在現代編程語言中的多數字元串是變長字元串。盡管叫這個名字,所有變長字元串還是在長度上有個極限,一般的說這個極限只依賴於可獲得的內存的數量。
可以使用特殊的終止字元隱式存儲字元串的長度;這通常是空字元(NUL),它的所有位都為零,這是流行的C 編程語言使用和延續的約定。因此,這種表示通常被稱為C 字元串。這種n字元字元串的表示佔用n+ 1 個空格(1 表示終止符),因此是一個隱式數據結構。
在終止字元串中,終止代碼不是任何字元串中允許的字元。帶有長度欄位的字元串沒有這個限制,也可以存儲任意二進制數據。
長度前綴
字元串的長度也可以顯式存儲,例如通過在字元串前面加上長度作為位元組值。這種約定用於許多帕斯卡方言;因此,有些人稱這樣的字元串為Pascal 字元串或P-string。
將字元串長度存儲為位元組會將最大字元串長度限制為 255。為避免此類限制,P 字元串的改進實現使用 16、32 或 64 位字來存儲字元串長度。當長度欄位覆蓋地址空間時,字元串僅受可用內存的限制。
如果長度是有界的,那麼它可以在常量空間中編碼,通常是一個機器字,從而導致一個隱式數據結構,佔用n+k空間,其中k是一個字中的字元數(8 表示 8 位ASCII 在 64 位機器上,1 代表 32 位 UTF-32/UCS-4 在 32 位機器上,等等)。
⑹ 字元串長度是多少
c語言字元串長度需要在電腦上進行計算之後才知道字元串的長度是多少。
字元串是編程語言中表示文本的數據類型。字元串在存儲上類似字元數組,它每一位單個元素都是能提取的,字元串的零位是它的長度,如s[0]=10,這提供給我們很多方便,例如高精度運算時每一位都能轉化為數字存入數組。
補充:
字元串在存儲上類似字元數組,它每一位單個元素都是能提取的,字元串的零位是它的長度,如s[0]=10,這提供給我們很多方便,例如高精度運算時每一位都能轉化為數字存入數組。
通常以串的整體作為操作對象,如:在串中查找某個子串、求取一個子串、在串的某個位置上插入一個子串以及刪除一個子串等。
兩個字元串相等的充要條件是:長度相等,並且各個對應位置上的字元都相等。設p、q是兩個串,求q在p中首次出現的位置的運算叫做模式匹配。串的兩種最基本的存儲方式是順序存儲方式和鏈接存儲方式。