不复制就无法从 char[] 创建 String 吗?

Impossible to create String from char[] without copying it?

有没有一种方法可以在不复制的情况下从 char[] 创建字符串?

正如您从下面的屏幕截图中看到的(取自 JDK 1.8 中的字符串 class):

实现这一点的构造函数是私有的,不可访问。有什么解决方法吗?因为我需要不复制 char[].

来提高性能

对于上下文:我正在研究 YAML/DYML 解析器,其中每百分之一毫秒都很重要。这是代码(它的 WIP):https://github.com/Osiris-Team/Dream-Yaml/blob/main/src/main/java/com/osiris/dyml/DYReaderV2.java

简单的回答是否定的,这是一个无赖。

但是有一些合理的解决方法:

  • 通过 Javas 反射创建私有字符串构造函数 public API
  • 创建自定义 JVM 发行版并将私有构造函数更改为 public

更合理的选择是:

  • 直接使用 char[]
  • 改用 CharSequence 或 CharBuffer

感谢评论中的所有帮助。