Java基础:(五)Object通用方法
生活随笔
收集整理的這篇文章主要介紹了
Java基础:(五)Object通用方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、Object對象的九個方法
getClass();hashCode();equals();clone();toString();notify();notifyAll();wait();finalize。
二、equals()
equals()與==的區別:
- 對于基本類型,==判斷兩個值是否相等,基本類型沒有equals()方法(八個基本類型);
- 對于引用類型,==判斷兩個實例是否引用同一個對象(地址是否相同),而equals()判斷引用的對象是否等價(值是否相等)。
對任何不是null的對象x調用x.equals(null)結果都為false;但是x如果為null,x.equals(null)在編譯時沒有錯誤,運行時報錯。
Integer x = 1; x.equals(null); //結果為false Integer x = null; x.equals(null); //運行報錯三、hashCode()
hashCode()返回散列值,而equals()是用來判斷兩個實例是否等價。等價的兩個實例散列值一定要相同,但是散列值相同的兩個實例不一定等價;
在覆蓋equals()方法時應當總是覆蓋hashCode()方法,保證等價的兩個實例散列值也相等。
四、toString()
默認返回 ToStringExample@xxxxxx 這種形式,其中@后面的數值為散列碼的無符號十六進制表示。
五、clone()
淺拷貝:拷貝實例和原始實例的引用類型指向同一個對象(相當于同一個對象);
深拷貝:拷貝實例和原始實例的引用類型指向不同的對象(相當于復制了一個新對象)。
使用clone()方法來拷貝一個對象既復雜又有風險,它會拋出異常,并且還需要類型轉換;最好不要使用clone(),可以使用拷貝構造函數或者拷貝工廠來拷貝一個對象(相當于復制了一個新對象)。
public class CloneConstructorExample {private int[] arr;public CloneConstructorExample(){arr = new int[10];for(int i=0;i<arr.length;i++){arr[i] = i;}}//拷貝構造函數public CloneConstructorExample(CloneConstructorExample original){arr = new int[original.arr.length];for(int i=0;i<original.arr.length;i++){arr[i] = original.arr[i];}} }?
轉載于:https://www.cnblogs.com/liumilk/p/10524185.html
總結
以上是生活随笔為你收集整理的Java基础:(五)Object通用方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 抽象类和接口的比较
- 下一篇: java美元兑换,(Java实现) 美元