(十八)java中equals和==以及toString

简介:   <span style="font-size:18px">   我们通常在控制台输出时使用System.out.print(),print只能直接输出基本类型和字符串,对于其他的类型直接输出将会输出@开头的引用,因此若需要输出对应的内容则需要使用toSring方法。<br>     toString方法属于Object,Object是所有类的顶级父类,都继承了toString方法,在
     我们通常在控制台输出时使用System.out.print(),print只能直接输出基本类型和字符串,对于其他的类型直接输出将会输出@开头的引用,因此若需要输出对应的内容则需要使用toSring方法。
    toString方法属于Object,Object是所有类的顶级父类,都继承了toString方法,在实际使用的时候需要重写toString方法然后实现内容的直接输出。
    ==用来判断两个变量是否相等,如果是基本类型,则只要值相等,判断的结果就是true,例如65和‘A’比较,结果就是true。如果是比较的引用类型,那么只有在两个变量指向的是同一对象时才是true,例如String a="111",String a1=new String("111");他们==比较的结果就是false,因为他们是两个对象。
   如果想要让两个只要内容相同的对象比较结果就是true,那么可以使用equals来比较,但是需要对equals进行重写。
   equals默认情况下内部就是==比较,所以如果不重写的话,比较结果和==比较一样,在String中已经重写了equals方法。
   重写equals方法是自定义相等的规则,所以不仅仅是能实现上述的情况,还可以让不相等的对象相等,是看怎么写了。
   正确重写equals应遵循的条件:
   1.对于任意x,x.equals(x)结果要是true;自反性
   2.对于任意x、y,如果x.equals(y)是true,那么y.equals(x)也应该是true;对称性
   3.对于任意的x、y、z,如果x.equals(y)是true,y.equals(z)是true,那么x.equals(z)也应该是true;传递性
   4.对于任意x、y,若对象中用于等价比较的信息未变,那么无论调用多少次x.equals(y)的结果应该是同样的,要么都是true要么都是false;一致性
   5.对于任何非null的对象,x.equals(null)一定是false;
   重写equals方法的时候,一般要用到instanceof和强制类型转换,然后当类型匹配时再进行比较。
目录
相关文章
|
21天前
|
Java
java equals和==
==是进行对象的地址值比较,如果确实需要字符串的内容比较,可以使用两个方法 public boolean equals(0bjectobj):参数可以是任何对象,只有参数是一个字符串并且内 容相同的才会给true;否则返回false 注意事项: 1.任何对象都能用object进行接收。 2.equals方法具有对称性,也就是a.equals(b)和b.equals(a)效果一样。 3.如果比较双方一个常量一个变量,推荐把常量字符串写在前面。 推荐:"abc".equals(str) 不推荐:str.equals("abc") public boolean egualsIgnoreCas
8 1
|
1月前
|
Java
Java中常见需要重写equals方法的类
Java中常见需要重写equals方法的类
|
3月前
|
Java
Java中 ==与equals的区别
Java中 ==与equals的区别
16 1
|
4月前
|
Java
JAVA中比较对象是否相等的方式是什么?为什么重写equals就一定要重写hashcode?百天百题(3/100)
JAVA中比较对象是否相等的方式是什么?为什么重写equals就一定要重写hashcode?
|
4月前
|
存储 算法 Java
史上最全的Java容器集合之equals 和 hashCode
史上最全的Java容器集合之equals 和 hashCode
35 0
|
5月前
|
Java
在Java语言中,==、equals 和 equalsIgnoreCase 是用于比较对象或值的三个不同的方法。
在Java语言中,==、equals 和 equalsIgnoreCase 是用于比较对象或值的三个不同的方法。
|
6月前
|
Java
【Java用法】Java 语言规范要求 equals 方法具有的特性
【Java用法】Java 语言规范要求 equals 方法具有的特性
36 0
|
7月前
|
存储 算法 Java
Java 中的 == 运算符、equals 方法和 hashCode 方法
HashMap 中键是不可以重复的,因此它的键就必须是不同的对象,那么这个时候就先用计算速度快的 hashCode 进行比较,若哈希值都不相等,那么这两个对象必然不相等,若是相等的,那么这个就有两种可能出现,一种情况是这两个对象是真的相等,另外一种情况就是出现了罕见的“哈希冲突”现象,那么这个时候就轮到 equals 来进行判断了!在 HashMap 中,键是不可以重复的,也就是说,它们的键都是不相同的,因此就要判断不同对象是否为同一对象。因此,哈希值可以用于判断两个对象是否不等。
69 1
|
8月前
|
Java
Java面向对象中 Object类的详解和其中的equals()和toString()方法的详解
Java面向对象中 Object类的详解和其中的equals()和toString()方法的详解
38 0