== 和 equals() 区别
生活随笔
收集整理的這篇文章主要介紹了
== 和 equals() 区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、回顧 == 的使用:
== :運算符
1. 可以使用在基本數據類型變量和引用數據類型變量中
2. 如果比較的是基本數據類型變量:比較兩個變量保存的數據是否相等。(不一定類型要相同)如果比較的是引用數據類型變量:比較兩個對象的地址值是否相同.即兩個引用是否指向同一個對象實體
補充: **== 符號使用時,必須保證符號左右兩邊的變量類型一致。**
二、equals()方法的使用:
1. 是一個方法,而非運算符
2. 只能適用于引用數據類型
3. Object類中equals()的定義:public boolean equals(Object obj) {return (this == obj);}說明:Object類中定義的equals()和==的作用是相同的:比較兩個對象的地址值是否相同.即兩個引用是否指向同一個對象實體
4. 像String、Date、File、包裝類等都重寫了Object類中的equals()方法。重寫以后,比較的不是兩個引用的地址是否相同,而是比較兩個對象的"實體內容"是否相同。
5. 通常情況下,我們自定義的類如果使用equals()的話,也通常是比較兩個對象的"實體內容"是否相同。那么,我們就需要對Object類中的equals()進行重寫.重寫的原則:比較兩個對象的實體內容是否相同.
package com.wdl.day13;import java.util.Date;
public class EqualsTest {public static void main(String[] args) {//基本數據類型int i = 10;int j = 10;double d = 10.0;System.out.println(i == j);//trueSystem.out.println(i == d);//trueboolean b = true;
// System.out.println(i == b);char c = 10;System.out.println(i == c);//truechar c1 = 'A';char c2 = 65;System.out.println(c1 == c2);//true//引用類型:Customer cust1 = new Customer("Tom",21);Customer cust2 = new Customer("Tom",21);System.out.println(cust1 == cust2);//falseString str1 = new String("atguigu");String str2 = new String("atguigu");System.out.println(str1 == str2);//falseSystem.out.println("****************************");System.out.println(cust1.equals(cust2));//false--->trueSystem.out.println(str1.equals(str2));//trueDate date1 = new Date(32432525324L);Date date2 = new Date(32432525324L);System.out.println(date1.equals(date2));//true}
}
注意事項:
空指針
總結
以上是生活随笔為你收集整理的== 和 equals() 区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 腾龙将推尼康 Z 卡口 150-500m
- 下一篇: toString()