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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© kemllor 中级黑马   /  2015-8-30 12:42  /  554 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. class  Test{
  2.         public static void main(String[] args) {
  3.                 String s1 = "java";
  4.                 String s2 = "hello";
  5.                 method_1(s1,s2);
  6.                 System.out.println(s1+"...."+s2);
  7.                 //java....hello
  8.                
  9.                 StringBuilder s11 = new StringBuilder("java");
  10.                 StringBuilder s22 = new StringBuilder("hello");
  11.                 method_2(s11,s22);
  12.                 System.out.println(s11+"-----"+s22); //javahello-----hello
  13.         }
  14.         public static void method_1(String s1,String s2){
  15.                 s1.replace('a','k');
  16.                 s1 = s2;
  17.         }
  18.         public static void method_2(StringBuilder s1,StringBuilder s2){
  19.                 s1.append(s2);
  20.                 s1 = s2;
  21.         }
复制代码


在方法1和2中 都有s1=s2; 为什么输出结果没变。
我把方法1中的s1=s2;直接写到主函数中,结果发生变化。 有点蒙,求解
  1. public static void main(String[] args) {
  2.                 String s1 = "java";
  3.                 String s2 = "hello";
  4.                 s1.replace('a','k');
  5.                 s1 = s2;
  6. //                method_1(s1,s2);
  7.                 System.out.println(s1+"...."+s2);
  8.                 //hello....hello
复制代码

1 个回复

倒序浏览
我来了 来自手机 中级黑马 2015-8-30 12:46:01
沙发
还没学到,不过快了,等学到了再回复
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马