java - string.replaceAll() 性能是否受到字符串不变性的影响?

标签 java performance string

假设我在替换了 1,000 个匹配实例的大字符串上调用了 replaceAll()。这是否意味着由于字符串不可变性而在过程中创建并重新分配了 1,000 个字符串?有没有更快的替代方案?

最佳答案

如果你深入研究 String ,您会看到它将 replaceAll() 委托(delegate)给 Pattern & Matcher Matcher.replaceAll() 使用StringBuilder 来存储最终返回的值。

所以不,String.replaceAll() 不会创建超过少量的对象。

关于java - string.replaceAll() 性能是否受到字符串不变性的影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1250216/

相关文章:

string - 二元序列相加组合

java - 在 Spring MVC 中使用 Gson 将嵌套 Json 数组转换为 Java 数组

java - Apache Camel - Kafka 组件 - 单生产者多消费者

java - Selenium 2 Java 在 Selenium 服务器中运行/部署 jar

java - docx4j:提高性能

c# - C++ 和适当的 TDD

c - 如何在 C 中将字符串小写?

python - 使用 Cholesky 分解在 numpy 中反转矩阵的效率

c++ - C 和 C++ 奇怪的性能差异

php - Laravel - 格式化通过 pluck() 检索的 Collection 中的字符串值