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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© tanshion 中级黑马   /  2014-6-11 11:41  /  1174 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 tanshion 于 2014-6-12 00:01 编辑

  String s1 = "x"; String s2 = s1 + "y" ;还有String s3 = new String("z");生成几个对象

点评

认真看视频吧。里面讲得太详细了。  发表于 2014-6-11 21:54

4 个回复

倒序浏览
2个对象,只要用""号标记后就形成了一个对象,所以
“x”是一个对象
“y”是一个对象
   s1、s2 都是引用型变量而不是对象。
记住字符串对象一旦初始化就不会改变了。
回复 使用道具 举报
我多加了一个S3,首先s1s2s3都建了一个对象,
首先s2和s3值是一样的,但是地址不一样,
所以s2和s3是两个,s1也是一个,,,
同理你的问题也是这样的,,,{:3_57:}

  1. String s1="x",String s2 =s1+"y"
  2. String s1 = "x";
  3. String s2 = s1 + "y";
  4. String s3 = "x" + "y";
  5. System.out.println(s2);
  6. System.out.println(s3);
  7. System.out.println(s2 == "xy");
  8. System.out.println(s2.equals( "xy"));
  9. System.out.println(s3 == "xy");
  10. System.out.println(s3.equals("xy"));
  11. s1,s2,s3各自有一个对象所以是三个对象,但是s2在数值上等于s3,s2==s3为假而 s2.equals( s3)为真。
  12. String s1,String s2又是一个对象,但是String类中有equals方法,equal比较的是两个对象中的值而不是对象和值,==比较的是对象和值。看似s3=s2但是s3和s2是两个不同的对象。
复制代码

嘻嘻嘻    。。。。。。共同进步{:3_51:}

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报
学习了啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马