栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java字符串报错:constant string too long 问题

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java字符串报错:constant string too long 问题

今天无意发现了一个关于字符串的问题,之前总说字符串能够放多少字符。一直认为堆内存分配了多大就能够放多大,Java8以后来了一个元空间,直接用系统内存。更大了。然而今天为了省事将一对内容放到了string中进行处理。结果编译的时候报错了:constant string too long 。于是发现自己疏忽了一些问题。

工程从编写到运行,要经历 编译和运行阶段。 string在运行期放很多字符没问题,这个因为之前程序从文件里读取了很多东西输出来过,这点验证过。但是编译的时候,一直没有关注过。

后来发现编译期的String最多存放64KB也就是65535个字节

官网给出的解释:When we try to use a variable that is too long for the Java compiler (larger than 64 KB) we receive a “constant string too long” error from the compiler.

官网给出的解决方式就是通过文件读出来。也就是运行期了。

@Test
public void whenStoringInPropertiesString_thenNoCompilationError() throws IOException {
    try (InputStream input = new FileInputStream("src/main/resources/config.properties")) {         
        Properties prop = new Properties();
        prop.load(input);
        String sValue = prop.getProperty("stringtoolong");
        assertThat(sValue).isNotEmpty();
    }  
}

运行期就是上面说的内存多大就理论能放多大。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/878411.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号