在cpp中为了可移植性,string的长度是string::size_type,突然就想知道java允许的最大字符串长度为多少。看String的源码:
<!---->public
final
class
String
110
implements
java.io.Serializable, Comparable
<
String
>
, CharSequence
111
{
112
/**
The value is used for character storage.
*/
113
private
final
char
value[];
114
115
/**
The offset is the first index of the storage that is used.
*/
116
private
final
int
offset;
117
118
/**
The count is the number of characters in the String.
*/
119
private
final
int
count;
String内部是以char数组的形式存储,数组的长度是int类型,那么String允许的最大长度就是Integer.MAX_VALUE了。又由于java中的字符是以16位存储的,因此大概需要4GB的内存才能存储最大长度的字符串。不过这仅仅是对字符串变量而言,如果是字符串字面量(string literals),如“abc"、"1a2b"之类写在代码中的字符串literals,那么允许的最大长度取决于字符串在常量池中的存储大小,也就是字符串在class格式文件中的存储格式:
<!---->CONSTANT_Utf8_info {
u1 tag;
u2 length;
u1 bytes[length];
}
u2是无符号的16位整数,因此理论上允许的string literal的最大长度是2^16=65536。然而实际测试表明,允许的最大长度仅为65534,超过就编译错误了,有兴趣可以写段代码试试。
分享到:
相关推荐
Java字符串长度不够前面或后面补0
在JAVA里面实现判断字符串长度,和截取字符串
java获取字符串长度,长度不够补相应的字符串
Java字符串长度不够,将其前面补0或者后面补0,适用于字典序比较前,将要比较字符串的位数保持一致,再进行比较。
如果你用”+”来连接固定长度的字符串,可能性能上会稍受影响,但是如果你是在 循环中来”+”多个串的话,性能将指数倍的下降。假设有一个字符串,我们将对这个字符串做大量循环拼接操作,使用”+”的话将得到最低的...
java 字符串截取工具类java 字符串截取工具类
Java字符、字符串、数组操作实例,主要是数组的复制、反转字符串中的字符、命令行参数、求字符串的长度及每一个位置上的字符、数组的排序、String类数组的操作等方面的例子,相信对初学者学习Java有帮助的。
java接收用户输入的一个字符串和一个字符,将字符串中出现的所有该字符删除,打印新生成的字符串。
NULL 博文链接:https://xylonwang.iteye.com/blog/437488
java字符串操作大全,适合初学者,浅显易懂 部JAVA字符串操作 2008-07-11 15:39:42| 分类: JAVA | 标签: |字号大中小 订阅 . JAVA字符串的方法 String a = "53c015"; //Integer.parseInt(s, radix) radix设置为...
利用java字符串进行增删改查 实现的超市管理系统,。(动态增加数组长度和动态增加字符串数组长度)
java 字符串分割 代码 输入一字符串(长度小于100),10个字符一组分割存入新的数组,倒序输出。
只有资源文件,没有入口程序和测试用例,在OJ平台上满分
这个方法用来处理java中可能有一些特别的需要,一大串中英文混合,需要中间截断或是中英中间添加一些特别的标识,调用这个方法 第一个参数是要处理的字符串,第二个是要在中英字符中间插入的字符。调用就可以得到想...
运行程序之后输入任意的字符串,将字符串转化成二进制数字字符串,然后利用LZ78算法实现对二进制字符串压缩解压,最后再恢复原来的字符串
g.drawString("字符串s1的长度为:"+n1,5,70); g.drawString("字符串s2的前缀是否为we? "+s2.startsWith("we"),5,90); String s3[]={"door","apple","Applet","girl","boy"}; g.drawString("s3=door,apple,Applet,...
Java随机字符串生成器,可用于生成随机密码,加密算法密约(AES,RSA等)等场景,支持可选字符范围配置(如只允许数字,只允许字母,只允许数字字母,特殊字符等混合配置),即在选择的字符范围内去实现随机字符串...
判断字符串为空 判断Email有效性 判断身份证号码有效性 判断手机号码有效性 ...判断字符串是否为空(null或长度为0) 截取字符串从开始到给定长度的一段 判断字符串是否以某个前缀开头 判断字符串是否以某个后缀结尾
计算字符串最后一个单词的长度,单词以空格隔开。 输入 一行字符串,长度小于128。 输出 整数N,最后一个单词的长度。 样例输入 hello world
其中本程序包含获取字符串的长度,寻找字符串中的字符,寻找字符串中的字串,连接字符串,字符串的比较等。并且本程序包含菜单选项