直接放测试代码:
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出来的新对象都不会相等