String创建的对象存在哪里

直接放测试代码:

String a = "asdadas";
String b = "asdadas";
System.out.println(a.getBytes());//1
System.out.println(b.getBytes());//2
String c = new String("asdadas");
System.out.println(c.getBytes());//3
if(a==c){
    System.out.println("a=c");
}
else
    System.out.println("a!=c");//4

if(a==b){
System.out.println("a=b");//5
}

上面代码输出结果:

[B@15db9742
[B@6d06d69c
[B@7852e922
a!=c
a=b

结论1: a b c地址都不相等, 证明都是重新开辟地址

结论2: a b相等, 说明a b都指向String常量池的同一块地址

结论3: a c 不相等, 说明new出来的新对象都不会相等

你可能感兴趣的:(Java,java,String,==)