当前位置: 首页 > 知识库问答 >
问题:

如何修改JVM中字符串池的大小?

文自怡
2023-03-14

我在读一本关于Java的书,其中提到了一个修改字符串池大小的选项,该选项是xx:StringTableSize。当我在命令行中尝试这样做时,我得到了一个错误,说这是一个无效的标志,我尝试了以下两种方法,发生了相同的错误:

错误:无效标志:-XX1234

错误:无效标志:-XX:1234

错误是什么?我在Java SE参考中找不到解决方案,甚至没有看到类似“-xx”的选项。

这背后的原因是什么,是我犯了句法错误还是这个选项被否决了还是其他什么?我使用的是JDK11。

共有1个答案

巫马嘉祯
2023-03-14

您传递的可能小于允许的最小值。例如,我可以在以下OpenJDK 11上成功运行

java -XX:StringTableSize=16777216 TestClass

您还可以参考这里的优秀链接,了解不同JDK版本中可用的不同VM选项的摘要。

如果我提供的少于允许的,我得到这个

java -XX:StringTableSize=10 TestClass

uintx StringTableSize=10 is outside the allowed range [ 128 ... 16777216 ]
Improperly specified VM option 'StringTableSize=10'

过去曾讨论过这种参数支持的有用性和正确性。你可以在这里读到这些。

 类似资料:
  • 我有一个String,newNumber=106,nn=3和差异=3。 输出: 我想修改这个字符串,使输出变成,然后用这个新字符串我想再次修改它,使它变成,基本上我只需要替换新的数字,它是106,并且一直变为11,正如你所看到的,我试图只修改newNumber并用另一个替换它,同时保持整个字符串不变,我只是替换并添加它,这是如何实现的?输出应该是这样的,输出: 我在用步骤求解一个方程,公式无关紧要

  • 修改字符串 到目前为止,我们简单地搜索了一个静态字符串。正则表达式通常也用不同的方式,通过下面的 RegexObject 方法,来修改字符串。 方法/属性 作用 split() 将字符串在 RE 匹配的地方分片并生成一个列表, sub() 找到 RE 匹配的所有子串,并将其用一个不同的字符串替换 subn() 与 sub() 相同,但返回新的字符串和替换次数

  • 问题内容: 我有一个字符串: 我想在拆分并递增1之后解析每个项目。因此,我将拥有: 如何在NodeJS中做到这一点? 问题答案: 用途与功能: 注意-字符串强制转换为数字。 或更短: 编辑2015.07.29 今天,建议 不要 使用运算符将变量转换为数字。取而代之的是,我会进行更明确但更易读的调用: 编辑2017.03.09 ECMAScript 2015引入了 箭头功能, 因此可以代替使用它来使

  • 本文向大家介绍C++ 修改字符串文字,包括了C++ 修改字符串文字的使用技巧和注意事项,需要的朋友参考一下 示例 C ++ 11 "hello world" 是字符串文字,因此对其进行修改会产生未定义的行为。 str上面示例中的初始化在C ++ 03中已正式弃用(计划从该标准的将来版本中删除)。2003年之前,许多编译器可能对此发出警告(例如,可疑转换)。2003年之后,编译器通常会警告不要使用转

  • val textoData=itemView。findViewById(R.id.texto_data_abastecimento)textoData。text=abastecimento。datam。toString()。子序列(0..10) 我试图只使用前5个字符在适配器上显示,我最终得到以下错误: java.lang.StringIndexOutOfBounds异常:长度=0;索引=6

  • 问题内容: 通常,我在互联网上的许多文章中都读到,当我们编写上面的语句时,会创建两个对象。在堆上创建一个String对象,在Literal Pool上创建一个字符串对象。并且堆对象还引用在Literal Pool上创建的对象。(如果我的陈述是错误的,请更正。) 请注意,以上解释是根据我阅读互联网上一些文章后的理解得出的。 所以我的问题是..有什么方法可以停止在文字池中创建字符串对象。怎么做? [请