Sting str = "aaaa" 的形式定义一个字符串最大长度只能有 65534 个。

简介: String对象最多能容纳字符 最长的长度为 2^32,也就是4G。不过,我们在编写源代码的时候,如果使用 Sting str = "aaaa";的形式定义一个字符串,那么双引号里面的ASCII字符最多只能有 65534 个。
  • String对象最多能容纳字符 最长的长度为 2^32,也就是4G。
  • 不过,我们在编写源代码的时候,如果使用 Sting str = "aaaa";的形式定义一个字符串,那么双引号里面的ASCII字符最多只能有 65534 个。

为什么呢?因为在class文件的规范中, CONSTANT_Utf8_info表中使用一个16位的无符号整数来记录字符串的长度的,最多能表示 65536个字节,而java class 文件是使用一种变体UTF-8格式来存放字符的,null值使用两个字节来表示,因此只剩下 :

65536 - 2 = 65534 

个字节。

  • 跟 class文件的规范有关
相关文章
|
4月前
|
机器学习/深度学习 缓存 安全
Python标准库中的`str`类型有一个`translate()`方法,它用于替换字符串中的字符或字符子集。这通常与`str.maketrans()`方法一起使用,后者创建一个映射表,用于定义哪些字符应该被替换。
Python标准库中的`str`类型有一个`translate()`方法,它用于替换字符串中的字符或字符子集。这通常与`str.maketrans()`方法一起使用,后者创建一个映射表,用于定义哪些字符应该被替换。
|
4月前
|
语音技术
语音识别,运算符,字符串的三种成定义方式,\“转意字符的定义,字符串的拼接,TypeError: can only concatenate str (not “init “) to str是浮点数和整
语音识别,运算符,字符串的三种成定义方式,\“转意字符的定义,字符串的拼接,TypeError: can only concatenate str (not “init “) to str是浮点数和整
|
4月前
|
前端开发 JavaScript
split(分割符)字符串转换为数组,str_arr.split(‘‘)//以空字符串为分隔符,以,为分隔符str_arr.split(‘,‘)str.replace(‘1‘,‘a‘)替换1
split(分割符)字符串转换为数组,str_arr.split(‘‘)//以空字符串为分隔符,以,为分隔符str_arr.split(‘,‘)str.replace(‘1‘,‘a‘)替换1
|
6月前
|
存储 测试技术
luatos 字符串与数组转换,解析hex数组
luatos 字符串与数组转换,解析hex数组
109 1
|
6月前
|
索引 容器
06-数据容器str(字符串)-字符串的下标索引/字符串无法修改/查找字符串下标初始值/字符串的替换/字符串的分割/字符串去除前后空格/统计字符串的数量/字符串的循环遍历/对字符串进行分割
06-数据容器str(字符串)-字符串的下标索引/字符串无法修改/查找字符串下标初始值/字符串的替换/字符串的分割/字符串去除前后空格/统计字符串的数量/字符串的循环遍历/对字符串进行分割
|
6月前
|
Oracle Java 关系型数据库
Java【代码分享 06】Lamda表达式将List对象中的Map对象的key全部转化为大写或者小写(去除外层循环:可用于Map对象中的key全部转化为大写或者小写)
Java【代码分享 06】Lamda表达式将List对象中的Map对象的key全部转化为大写或者小写(去除外层循环:可用于Map对象中的key全部转化为大写或者小写)
302 0
|
存储 算法 C语言
【C++】对于string的补充(成员函数c_str()、大小写转换、字符串和实数之间的相互转换)
【C++】对于string的补充(成员函数c_str()、大小写转换、字符串和实数之间的相互转换)
72 0
将一个字符串的str的内容颠倒过来,并输出
将一个字符串的str的内容颠倒过来,并输出
lodash检查字符串string是否以给定的字符串结尾
lodash检查字符串string是否以给定的字符串结尾
179 0