equals和==的区别是什么?
一、含义不同:==是一个比较运算符,基本数据类型比较的是值,引用数据类型比较的是地址值。(比较地址值即是指是否为同一个对象的引用)equals()是一个方法,只能比较引用数据类型。重写前比较的是地址值,重写后比一般是比较对象的属性。二、引用不同:值类型(int,char,long,bolean等)都是用=判断相等性。对象引用的话,=判断引用所指的对象是否是同一个。equals是Object的成员函数,有些类会覆盖(overide)这个方法,用于判断对象的等价性。三、方法不同:String里的方法,如果==号比较不相等,还会进行一下值的比较。所以equals方法具体的作用要看当前的那个类是如何实现重写父类中该方法的。如果没有重写该方法,那么他和==号等价。扩展资料:Eg:s1 = new String("sony"); //创建的是字符串对象s1.equals("sony"); //返回trues1 == "sony" //返回false//如果s1 = "sony";s1 == "sony" //返回true//如果s1 = "sony";s2 = "sony";s1.equals(s2); 或者string.equals(s1,s2);//返回true参考资料来源:百度百科-equals
和equals的区别
和equals的区别是功能不同,定义不同,运行速度不同。1、功能不同"=="是判断两个变量或实例是不是指向同一个内存空间。"equals"是判断两个变量或实例所指向的内存空间的值是不是相同。2、定义不同"equals"在JAVA中是一个方法。"=="在JAVA中只是一个运算符合。3、运行速度不同"=="比"equals"运行速度快,因为"=="只是比较引用。"equals"比"=="运行速度要慢。==既可以比较基本类型也可以比较引用类型 ,对于基本类型就是比较值,对于引用类型比较的就是内存地址,equals是属于java.lang.Ojbect类里的方法,如果该方法没有被重写过,默认也是==。我们可以看到string类的equals方法是被重写过的,而且string类在日常开发中用的比较多,久而久之,就形成了equals是比较值得错误观点,具体要看这里有没有重写Ojbect的hashCode方法和equals方法来判断。