| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 518 人关注过本帖
标题:新手发帖,请教大家一个关于String的问题
只看楼主 加入收藏
lanmaoemi
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2004-11-11
收藏
 问题点数:0 回复次数:1 
新手发帖,请教大家一个关于String的问题
Given:
String s= "hello";
String t = "hello";
char c[] = {'h','e','l','l','o'} ;
Which return true?
A. s.equals(t);
B. t.equals;
C. s==t;
D. t.equals(new String("hello"));
E. t==c.
答案:(acd)
-----------------------
答案C不知道为什么是对的,s,t不是两个对象吗?而“= =操作符比较的是操作符两端的操作数是否是同一个对象”,如果说两个对象他们所指的内容是一样的话,那是不是默认地有这么一步操作:s=t ?我觉得只有这样的话s,t才指向同一个对象,不知道是不是这么一回事。
2005-08-24 09:30
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
在这里 s 和 t  确实一个同一个String Object.  因为他们都是那个 String 常量 "hello".
但是如果写成下面的形式:
String s = new String("hello");
String t = new String("hello");
注意了,这里用到了 new 那么 s 和 t 就是两个不同的 Object 了。

还有需要指出的:
equals 比较的是 两个 Object 的内容,只要内容相同就表示两个Object 相同
而 == 比较的是两个Object 自身,即他们的存储地址也必须一样,才认为这两个Object 相同。

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2005-08-24 11:50
快速回复:新手发帖,请教大家一个关于String的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016765 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved