字符串的存储长度
⑴ 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中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。