当前位置: 首页 > 面试题库 >

Java中的字符串POOL

赫连法
2023-03-14
问题内容

Java具有字符串池,这是由于字符串类的对象是不可变的。

但我的问题仍然存在-

制作String POOL有什么需要?

为什么字符串类没有像其他类那样保留其自己的值?

JVM内部是需要一些字符串还是这是性能优势。如果是,怎么办?


问题答案:

因为字符串是不可变的,所以可能有一个池。但是String的不可变性并不是仅由于此池而决定的。不变性还有许多其他好处。顺便说一句,a
Double也是不可变的,并且没有双打池。

对String池的需求是减少保存程序使用的所有String文字(和插入的String)所需的内存,因为这些文字在程序的很多地方都有很多次被使用的机会。您不必拥有数千个相同String文字的副本,而只需拥有数千个对同一String的引用,这可以减少内存使用。

请注意,String类与其他类没有什么不同:它拥有自己的char数组。但是,当调用子字符串时,它也可能与其他String实例共享它。



 类似资料:
  • 问题内容: 为什么以下算法对我来说不停止?(str是我要搜索的字符串,findStr是我要寻找的字符串) 问题答案: 最后一行造成了问题。永远不会为-1,所以会有无限循环。可以通过将代码的最后一行移到if块中来解决此问题。

  • 我有一个字符串“1,3,5,7,9,11,12,14”,我想检查该字符串在java中是否包含“12,3,14”。 我的代码:

  • 本文向大家介绍替换Java字符串中的子字符串,包括了替换Java字符串中的子字符串的使用技巧和注意事项,需要的朋友参考一下 假设以下是我们的字符串。 我们想将子字符串“ Dead”替换为“ Alive”。为此,让我们使用以下逻辑。在这里,我们使用了while循环,并在其中找到了要替换的子字符串的索引。这样,我们一个接一个地替换了整个子字符串。 以下是替换子字符串的完整示例。 示例 输出结果

  • 问题内容: 我正在解决一个简单的问题: 在Java中删除字符数组中的某些字符,想法很简单: 我想输入一个信号,表示当我们想要使用例如生成一个字符串时,不必考虑数组的其余部分 Java中是否有这样的字符?(我想是,但我不确定) 例如,当我们调用: 这将被打印: 虽然我想得到,但我不想使用新的数组来做到这一点 问题答案: Java不会像C那样“标记”字符串的结尾。它跟踪长度和值,因此字符串中可以包含零

  • 问题内容: 这是jsonObject的字符串 我想将此字符串转换为JSONObject以在JSONArray中获取此值 问题答案: 使用这个: 输出:

  • 本文向大家介绍在Java中搜索字符串中的字符。,包括了在Java中搜索字符串中的字符。的使用技巧和注意事项,需要的朋友参考一下 您可以使用String类的方法在字符串中搜索特定字母。此方法返回字符串中单词的位置索引(如果找到)。否则返回-1。 示例 输出结果