【Java】String字符串的最大长度是多少?

先说结论:

对于Java字符串的最大长度,要分为2种情况进行讨论。
① 编译期:一般情况下,最大长度为65534。
② 运行期:Integer.MAX_VALUE。

接下来通过对一个字节码文件反编译来解释一下为什么?

一、编译期String字符串的最大长度为什么是65534?

当我们使用javac命令对.java文件进行编译后,会生成相关类的.class文件。
关于.class文件的结构,大家如果感兴趣的话可以自行搜索了解一下,或者我后面如果有精力会专门写一篇,不了解.class文件的结构并不影响接下来的理解。

我们只需要知道编译后的.class文件里有一个结构叫做常量池
常量池 中主要存放两大类常量:字面量(Literal)和符号引用(Symbolic References)。字面量比较接近于Java语言层面的常量概念,如文本字符串、被声明为final的常量值等。而符号引用则属于编译原理方面的概念(这个与本文无关,故不深入讲解)。

还有 91% 的精彩内容
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
支付 ¥1.00 继续阅读

相关阅读更多精彩内容

友情链接更多精彩内容