【随手记录】关于Java字符串长度
在java当中,在运行期间,字符串的长度是有最大限制的:21亿,也就是4GB;
在编译期间,字符串的长度最大为:65534。
字符串的内容是由一个字符数组 char[] 来存储的,由于数组的长度及索引是整数,Integer的最大范围是2^31 -1,所以数组的最大长度可以使【0~2^31-1】通过计算是大概4GB = (2* 2^31 - 1) / (1024^3) 。
但是通过翻阅java虚拟机手册对class文件格式的定义以及常量池中对String类型的结构体定义我们可以知道对于索引定义了u2有符号位,所以可以表示的最大范围是2^16 -1 = 65535。
但是由于JVM需要1个字节表示结束指令,所以这个范围就为65534了。超出这个范围在编译时期是会报错的,但是运行时拼接或者赋值的话范围是在整形的最大范围。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!