楼主的s变量的指向的对象是没有改变的,内存地址也是不变,String是引用类型,下面我给你个示例
希望你能看懂
String s="Hello";
String s1="Hello";
System.out.println(s==s1);//true
这样输出是true,也就是说变量s和s1存储的内容也是地址,但却都是方法区常量池中"Hellp"所在的地址
String s2=new String("Hello");
String s3=new String("Hello");
System.out.println(s2==s3);//false
变量s2和s3储存的内容是JVM在堆中开辟的两个String对象,==比较就是两个不同地址 |