文章预览
0. 写在前面的省流版 下图是Java字符串拼接实现的技术演进路线,最新的实现 PR 20273是来自阿里巴巴的贡献。 1. 关于使用"+"做字符串拼接 一些古老的技术文章中会说,在Java中使用"+"做字符串拼接性能不好,但实际情况是JDK 9+之后的版本,使用"+"做字符串拼接会比StringBuilder快。 如下是一个字符串拼接的的方法,我们基于这个方法来介绍JDK8和JDK9之后版本的性能以及背后的内部细节。 class Demo { public static String concatIndy ( int i) { return "value " + i; } } 2. JDK 8下的字符串拼接实现 2.1 编译并查看字节码 jdk8/bin/javac Demo.java jdk8/bin/javap -c Dem javap输出的字节码: class Demo { Demo(); Code: 0 : aload_0 1 : invokespecial # 1 // Method java/lang/Object." ":()V 4 : return public static java.lang.String concatIndy( int ); Code:
………………………………