在java中== 和 equals的区别27
发布网友
发布时间:2023-10-17 20:31
我来回答
共6个回答
热心网友
时间:2023-11-19 00:14
解释一下==号,他比较的是一个对象在内存中的地址值,
比如2个字符串对象
String s1 = new String("str");
String s2 = new String("str");
如果用==号比较,会返回false,因为创建了两个对象,他们在内存中地址的位置是不一样的。
equals的情况比较复杂,它是java.lang.Object类中的一个方法。因为java中所有的类都默认继承于Object,所以所有的类都有这个方法。
在Object类源码中是这样写的。
public boolean equals(Object obj) {
return (this == obj);
}
他同样使用==号进行内存地址的比较。但是许多java类中都重写了这个方法,比如String。
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = count;
if (n == anotherString.count) {
char v1[] = value;
char v2[] = anotherString.value;
int i = offset;
int j = anotherString.offset;
while (n-- != 0) {
if (v1[i++] != v2[j++])
return false;
}
return true;
}
}
return false;
}
String里的方法,如果==号比较不相等,还会进行一下值的比较。
所以equals方法具体的作用要看当前的那个类是如何实现重写父类中该方法的。如果没有重写该方法,那么他和==号等价。
热心网友
时间:2023-11-19 00:14
数据类型分简单(基本)数据类型和复合数据类型两种,基本数据类型就用==,其他的用equals,这个equals现在你一般还不会用,不要被迷惑了
热心网友
时间:2023-11-19 00:15
别听他们的!
没区别!
==是判断内存地址的,equals要看具体情况
java中Object类是所有类的父类!object有方法equals!
如果你配置了javadoc,你可以查看Object的源码,equals方法就是判断的==
所以说没区别。而有的类重写了eqials方法。如string,list等等。你也可以查看源码,他们是比较内容的。
对于任意一个类,如果没有重写equals方法,那么equals和==没区别!!
热心网友
时间:2023-11-19 00:16
== 比较的是内存地址
equals 比较的是值 这么想是最简单的了
例如 String a = "kbs";
String b = "kbs";
这时a.equals(b) 应该是true的
因为他们的值 都是kbs
== 就是说 生成对象的时候 会在内存里分配一小部分空间
这部分空间是有一个标识的 == 比较的就是这个标识。
热心网友
时间:2023-11-19 00:16
==比较数值;equal是用于字符串的比较。
热心网友
时间:2023-11-19 00:17
==用来比较基本数据类型的时候比的是值是否相等
==用来比较对象的时候比的是对象的地址是否相同
equals比较对象的内容是否相等
请问java中 ==和equals 的区别 ?
1、功能不同 "=="是判断两个变量或实例是不是指向同一个内存空间。"equals"是判断两个变量或实例所指向的内存空间的值是不是相同。2、定义不同 "equals"在JAVA中是一个方法。"=="在JAVA中只是一个运算符合。例子:Student student1 = new Student();Student student2 = new Student();System.o...
Java中==和equal有什么区别
Java中==和equal的区别为:1、== 表示 判断2个变量或对象实例是否指向同一个内存空间,equals()表示 判断2个变量或对象实例所指向的内存空间的值是否相同。2、== 表示 对内存地址进行比较,equals()表示 对字符串的内容进行比较。3、== 表示引用是否相同,equals() 表示值是否相同。
Java中关于==和equal的区别 以及equals方法重写
== 和 Equals 的区别 1. == 是一个运算符。2.Equals则是string对象的方法,可以.(点)出来。我们比较无非就是这两种 1、基本数据类型比较 2、引用对象比较 1、基本数据类型比较 ==和Equals都比较两个值是否相等。相等为true 否则为false;2、引用对象比较 ==和Equals都是比较栈内存中的地址...
简述“==”和“equals”的区别
1、java中equals和==的区别 值类型是存储在内存中的堆栈(简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中。2、==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。3、equals操作表示的两个...
java中equals和==的区别
总结起来,equals()和==在Java中的区别主要在于:equals()比较的是对象的内容(状态或属性),而==比较的是对象的引用(内存地址)。这也是为什么在重写equals()方法时,通常也需要重写hashCode()方法,以维护其一致性。因为在很多Java类库中,如HashMap、HashSet等,都是通过hashCode()和equals()方法来...
Java中==和equal有什么区别
在Java中,理解"=="和"equals()"的关键在于它们在比较上的差异。首先,"=="用于检查两个变量或对象实例是否指向相同的内存空间,这涉及到的是对象的引用。例如,如果str1和str2是两个字符串对象,str1=="str2"将判断它们是否是同一个对象实例,而不是内容是否相同。另一方面,"equals()"方法则...
equals和==的区别是什么?
equals和==的区别是功能不同,定义不同,运行速度不同。1、功能不同 "=="是判断两个变量或实例是不是指向同一个内存空间。"equals"是判断两个变量或实例所指向的内存空间的值是不是相同。2、定义不同 "equals"在JAVA中是一个方法。"=="在JAVA中只是一个运算符合。3、运行速度不同 "=="比"...
Java中关于==和equal的区别 以及equals方法重写
equals是判断两个变量或实例所指向的内存空间的值是不是相同 2.==是指对内存地址进行比较 equals()是对字符串的内容进行比较 3.==指引用是否相同 equals()指的是值是否相同 重写equals:public boolean equals(Object anObject) { if (this == anObject) { return true;} if (anObject instance...
java ==和equals的区别
属性不同:==是运算符号,而equals则属于方法。当==两边的对象属于基本类型时,==的作用仅是比较对象的值是否相等,如果相等返回true,否则返回false;当两边的对象属于引用数据类型时,==的作用是判断对象的内存地址是否一致,如果同时指向同一地址,则返回true,否则返回false.equals两边对象只能属于引用数据...
java里 equals和== 区别
==是一个比较运算符,基本数据类型比较的是值,引用数据类型比较的是地址值。(比较地址值即是指是否为同一个对象的引用)equals()是一个方法,只能比较引用数据类型。重写前比较的是地址值,重写后比一般是比较对象的属性。