java中一个String可以有多大

对于java中有2种创建String的方式第一种: String a = "hello world" 第二种 String b = new String("hello world")
一个字符串的大小限制有如下
1:常量池大小(1.8移到堆中)的限制 堆内存的限制
2: 常量池 utf-8字符串的结构 tag [u1] length [u2] bytes [length] u2为无符号16bit 长度最大为65535 bytes
3: new String 结构 为 char[] + hash char 数组最大值取决于 int :
Array.newInstance(char.class, Integer.MAX_VALUE-1); java.lang.OutOfMemoryError: Requested array size exceeds VM limit
Array.newInstance(char.class, Integer.MAX_VALUE-2); java.lang.OutOfMemoryError: Java heap space

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容