A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 福娃51zx 中级黑马   /  2015-3-24 16:14  /  1653 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 福娃51zx 于 2015-3-25 19:59 编辑

equals和==两者用法有什么区别?

10 个回复

倒序浏览
字符串的比较要用equals,用==比较的不是内容而是地址。
回复 使用道具 举报
==也可以比较对象啊,比较对象时有什么区别么?
回复 使用道具 举报
==比较对象是默认比较对象的地址值,equals是比较的值

最浅显的 String s1 = "a";
String s2 = new String("a");

==是false
equals是true
回复 使用道具 举报
        int a=3;
                int b=3;
                if(a==b){
                   System.out.println("是");
                }else{
                        System.out.println("不是");
                }
可是这里是比较内容的,输出是,不是比较内存地址的
回复 使用道具 举报
==  和 Equals 的区别

  1. == 是一个运算符。

  2.Equals则是string对象的方法,可以.(点)出来。



我们比较无非就是这两种 1、基本数据类型比较  2、引用对象比较

1、基本数据类型比较

  ==和Equals都比较两个值是否相等。相等为true 否则为false;



2、引用对象比较  

  ==和Equals都是比较栈内存中的地址是否相等 。相等为true 否则为false;



需注意几点:

  1、string是一个特殊的引用类型。对于两个字符串的比较,不管是 == 和 Equals 这两者比较的都是字符串是否相同;

  2、当你创建两个string对象时,内存中的地址是不相同的,你可以赋相同的值。

    所以字符串的内容相同。引用地址不一定相同,(相同内容的对象地址不一定相同),但反过来却是肯定的;

  3、基本数据类型比较(string 除外) == 和 Equals 两者都是比较值;


评分

参与人数 1技术分 +1 收起 理由
万合天宜 + 1 很给力!

查看全部评分

回复 使用道具 举报
在比较字符串的时候建议equals,他们区别是在于  equals比较的两边内容是否相等,用==比较的是它们是否指向同一块内存,也即是同一个对象引用
回复 使用道具 举报
个人理解哈!1.5以后的版本和以前的就有很大的区别,==不能用于字符串之间的比较,1.5以后在对象包装类当中超过127的数据用==也是无法比较的吧!说的不对的还望见谅
回复 使用道具 举报
奋斗的黑马 发表于 2015-3-24 17:18
==  和 Equals 的区别

  1. == 是一个运算符。

谢谢了!!!请问您现在是黑马的学员吗??
回复 使用道具 举报
equals比较的是值   ==比较的是内存地址
回复 使用道具 举报
不能直接笼统的就来句equals()比较的是值的吧……equals()方法要看你怎么重写object类的方法么,不过一般都是重写的比较值的……
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马