A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李伟松 中级黑马   /  2015-3-26 20:49  /  864 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. public static void main(String[] args){
  2.                 String s1 = “abc”;
  3.                 String s2 = “xyz”;
  4. show(s1,s2);
  5. System.out.println(s1+”-----”+s2);
  6. }
  7. static void show(String s1,String s2){
  8.          s1 = s2+s1+”Q”;  
  9.     s2 = “W”+s1;   
  10. }
  11. 为什么会输出abc------xyz
复制代码

3 个回复

倒序浏览
本帖最后由 houtrry 于 2015-3-26 20:58 编辑

论String的特殊性?
回复 使用道具 举报
show方法没有返回值,就是字符串做了连接之后就没了,没有新连接的字符串“WabcxyzQ”,
  1. class  stringdemo_0326
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.         String s1 = "abc";
  6.         String s2 = "xyz";
  7.                 String s3 = show(s1,s2);
  8.                 System.out.println(s1+"------"+s2+"-------"+s3);
  9.         }
  10.        
  11.    public static String show(String s1,String s2)
  12.         {
  13.          s1 = s2+s1+"Q";  
  14.          s2 = "W"+s1;  
  15.                  return s2;
  16.         }
  17.        
  18. //为什么会输出abc------xyz
  19. }
复制代码

这样输出的是你希望的结果么?
回复 使用道具 举报
由于字符串的不可变性,当把s1,s2传递给show方法的两个参数后,s1,s2指向了新的字符串对象,这里改变的是形参的值,而对实际的s1,s2没有影响,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马