在 Java 中将整数转换为字符串时,传统方法包括使用 Integer.toString(int) 或String.valueOf(int) 方法。然而,我们观察到的一种特殊方法是使用字符串连接,如以下代码片段所示:
int i = 5; String strI = "" + i;
此类方法是非常规的,可能表明缺乏有关 Java 中正确技术的知识。虽然这种串联方法可能有效,但这是一种不常见的做法。
深入研究 Java 如何处理这种串联,编译器会优化此类代码并将其转换为一系列字符串附加,如下所示:
StringBuilder sb = new StringBuilder(); sb.append(""); sb.append(i); String strI = sb.toString();
虽然由于使用 StringBuilder.append() 和 Integer.getChars(),此方法的性能稍差,但它仍然
需要注意的是,编译器不会优化空字符串连接,从下面的字节码分析可以明显看出:
... 9: ldc #4; //String 11: invokevirtual #5; //Method java/lang/StringBuilder.append: (Ljava/lang/String;)Ljava/lang/StringBuilder; ...
这导致了一个提案并正在进行开发以改变 JDK 9 中的此类行为。因此,建议在转换整数时使用 Integer.toString(int) 或 String.valueOf(int) 等标准方法,以提高清晰度和可维护性转换为 Java 中的字符串。
以上是为什么 Java 中整数到字符串转换的字符串连接被认为是非常规的?的详细内容。更多信息请关注PHP中文网其他相关文章!