在show方法中的s1,s2变量是局部变量,调用方法时存在于栈内存中,当方法执行结束后,这里的s1,s2变会出栈,所以你后面的打印语句,打印的是主函数中定义的s1,s2。也就是“abc”"xyz"。主要问题是出在这里。
我把代码改成这样,结果就会是你想要的哦。注释部分是我在验证另外一个问题,不用管。
- class TestS
- {
- public static void main(String[] args)
- {
- String s1 = "abc";
- String s2 = "xyz";
- // String s3=s2+s1+'q';
- //System.out.println(s3);
- show(s1,s2);
- //System.out.println(s1+"-----"+s2);
- }
- static void show(String s1,String s2)
- { s1 = s2+s1+"Q";
- s2 = "W"+s1;
- System.out.println(s1+"-----"+s2);
- }
- }
复制代码
|