1.== 为运算符,equal 为String数据类型的比较方法
相同内容的对象地址不一定相同,但相相同地址的对象内容一定相同;== 比较的是值是否相等,equal比较的是是否是同一个对象
2.把对象想象成一个房子,而引用则是门牌号。如果两个引用指向同一个房子,那么它们就是相等的;否则它们就不相等。
使用操作符比较的就是两个门牌号是否相等,即它们是否指向同一个房子。如果两个门牌号相等,则返回true;否则返回false。
而使用equals()方法比较的则是两个房子内部的装修是否一样,即它们在逻辑上是否表示同一件事情。如果两个房子内部装修一样,则equals()返回true;否则返回false。
==操作符比较的是两个对象的引用是否相等,即它们是否指向同一个内存地址;而equals()方法比较的是两个对象内容是否相等,即它们在逻辑上是否表示同一件事情。
==操作符通常用于比较基本类型数据(如int、double、boolean等)或判断两个对象是否为同一个实例;而equals()方法通常用于比较复杂类型数据(如String、Object等)或判断两个对象内容是否相等。
举个例子,假设我们有以下代码:
String str1 = "hello";
String str2 = "hello";
String str3 = new String("hello");
System.out.println(str1 == str2); // true
System.out.println(str1 == str3); // false
System.out.println(str1.equals(str3)); // true
在这段代码中,我们创建了三个字符串对象:str1和str2使用了字面量方式创建,而str3使用了new关键字显式创建。然后我们分别使用==和equals()来比较这三个字符串对象。
第一行输出true,因为str1和str2指向同一个内存地址(常量池中),所以它们的引用相等(即门牌号相同)。
第二行输出false,因为str1和str3指向不同的内存地址(堆内存中),所以它们的引用不相等(即门牌号不同)。
第三行输出true,因为虽然str1和str3引用不同的内存地址(即门牌号不同),但它们表示同一个字符串(内容相等)。
总之,在Java中要正确地比较两个对象是否相等,需要根据具体情况选择合适的方式。对于基本类型数据或判断两个对象是否为同一个实例时可以使用==进行比较;对于复杂类型数据或判断两个对象内容是否相等时应该使用equals()方法来进行比较。
3.操作符比较的是两个对象的引用是否相等,即它们是否指向同一个内存地址。如果两个对象的引用相等,则返回true;否则返回false
String str1 = "hello";
String str2 = "hello";
String str3 = new String("hello");
System.out.println(str1 == str2); // true
System.out.println(str1 == str3); // false
在这段代码中,我们创建了三个字符串对象:str1和str2使用了字面量方式创建,而str3使用了new关键字显式创建。然后我们分别使用==来比较这三个字符串对象。
第一行输出true,因为str1和str2指向同一个内存地址(常量池中),所以它们的引用相等。
第二行输出false,因为str1和str3指向不同的内存地址(堆内存中),所以它们的引用不相等。
equals()方法比较的是两个对象的内容是否相等,即它们在逻辑上是否表示同一件事情。如果两个对象的内容相等,则equals()返回true;否则返回false。
举个例子,我们可以再看看之前提到过的字符串对象:文章来源:https://www.toymoban.com/news/detail-473695.html
String str1 = "hello";
String str3 = new String("hello");
System.out.println(str1.equals(str3)); // true
在这段代码中,我们分别创建了两个字符串对象:str1和str3。虽然它们引用不同的内存地址(一个在常量池中,一个在堆内存中),但是它们表示同一个字符串(内容相等)。因此,在使用equals()方法进行比较时会返回true。文章来源地址https://www.toymoban.com/news/detail-473695.html
到了这里,关于6.6---每天一点点--- Java基础之==和equals区别并举例说明(总复习+深入版)---详细+举例(小白也能看懂)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!