代码不会骗人,这是我写的测试程序,答案不是你说的。 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也是不同的。
点赞 评论
牛客网
牛客企业服务