Java 是否使用参数调用 (g)libc
函数 printf
还是 Java 自行替换(我认为这很慢)?
因此,当我执行 System.out.printf( ... );
时,Java 会解释 %s
、%d
和调用 .replace("%d", Something)
还是只调用 native printf()
c 函数,将其传递给 C/C++ native 代码?
最佳答案
printf的所有代码是用 Java 完成的。
大部分的魔法都发生在 java.util.Formatter 中。类。
System.out.printf(String format, Object ... args)
最终会调用:
formatter.format(Locale.getDefault(), format, args);
参见Formatter#format也是如此。
关于Java printf 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37973359/