java中的字符串比较

在比较java中的两个String类型的对象时:

1.

1 String s1=new String("123");
2 String s2=new String("123");
3 System.out.println(s1==s2);
4 System.out.println(s1.equals(s2));

此时s1,s2分别为String对象的引用,如果直接用==进行比较,由于比较的是对象的引用,而尽管都为String对象,但S1,S2表示的是不同的引用,所以结果为false。

但是使用equals()方法,可以直接比较两个对象的实际内容是否相同,所以结果为true;

2.

1 String s3="asd";
2 String s4="asd";
3 System.out.println(s3==s4);

这里定义两个基本类型s1,s2,此时可以直接用==来比较它们的值是否相同(也可用equals(),结果相同),最后结果为true。

3.

 1 public class Candy{
 2     static{
 3         System.out.println("loading Candy");
 4     }
 5         public static void main(String[] args){
 6         Candy c1=new Candy();
 7         Candy c2=new Candy();
 8         System.out.println(c1.equals(c2));
 9         }
10 }
11 
12                

此时是自定义类Candy的对象的两个不同引用c1,c2,但由于equals()默认比较引用,所以结果仍为false。因此若想比较两个引用(自己定义的类)所指对象的内容是否相同,需要在自己的类中重写equals()函数产生我们自己期望的结果。

转载于:https://www.cnblogs.com/grj0011/p/4898916.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值