先贴源代码如下所示:使用Eclipse编译器,JDK1.6
public class TestString { public static void main(String[] args) { String s = "a"+"b"+"c"+"d"; System.out.println(s); } }
再来看看,使用jd-gui,也就是Java Decompiler查看的反编译后的class文件代码。
public class TestString { public static void main(String[] args) { String s = "abcd"; System.out.println(s); } }
也就是说,对于字符串常量来说,在编译期(转换为class文件之时)就会存在优化。
那么,问一个问题,在上述例子之中,创建了几个对象?