java中可以用==来比较两个字符串是否相等吗

java中可以用“==”来比较两个字符串是否相等吗?还是说只能用“equals”来比较另外要比较两个char型的字符是否相等,是用“==”还是“equals”,还是两种方... java中可以用“==”来比较两个字符串是否相等吗?还是说只能用“equals”来比较

另外要比较两个char型的字符是否相等,是用“==”还是“equals”,还是两种方法都可以用
展开
 我来答
woshidaniel
推荐于2017-09-06 · TA获得超过9240个赞
知道小有建树答主
回答量:1760
采纳率:96%
帮助的人:947万
展开全部

不可以。

==比较字符串是否引用同一地址,如果2个字符串是同一个对象,那可以用==,如果不是同一个对象,只是比较内容是否一致,则不可以用==。

比如:

String s1 = "abc";
String s2 = "abc";
System.out.println(s1 == s2); // true,因为s1和s2是同一个字符串常量abc的引用,是同一个对象地址,所以相同

String s1 = new String("abc");
String s2 = new String("abc");
System.out.println(s1 == s2);  // false,因为s1和s2是两个不同的对象,虽然字符串值都是abc,但是用==比较不相同。
百度网友ab0a80e
2015-10-20
知道答主
回答量:7
采纳率:0%
帮助的人:7.1万
展开全部

先说结论,不能。


两个对象进行比较,如果使用==符号,那么比较的是这两个对象的“引用”(类似C语言中指针的概念)。字符串比较,通常情况下比较的是字符串的值而非引用,不同的“引用”是可以对应相同值的,如果这时候用==比较,得出的结论是不相等,但是实际上它们的值是相等的。举例说明:

String a = new String("abc");
String b = new String("abc");
a == b; //false
a.equals(b) // true

通过上面的例子可以看到,虽然两个字符串的值都是"abc",但是用==比较时,它们是不相等的,如果需要比较它们的值,应该使用equals()方法。


如果事情只是像这样的话,那么就简单了……可是还有个东西叫做“字符串常量池”,常量池的机制,会使得在某些情况下,==也能得出正确的结论,就不展开讲了,你只需要记得一点:对象比较的时候,==比较的是引用(指针),要比较对象的值,应当使用equals()方法。


参考:

《Java编程思想 第4版》机械工业出版社 P44-45

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hgd0324
2009-06-12 · TA获得超过1138个赞
知道小有建树答主
回答量:551
采纳率:0%
帮助的人:396万
展开全部
char 是可以用"=="的,这个实验,你可以自己用System.out.print()方法打印一下看看char 对应的数值;

但是字符串的话,在Java 当中,只能用equals()方法进行比较,java不是C#

路过~希望可以帮助你~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e6d61c910
推荐于2017-10-13 · 超过17用户采纳过TA的回答
知道答主
回答量:29
采纳率:88%
帮助的人:22.9万
展开全部
char只能用==
equals是Object的方法
字符串比较相等一般用equals,不要用==。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
墨秋梵平R8
2009-06-12
知道答主
回答量:86
采纳率:0%
帮助的人:44.7万
展开全部
字符串1.equals(字符串2)
我一般不用==
equals前面放变量 后面放常量
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式