不复制就无法从 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
感谢评论中的所有帮助。
有没有一种方法可以在不复制的情况下从 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
感谢评论中的所有帮助。