首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >字符串*的UTF8表示对常量池来说太长了

字符串*的UTF8表示对常量池来说太长了
EN

Stack Overflow用户
提问于 2014-09-08 05:43:52
回答 2查看 3.5K关注 0票数 3

我有一个String,然后将其转换为JSON对象:

代码语言:javascript
复制
public static final String JSON_STRING = "json string";
JSONObject jsonObject = new JSONObject(JSON_STRING);

但是,有时当String太长时,我会得到错误:

字符串*的UTF8表示对常量池来说太长了

还有其他方法可以得到这么长的字符串吗?

EN

回答 2

Stack Overflow用户

发布于 2014-09-08 05:55:00

字符串以UTF-8格式存储在类文件中,限制为65535字节.在运行时构造的字符串可以是长得多

因此,您应该将字符串常量拆分到多个字符串常量上,并在使用前将它们连接起来,或者从文本文件中读取值。

票数 4
EN

Stack Overflow用户

发布于 2014-09-08 05:46:43

据我所知,JVM (特别是类文件格式)限制为65535个字符。

来自Oracle文档

字段和方法名称、字段和方法描述符的长度以及其他常量字符串值(包括由ConstantValue (§4.7.2)属性引用的字符串值)被CONSTANT_Utf8_info结构的16位无符号长度项限制为65535个字符(§4.4.7)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25718059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档