为什么 Java 子字符串不好?

Car*_*Now -4 java

我最近第一次开始使用 Java(在此之前我主要使用 C、C++ 或 Assembly)并遇到了子字符串。我知道Java字符和字符串占用的空间至少是字符或字符串应占用空间的两倍。但为什么子串不好呢?很多人建议我尽可能在处理密集型平台上避免使用字符串,但在处理密集型的网络服务中到处都使用字符串,所以我很好奇为什么这么多人有这种观点。

Kay*_*man 5

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

在 Java 8 中,情况不再如此(内部char[]被复制),您可以自由地获取甚至很长的子字符串Strings