一、使用JDK自带的javap工具(反编译):命令javap -c 类名
package com.test;
public class Concatenation {
public static void main(String[] args){
String mango = "mango";
String s = "abc" + mango+"def"+47;
System.out.println(s);
}
}使用javap -c Concatenation

从上可以看出,
1、String在拼接时,自动的使用Stringbuilder的append方法,提高效率。dup和invokevirtual时Java的汇编语言。从而看出,String在拼接的时候不是直接放到后面的,而是创建了一个StringBuilder对象;
2、每个String都有占有一个独立的内存空间
但是在jdk1.9之后,不再使用StringBuilder,而是直接拼接。Java做了优化,至于怎么优化,不清楚
1.9的效果

版权声明:本文为qq_39598417原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。