伊川县住房和城乡建设厅网站,广告学是热门还是冷门,电商网站推广怎么做,购房网站系统建设方案目录 运算符用途#xff1a;用于比较两个引用是否指向同一个对象。比较内容#xff1a;比较的是内存地址#xff08;引用#xff09;。适用范围#xff1a;适用于基本数据类型和对象引用 equals() 方法用途#xff1a;用于比较两个对象的内容是否相同。比较内容#xf… 目录 运算符用途用于比较两个引用是否指向同一个对象。比较内容比较的是内存地址引用。适用范围适用于基本数据类型和对象引用 equals() 方法用途用于比较两个对象的内容是否相同。比较内容比较的是对象的内容值。适用范围适用于所有对象但需要根据具体类的实现来判断。 总结 在Java中equals()方法和运算符用于比较对象但它们的用途和行为有所不同。 运算符
用途用于比较两个引用是否指向同一个对象。
比较内容比较的是内存地址引用。
适用范围适用于基本数据类型和对象引用
示例
public class EqualsAndEquals {public static void main(String[] args) {// 基本数据类型int a 5;int b 5;// 输出 true因为它们的值相等System.out.println(a b); // 对象引用String str1 new String(hello);String str2 new String(hello);// 输出 false因为它们是不同的对象System.out.println(str1 str2);String str3 hello;String str4 hello;// 输出 true因为它们指向相同的字符串常量池中的对象System.out.println(str3 str4);}
}equals() 方法
用途用于比较两个对象的内容是否相同。
比较内容比较的是对象的内容值。
适用范围适用于所有对象但需要根据具体类的实现来判断。
示例
public class EqualsClass {public static void main(String[] args) {// 对象引用String str1 new String(hello);String str2 new String(hello);// 输出 true因为它们的内容相同System.out.println(str1.equals(str2)); // 自定义对象Person person1 new Person(Alice, 25);Person person2 new Person(Alice, 25);// 取决于 Person 类的 equals 方法实现System.out.println(person1.equals(person2)); }
}class Person {private String name;private int age;public Person(String name, int age) {this.name name;this.age age;}Overridepublic boolean equals(Object obj) {if (this obj) {return true;}if (obj null || getClass() ! obj.getClass()) {return false;}Person person (Person) obj;return age person.age name.equals(person.name);}Overridepublic int hashCode() {return Objects.hash(name, age);}
}总结 运算符比较两个引用是否指向同一个对象内存地址。equals() 方法比较两个对象的内容是否相同。
在实际开发中如果需要比较两个对象的内容是否相同应该使用equals()方法而不是运算符。对于基本数据类型的比较运算符是适用的。对于字符串比较尤其是涉及到字符串常量池的情况运算符可能会产生误导因此推荐使用equals()方法来比较字符串内容。