为什么Java子串很糟糕?

时间:2016-09-26 19:49:49

标签: java

我最近第一次开始使用Java(之前我主要使用C,C ++或汇编)并遇到了子串。我知道Java字符和字符串至少占用字符或字符串应占用的空间的两倍。但为什么子串很难?很多人都建议我在处理密集型平台时尽量避免使用它们,但是在Web服务中随处可见字符串,这可能是处理密集型的,所以我很好奇为什么这么多人有这个意见。

1 个答案:

答案 0 :(得分:4)

这可能与先前实施substring()的方式有关。在较早的Java版本中,在substring()上调用String会将原始String保留在内存中(它们将共享内部char[])。如果原始字符串不必要地保留在内存中,这可能会导致内存问题。

在Java 8中不再是这种情况(复制了内部char[]),您可以自由地获取甚至长Strings的子字符串。