10.20學習基礎面試題
default(預設,什麼都不寫):在同一個包內可見,不使用任何修飾符。使用物件:類、介面、變數、方法
private:在同一類內可見。使用方法:變數、方法。 不能修飾類(外部類)
public:對所有類可見。使用物件:類、介面、變數、方法
protected:對同一包內的類和所有子類可見。使用物件:變數、方法 不能修飾類(外部類)
final:用於修飾變數、方法和類。
final變數:被修飾的變數不可變
fianl方法:被修飾的方法不允許任何子類重寫,子類可以使用該方法
final類:被修飾的類不能被修飾,所有方法不能被重寫。
static關鍵字:表明一個成員變數或者是成員方法可以在沒有屬性的類的例項變數的情況下訪問。
過載和重寫的區別?
都是實現多型的方式,區別在於前者實現的是編譯時的多型,後者實現的是執行時的多型。
重寫:發生在子類與父類之間,重寫方法返回值和形參都不能改變;即外殼不變,核心重寫。
過載:在一個類裡面,方法名字相同,而引數不同。
抽象類和介面的區別?
抽象類可以提供成員方法的實現細節,而介面只能存在public abstract方法;
抽象類的成員可以是各種型別的,而介面中的成員變數只能是 public static fianl 型別的;
介面中不能含有靜態程式碼塊以及靜態方法,而抽象類可以有靜態程式碼塊和靜態方法;
一個類只能繼承一個抽象類,而一個類可以實現多個介面。
Java建立物件有哪幾種方式?
提供四種建立物件的方式:
new建立新物件;
通過反射機制;
採用clone機制;
通過序列化機制;
介紹下hashCode()?
hashCode()的作用是獲取雜湊碼,也稱為雜湊碼;返回的是一個int整數。這個雜湊碼的作用是確定該物件在雜湊表中的索引位置。
散列表儲存的是鍵值對(key-value),它的特點是:能根據“鍵”快速的檢索出對應的“值”。這其中就利用到了雜湊碼!