子字符串的内存问题

Memory issues with substring

substring 方法如何在内部工作以及它如何产生内存问题?

如何解决?

在 Java 7 更新 6 之前,substring 用于 return 对原始字符串的 查看 。假设您有一个包含 1,000,000 个字符的字符串并调用 s.substring(0, 1) 因为您只对第一个字符感兴趣,原始字符串会保留在内存中。

因为 Java 7u6 substring returns 一个新的字符串可以防止这个问题。