可以看到,这里面的参数length是使用int类型定义的,那么也就是说,String定义的时候,最大支持的长度就是int的最大范围值。那么,我们是不是就可以认为String能支持的最大长度就是,java.lang.Integer#MAX_VALUE的最大值是2^31 - 1这个值了呢?事情当然没有那么简单,这个值只是在运行期,我们构造String的时候可以支持...
在上面的示例中,我们使用了一个StringBuilder对象来动态构建一个非常长的字符串,长度超过了Integer.MAX_VALUE个字符。然后,我们将该字符串转换为String类型,并尝试获取其长度。运行这段代码,我们会得到以下错误信息: Exception in thread "main" java.lang.OutOfMemoryError: Requested array size exceeds VM limit 1....
根据《Java虚拟机规范》中第4.4章节常量池的定义,CONSTANT_String_info 用于表示 java.lang.String 类型的常量对象,格式如下: CONSTANT_String_info { u1 tag; u2 string_index; } 其中,string_index 项的值必须是对常量池的有效索引, 常量池在该索引处的项必须是CONSTANT_Utf8_info 结构,表示一组 Unicode 码...
java.lang.String类 概述 java publicfinalclassStringimplementsjava.io.Serializable,Comparable<String>,CharSequence{/** The value is used for character storage. */privatefinalcharvalue[];/** Cache the hash code for the string */privateinthash;// Default to 0 String:代表字符串。Java 程序中的所有...
首先要知道String的长度限制我们就需要知道String是怎么存储字符串的,String其实是使用的一个char类型的...
StringBuffer -可变,线程安全,性能略低。 StringBuilder- 可变,非线程安全,性能高。可优先考虑使用 StringBuilder 转为 String对象: StringBuiler str =newStringBuilder();String str2= str.toString(); packagetest;importjava.lang.*;publicclasstest1 {publicstaticvoidmain(String[] args) {//创建一个空的String...
...publicstaticvoidmain(java.lang.String[]);descriptor:([Ljava/lang/String;)Vflags:ACC_PUBLIC,ACC_STATICCode:stack=3,locals=2,args_size=10:new#2// class java/lang/String3:dup4:ldc #3// String abc6:invokespecial #4// Method java/lang/String."<init>":(Ljava/lang/String;)V9:astore...
1:invokespecial#1 // Method java/lang/Object."<init>":()V 4: return public static java.lang.String concatIndy(int); Code: 0: new #2 // class java/lang/StringBuilder 3: dup 4: invokespecial #3 // Method java/lang/StringBuilder."<init>":()V ...
不能使用!!!在Java中,java.lang.String是核心类库中的一个类,由启动类加载器(Bootstrap Class ...