Java中常用的API
API:應用程式程式設計介面,Java中的API就是將程式碼封裝起來的類。
Object類:所有類都繼承了此類,所有類的根類。
構造方法: public Object()。所有類的構造方法都會訪問此類的無參構造。
Object--------hashCode()方法。
功能:返回該物件的雜湊碼值,預設情況下,該方法根據物件的地址值來計算。
特點:不同物件的hash值是不同的,同一個物件的hash值一定相同。
不是物件的實際地址值,可以理解為邏輯地址值。
Object a = new Object(); System.out.println(a.hashCode()); //結果:356573597
Object--------getClass()方法。
功能:返回此 Object 的執行時類。
特點: 可以通過Class類的一個方法,獲取物件的真實類的全名稱
Object obj = new Object(); Class aClass = obj.getClass();// Object.class----->位元組碼檔案物件獲取出來 Object obj2 = new Object(); Class bClass1 = obj2.getClass(); System.out.println(obj == obj2); System.out.println(aClass == bClass1);//true
Object--------toString()方法。
功能:返回該物件的字串表示。
特點:其值是 getClass().getName() + ‘@’ + Integer.toHexString(hashCode())
由於這些資料對我們沒有意義,因此重寫此方法。
Object obj = new Object(); System.out.println(obj); System.out.println(obj.toString()); String a =obj.toString(); System.out.println(a);
Object-----equals()方法。
功能: 檢測兩個物件是否相等。
特點:預設情況比較的是物件的引用是否相同。比較引用是否相同沒有意義,因此重寫此方法比較成員變數的值是否相等。
優點:提高效率和健壯性。
提問:==和equals的區別。
參考部落格
簡而言之就是資料儲存區域不同,==判斷的是是基本資料型別的值,equals處理引用型別變數。
Object-----clone()方法。
clone()的許可權修飾符是受保護的,在用的時候,讓該類重寫該方法,並把該方法的許可權修飾符改為public
克隆分為淺克隆和深克隆
使用clone()方法採用的是淺克隆的方式 。
淺克隆的使用:
*如果物件呼叫clone方法,該物件所屬的類必須實現Cloneable介面。
*Cloneable介面只是一個標識介面,沒有任何方法。
*淺克隆是一個物件的時候,如果被克隆的物件中存在另一個類的物件,則克隆另一個物件的地址不克隆另一個物件。
*物件的淺克隆不會呼叫到構造方法。
public class Text {
public static void main(String[] args) throws CloneNotSupportedException{
Person s1 = new Person("張惠妹", 40);
Person s2 = (Person)s1.clone();
s2.name="張三";
s2.age=50;
System.out.println(s1+""+s2);
}
}public class Person implements Cloneable{
public String name;
public int age;
@Override
protected Object clone() throws CloneNotSupportedException {
return super.clone();
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}