日期:2014-05-20  浏览次数:20639 次

引用之间的问题赋值问题
class     Test
{
public   static   void   main(String[]   args)  
{
String   s1= "myone ";
String   s2=s1;
System.out.println( "s1= "+s1);
System.out.println( "s2= "+s2);
System.out.println( "============ ");
s1= "mytwo ";
System.out.println( "s1= "+s1);
System.out.println( "s2= "+s2);
}
}
//s1的改变是否影响s2;有的说影响但测试无关哦.???

------解决方案--------------------
应该没影响吧,第二次又没有把值再付给s2
------解决方案--------------------
看不出s1的改变影响s2的理由,不会影响
------解决方案--------------------
没有影响,JAVA
String s1= "myone ";\\把myone的地址给S1
String s2=s1;\\把S1的地址给S2
System.out.println( "s1= "+s1);
System.out.println( "s2= "+s2);
System.out.println( "============ ");
s1= "mytwo "\\把mytwo的地址给S1 ,S2仍然指向myone
System.out.println( "s1= "+s1);
System.out.println( "s2= "+s2);
------解决方案--------------------
没有影响
s1和s2的引用不一样,对象也不一样!
你可以运行测测!
------解决方案--------------------
这里当然没有影响..你改变了s1的引用..将其引用到内存上的 "mytwo "上...原有的 "myone "没有发生变化...s2的值当然没有变化