将子字符串的 jdk6 更改为 jdk7 行为的解决方法

Workaround for the changed jdk6 to jdk7 behavior of substring

直到 jdk7u6 为止,子字符串方法 was lightning fast 因为它只是在现有字符串中使用指针 - 因此不需要内存复制。我在实现解析器时广泛使用了该功能。

考虑到自该关键性能特征被移除以来的时间长度,必须有一些润滑良好的替代品。

注意:理论上我可以返回并从 jdk6 复制实现。但是 IIRC 它在整个 String class 中被包裹得很重 - 即不容易提取。

这样的实现是否存在 - 例如在高性能 jvm 解析器库之一中?

您可以使用实现了 CharSequence 接口的 CharBuffer 来完成您需要的操作。具体参见 CharBuffer.subSequence.