0
点赞
收藏
分享

微信扫一扫

java字符串 的拼接---从JVM开始带你看底层源码---面试必要知识


直接上代码—

字符串的拼接

public class Test {
public static void main(String args[]) {
//字符串的拼接
String str0 = "abc";
String str1 = "abc";
String str2="a"+"b";
String str3=new String ("abc");
String b=str2+"c";
System.out.println(str0==str1);
System.out.println(str1==str3);
System.out.println(str0==b);
System.out.println(b);

}
}

java字符串 的拼接---从JVM开始带你看底层源码---面试必要知识_字符串

我们编译一下生成class’文件,然后反编译看结果—

java字符串 的拼接---从JVM开始带你看底层源码---面试必要知识_字符串_02

这几年java优化的还不错吧,避免产生不必要的垃圾.

再来,我们通过JVM拉看一下代码是怎么运行的,在控制台输入 javac 将java文件编译,然后输入javap -c Test.class

java字符串 的拼接---从JVM开始带你看底层源码---面试必要知识_java_03

new 关键字产生的String 对象

new 关键字产生的String 对象 实际上是开了两块空间—一个在堆中,一个在堆中的方法区,见上图.

有变量参与的字符串拼接

有变量参与的字符串拼接,在编译器不会进行优化,见上图反编译的文件截图,

时间匆忙,如有看不懂之出,还请私信我哦


举报

相关推荐

0 条评论