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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 玉遥 中级黑马   /  2014-7-6 23:28  /  2077 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.       下面程序的运行结果是(     )
   String s1 = “abc”;
   String s2 = new String(“abc”);
   System.out.println(s1==s2);
   String s3 = “你好吗”;
   String s4 =””;
   String s5 =”好吗”;
   System.out.println(s3==(s4+s5))
a)         true true
b)         false true
c)         true flase
d)         false false
//两个变量相加,产生一个新的对象也就产生一个新的地址值,若题为s3=="你"+"好吗";结果则为true
2.       下面程序运行的结果是(     )
  String str1= “1”, str2=”2”;
  if(str1==str2)
   System.out.println(“ABC”);
  else if(str1<str2)
   System.out.println(“DEF”);
  else
   System.out.println(“GHJ”);
a)         ABC
b)         DEF
c)         GHJ
d)         编译失败
//两个引用类型的对象,比较地址值不能用<,>号

12 个回复

倒序浏览
d  d 这样的吧
回复 使用道具 举报
第一道题:
      是检验对“==”和String对象的理解:
           s1和s2虽然指向相同的“abc”,但是却是两个不同的引用对象;所以为false;
           s3和s4+s5同上;
第二道题:
       是检验对进本类型之间的联系和不同进行检验;
            else if(str1<str2);这句话,其实编译不过去;
          因为,上面定义的“1”、“2”都是字符串对象,并不是int类型;他们不具备通过“<”比较的方法;所以编译失败;
回复 使用道具 举报
学习了
回复 使用道具 举报
居然做错了啊
回复 使用道具 举报
答案是D,D
回复 使用道具 举报
dddddddddddddddddd!
回复 使用道具 举报
答案都是D
回复 使用道具 举报
第一题如果将==换成equals,答案就是true
回复 使用道具 举报
blue_sky 发表于 2014-7-7 11:28
第一道题:
      是检验对“==”和String对象的理解:
           s1和s2虽然指向相同的“abc”,但是却是 ...

嗯,豁然开朗
回复 使用道具 举报
有学习了一点,感谢你的分享
回复 使用道具 举报
本帖最后由 韩天雷 于 2014-7-8 00:57 编辑
  1.                    String s1 = "abc";
  2.                    String s2 = new String("abc");
  3.                    System.out.println(s1==s2);
  4.                    String s3 = "你好吗";
  5.                    String s4 ="你";
  6.                    String s5 ="好吗";
  7.                    System.out.println(s3==(s4+s5));
复制代码

1.png (15.83 KB, 下载次数: 117)

1.png

2.png (112.42 KB, 下载次数: 177)

2.png
回复 使用道具 举报
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马