== 和.equals()的区别

==是判断是否是同一个对象,而equals是判断值是否相等


比较字符串是否相等用equals方法, 如str2.equals(str2) ,这是比较字符串str1与str2是否相等 
比较数值是否相等用"=="


“==”与equals()的区别;“==”比较的是对象的引用;equals()比较的是对象的内容


例:

  public  static  void  main(String args[]){
         String a= "1234" ;
         String b= "1234" ;
         String c =  new  String( "1234" );
         System.out.println(a==b);
         System.out.println(a==c);
         System.out.println(a.equals(c));
}

来源:http://zhidao.baidu.com/question/74187050.html


所以可以看出a和c并不是同一个变量,只是值相等


==操作符专门用来比较变量的值是否相等。比较好理解的一点是: 
int a=10; 
int b=10; 
则a==b将是true。 
但不好理解的地方是: 
String a=new String("foo"); 
String b=new String("foo"); 
则a==b将返回false。 

根据前一帖说过,对象变量其实是一个引用,它们的值是指向对象所在的内存地址,而不是对象本身。a和b都使用了new操作符,意味着将在内存中产生两个内容为"foo"的字符串,既然是“两个”,它们自然位于不同的内存地址。a和b的值其实是两个不同的内存地址的值,所以使用"=="操作符,结果会是false。诚然,a和b所指的对象,它们的内容都是"foo",应该是“相等”,但是==操作符并不涉及到对象内容的比较。 
对象内容的比较,正是equals方法做的事。 

来源:http://group.gimoo.net/review/129720

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值