每日三道面試題——Day 7(JAVA)

這是一個程序員的自我修養,一個學術者的自我探索,一個大神的養成之道。

1

抽象類和接口的區別

答:
抽象類:
1)抽象方法,只有概念沒有具體的行為,用abstract關鍵字裝飾,沒有方法體,子類必須重寫這些方法。
2)包含抽象方法的類一定是抽象類
3)抽象類只能被繼承,一個類只能繼承一個抽象類

接口:
1)方法都是抽象方法,屬性都是常量
2)不能實例化,可以定義常量
3)接口變量可以引用具體實現類的實例
4)接口只能被實現,一個具體類實現接口,要實現其全部抽象方法
5)接口之間可以多實現
6)一個具體類可以實現多個接口,從而實現多繼承

2

列舉線程同步的方法:

答:
1)wait()方法:讓線程等待,將線程裝到線程池中
2)notify()方法:喚醒等待的線程,喚醒線程池中的第一個,讓被喚醒的線程處于臨時阻塞狀態
3)notifyAll()方法:喚醒全部等待線程,線程池中所有線程都被喚醒

3

equals()和==的區別,重寫equals()方法是還要重寫哪些方法,為什么?

答:
==比較的是地址和棧中的內容;
eqauls()比較的是值,堆中的值是否一樣。
要重寫hashcode()方法,因為比較的時候是比較的哈希值。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容