在Java中将double转换为char数组的算法(不使用Double.toString或StringBuilder之类的对象)?

chr*_*tek 3 java algorithm types numbers primitive-types

有谁知道我在哪里可以找到该算法?它需要一个double和StringBuilder并将double附加到StringBuilder 而不创建任何对象或垃圾.我当然不是在寻找:

sb.append(Double.toString(myDouble));

// or

sb.append(myDouble);
Run Code Online (Sandbox Code Playgroud)

我尝试了解Java源代码(我确信它以某种方式做到了)但我看不到任何代码/逻辑块足够清楚以至于可以重用.

Pet*_*rey 6

我已经为ByteBuffer写了这个.你应该能够适应它.将其写入直接的ByteBuffer可以节省您将其转换为字节或将其复制到"本机"空间的过程.

看到 public ByteStringAppender append(double d)

如果您将此日志记录到文件中,则可以使用整个库,因为它可以写入每秒大约2000万个双倍的持续时间.它可以在没有系统调用的情况下执行此操作,因为它写入内存映射文件.