㈠ Java語言中Object類定義了哪11種方法
Java中所有類(包括用戶自己定義的類)都自動繼承Object類,即Object類是所有類的父類。
Object中常用方法:
public boolean equals(Object obj)
比較當前對象與obj是否為同一對象,返回值:ture/false
public String toString()
返回當前對象的字元串表達形式
public native int hashCode();
返回對象的Hash碼。Hash碼是標志對象的唯一值,Hash碼相同的對象是同一對象
protected void finalize()throws Throwable
對象銷毀時被調用
以下三個函數用於控制線程
public final native void notify();public final native void notifyAll();public final native void wait();
native型方法指由C++語言編寫的方法,Java解釋器對其進行轉義後才執行。
「==」與equals()
"==" 一般用於基本數據類型比較。若用作兩個引用對象比較,僅當引用變數引用同一個對象時,才返回true,否則false。
void EqualCompare()
{
String s1 = new String("Hello");
String s2 = new String("Hello");
String s3 = "Hello";
String s4 = "Hello";
//未使用new,s4引用既存的對象(編譯器創建對象之前先進行檢測"Hello"是否已經存在,若存在,則返回原對象的引用)
System.out.println(s1.equals(s2)); //truex1行
System.out.println(s1 ==s2); // false 兩變數引用不同對象
System.out.println(s3.equals(s4)); //true 兩變數引用相同對象
System.out.println(s3 ==s4); // true 兩變數引用相同對象
}
比較對象時,一般用equal()方法。
Object類方法定義:public boolean equals(Object obj){ return (this == obj);}
不同的類可方便的對該對象進行覆蓋。String類就覆蓋了Object類的equals()方法,所以x1行輸出true.
a==b 如果a,b引用同一對象,則返回true;
a.equals(b) 如果a對象內容和b對象內容相同,則返回true
如果未重載equals()方法的類對象使用該方法與另一個對象進行比較,則調用Object的equals()方法,仍然是對象的比較,返回值為false。
㈡ Java object類中有哪些方法歸類總結一下
試問的最多的問題是:「」。一般情況下,3年以上工作經驗的回答少於6個方法的,會導致減分,2年以下工作經驗的知道6個以上會加分。到阿里雲後面試過30+,回答讓我滿意的人很少。 作為一個半路出家當程序員,開始我總是痴迷於應用。a框架的配置,b框架的模板,c框架的控制……其實我對Java底層了解的很少,也沒有想過了解java的底層。觸動我去看Object類的是幾件事。 在上個東家做消息全網傳輸的時候,我用BeanUtil.Properties()拷貝對象的值,覺得很爽,後面某同事review我的代碼提示我可以覆寫對象的clone()方法的,畢竟,反射的效率是比較低的。然後當我去做的時候,發現了更好的選擇。然後在列印日誌的時候,我習慣拼接屬性,於是又被提示覆寫toString()方法是包爽的,就這樣,我認識了Object的2個方法。 看《Effecive Java》這本書,中間提到「為什麼覆寫equals()方法的時候總是要覆寫hashcode()」。開始第一遍沒有看懂,也懶得管了,因為hashcode我用的少,後來去參加一個面試,被人問到的時候,感覺無比的尷尬,我讀過,卻不知道答案!這是個人總結能力的問題,後面又不能不回來仔細看看這2個方法到底是做什麼的。 關於線程的notify() , notifyAll() , wait()『3個』 方法,學習線程的時候看過,不過自從用了JUC的包,我基本沒有在代碼中使用過了。每次用eclipse的「alt + /」 快捷鍵從後翻總能看到,所以無論如何,這幾個方法應該知道。 寫到這里,有7個方法了,這幾個方法很容易想到,在我開發java2年後,能夠回答Object類中的7個方法。其實clone()方法不常用,所以,我 說的數字6是有依據的。這6個方法,作為java程序員,天天不見也會見幾次。如果寫了幾年java代碼不知道基類裡面的方法,就算你Hbase玩的再 熟,我憑什麼相信你能寫優質代碼?如果一個在農村蓋房子3年的砌匠不知道前後梁有多少瓴子(魯班收徒的故事),您會怎麼想?
㈢ Java中基本數據類型和Object之間的關系
基本數據類型的包裝類 例如int 的包裝類Integer的父類則是Object
public class Test {
public static void main(String[] args){
int a = 12;
swap(a);
}
public static void swap(Object obj) {
System.out.println(obj);
}
}
正常輸出值為:12
原因:java在尋找最佳匹配方法時無法找到完全匹配的參數時會進行自動提升轉換或者其它相應轉換。
㈣ Object類型參數能傳基本類型嗎
JDK1.5以後基本數據類型和它們的包裝類可以自動裝箱和自動拆箱,
如你圖二所示Integer i = new Integer(1);已經過時,用橫線來標識了;
你可以試試Integer i = 1;在JDK1.5版本不會報錯,在JDK1.5之後報錯,可以切換版本試試.
㈤ java中Object類是怎麼回事,幹嘛使的舉例說明!
Object類的作用:m a r k - t o- w i
n:在java中,因為所有的類都有共性,所以java的締造者們把java設計成這樣:所有的類都是Object類的直接或間接子類,而且把上述所有類
的共性都放在Object類中。這樣就可以達到代碼重用。All classes in java are subclasses of
Objectclass。
Object類的equals和toString的用法:
下面一組兩個例子,馬克-to-
win:第一個例子是用的父類Object的equals和toString方法,Object的equals是比較對象在內存當中的地址,當然不一樣
了。而Company的equals方法是自己寫的,比較的他們的name屬性,只要name一樣,對象的equals返回的就是真。另外,Object
的toString方法列印出來就是Company@1b67f74,這是Sun公司編的。而後面一個例子的toString方法時咱們自己編的。
例:2.1.1---本章源碼
class CompanyMark_to_win {
private String name;
CompanyMark_to_win(String name) {
this.name = name;
}
/*
public String toString() {
return name;
}
public boolean equals(Object o) {
if (!(o instanceof CompanyMark_to_win))
return false;
CompanyMark_to_win c = (CompanyMark_to_win) o;
return name.equals(c.name);。。。。。。。。。。。。。。。。。。。。。
更多詳情,請網上找「馬克-to-win」,參考他的網站或他的網路空間:java第三章的內容。
給個鏈接:http://tieba..com/p/3139989381
㈥ 簡要說明object類有什麼特點
Object類是所有類的父類,聲明一個Object類的作用就是可以傳遞任何類型的類來使用。
Object是所有類的父類,它有很多類對象會用到的方法,例如比較常用的toString 、equals,當你新建xx類時,你可以重寫Object已經定義的方法,也可以直接調用Object中的方法,如果你寫一個封裝的方法,不確定傳進來的是什麼類型的值,就可以使用Object作為一個籠統類
㈦ Java中Class類與Object類之間有什麼關系
Class 類的實例表示正在運行的 Java 應用程序中的類和介面。枚舉是一種類,注釋是一種介面。每個數組屬於被映射為 Class 對象的一個類,所有具有相同元素類型和維數的數組都共享該 Class 對象。基本的 Java 類型(boolean、byte、char、short、int、long、float 和 double)和關鍵字 void 也表示為 Class 對象。
Class 沒有公共構造方法。Class 對象是在載入類時由 Java 虛擬機以及通過調用類載入器中的 defineClass 方法自動構造的。
以下示例使用 Class 對象來顯示對象的類名:
void printClassName(Object obj) {
System.out.println("The class of " + obj +
" is " + obj.getClass().getName());
}
還可以使用一個類字面值(JLS Section 15.8.2)來獲取指定類型(或 void)的 Class 對象。例如:
System.out.println("The name of class Foo is: "+Foo.class.getName());
類 Object 是類層次結構的根類。每個類都使用 Object 作為超類。所有對象(包括數組)都實現這個類的方法。
Class類和java.lang.reflect包是java反射 API時常用的。可以動態的載入對象。
看看java反射機制嘛。
http://ke..com/view/1865203.htm
㈧ object 是什麼類型
Object類是所有Java類的祖先。每個類都使用 Object 作為超類。所有對象(包括數組)都實現這個類的方法。
在不明確給出超類的情況下,Java會自動把Object作為要定義類的超類,可以使用類型為Object的變數指向任意類型的對象。
Object類有一個默認構造方法pubilc Object(),在構造子類實例時,都會先調用這個默認構造方法。Object類的變數只能用作各種值的通用持有者。要對他們進行任何專門的操作,都需要知道它們的原始類型並進行類型轉換。例如:
Object obj = new MyObject();
MyObject x = (MyObject)obj;
(8)object類常用方法擴展閱讀:
常用各種類型方法擴展:
Object(),默認構造方法。
clone(),創建並返回此對象的一個副本。
equals(Object obj),指示某個其他對象是否與此對象「相等」。
finalize(),當垃圾回收器確定不存在對該對象的更多引用時,由對象的垃圾回收器調用此方法。
getClass(),返回一個對象的運行時類。
hashCode(),返回該對象的哈希碼值。
notify(),喚醒在此對象監視器上等待的單個線程。
notifyAll(),喚醒在此對象監視器上等待的所有線程。
toString(),返回該對象的字元串表示。
wait(),導致當前的線程等待,直到其他線程調用此對象的 notify() 方法或 notifyAll() 方法。
wait(long timeout),當前的線程等待,直到其他線程調用此對象的 notify() 方法或 notifyAll() 方法,或者超過指定的時間量。
wait(long timeout, int nanos),導致當前的線程等待,直到其他線程調用此對象的 notify() 方法或 notifyAll() 方法,或者其他某個線程中斷當前線程,或者已超過某個實際時間量。
㈨ Java中的Object是什麼
Object是所有類的基類,這個你可以查詢jdk文檔了解,所有類都繼承自Object。
1.Object類是所有類的父類,位於java.lang包中。
2.數組也是Object類的子類。
3.Object類的常用方法有:
toString();
equals();
hashCode();
objects這種參數定義是在不確定方法參數的情況下的一種多態表現形式。即這個方法可以傳遞多個參數,這個參數的個數是不確定的。這樣你在方法體中需要相應的做些處理。因為Object是基類,所以使用objects這樣的參數形式,允許一切繼承自Object的對象作為參數。這種方法在實際中應該還是比較少用的。
obj這樣的形式,就是一個Object數組構成的參數形式。說明這個方法的參數是固定的,是一個Object數組,至於這個數組中存儲的元素,可以是繼承自Object的所有類的對象。
這些基礎東西應該多看幾遍"Think in java"。
㈩ JavaScript有六種基本類型,Object是不是所有基本數據類型的基類
JavaScript中 var就是所有類型,類似java中的Object 在javascript中聲明變數都是這樣的:
var a = 10;
var b = true;
var c = "aaa";