String内存模型
String内存模型+反编译指令
栈 | 存放变量/指针/引用 |
---|---|
堆 | 存放对象 |
方法区 | 字符串常量池 |
public class Test{
public static void mian(String args[]){
String s1="abc";
String s2="a"+"b"+"c";
String s3="abc"+"";
String s4=s3+"";
String s5=new String("abc");
System.out.println(s1==s2);
System.out.println(s1==s3);
System.out.println(s1==s4);
System.out.println(s1==s5);
}
}
- 预编译会拼接字符串常量
- 变量运算与new会在heap开辟空间(创建对象)
反编译指令:javap -c //对代码进行反汇编