java求解答!字符串!

A:“beijing”==“beijing”;B:“beijing”.equalsIgnoreCase(newString(“beijing”));两者都是true吗?要... A:“beijing”==“beijing”;
B:“beijing”.equalsIgnoreCase(new String(“beijing”));
两者都是true吗?要详细过程
展开
 我来答
树礼梨m
2012-11-06 · TA获得超过417个赞
知道小有建树答主
回答量:926
采纳率:75%
帮助的人:135万
展开全部
都是true
A:两个一模一样的字符串,必定相等
B:两个内容相同的字符串,但是他们所在的空间地址不同,equalsIgnoreCase()方法比较的是内容,这两个都是"beijing",所以也相等
回家先睡觉
2012-11-07 · TA获得超过796个赞
知道小有建树答主
回答量:475
采纳率:0%
帮助的人:640万
展开全部
两者确实都是true

A java里string常量会自动缓存起来。比如"beijing"实际上是"beijing".intern()
如果你写"beijing" == new String("beijing")这个就是false
但是如果调用缓存内的:"beijing" == new String("beijing").intern()这个就又是true了

也就是说,“beijing"=="beijing"会是true,是因为JVM内部一个优化步骤的副产品,写程序的时候是不应该依赖这个现象的。需要对string内容进行比较时应该使用String.equals(String)。

B equalsIgnoreCase是对内容不区分大小写进行比较。在这个方法里,A和a是一样的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
光棍女郎媛
2012-11-15 · 超过10用户采纳过TA的回答
知道答主
回答量:70
采纳率:0%
帮助的人:20.3万
展开全部
A:
不能算错误,但一般不这么写,用equals比较有意义,例如equals是判断的两个字符串是否相 等,而"=="是比较他们的首地址(就是判断是否是同一个字符串)
B:
"beijing".equalsIgnoreCase(new String ("beijing")),后面的括号可以加数据类型? 语法是:
字符串1.equalsIgnoreCase(字符串2);而且equalsIgnoreCase是表示不区分大小的意思,也就是说"beijing"与"BEIJING"比较的结果也会是true的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我是十个吉尹乐
2012-11-08 · TA获得超过110个赞
知道答主
回答量:28
采纳率:100%
帮助的人:19.1万
展开全部
都是true
对于A没有定义变量 “beijing”都是在常量池中 ==是比较地址 故相同
对于B equalsIgnoreCase值比较内容 所以一定正确了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Rainbin_ZR
2012-11-14 · 超过13用户采纳过TA的回答
知道答主
回答量:54
采纳率:0%
帮助的人:37.4万
展开全部
哈哈,这个我之前也是很迷糊的,不过得到高手的指点也算是略懂,在这跟您交流一下,看是否对您也有所帮助
A所表达的意思是直接比较"=="左右两边的字符串的内存指针是否指向同一地址
B是比较的实体内容,作为一个字符串去逐个判断的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式