oopscooper:代码不会骗人,这是我写的测试程序,答案不是你说的。
public class TestJava {
static String s1="hello";
String s2=new String("hello");
String s3=new String("hello");
public static void main(String[] args) {
TestJava aa=new TestJava();
aa.match();
}
public void match(){
System.out.println(s1==s2);
System.out.println(s2==s3);
}
}
结果是:false,false。
说明:不管常量池中是否有“hello”这个字符串,每次new
String()这种方式创建String类型变量时,都会在堆中创建一个String类型的“hello”,所以s1和s2,s3的值都是不同的,并且s2和s3也是不同的。
0 点赞 评论 收藏
分享
关注他的用户也关注了: