Java常見面試題(2)

面向?qū)ο蟮奶卣饔心男┓矫妫?BR>
1. 抽象:
抽象就是忽略一個(gè)主題中與當(dāng)前目標(biāo)無關(guān)的那些方面,以便更充分地注意與當(dāng)前目標(biāo)有關(guān)的方面。抽象并不打算了解全部問題,而只是選擇其中的一部分,暫時(shí)不用部分細(xì)節(jié)。抽象包括兩個(gè)方面,一是過程抽象,二是數(shù)據(jù)抽象。

2.繼承:
繼承是一種聯(lián)結(jié)類的層次模型,并且允許和鼓勵(lì)類的重用,它提供了一種明確表述共性的方法。對(duì)象的一個(gè)新類可以從現(xiàn)有的類中派生,這個(gè)過程稱為類繼承。新類 繼承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生類可以從它的基類那里繼承方法和實(shí)例變量,并且類可以修改或 增加新的方法使之更適合特殊的需要。

3.封裝:
封裝是把過程和數(shù)據(jù)包圍起來,對(duì)數(shù)據(jù)的訪問只能通過已定義的界面。面向?qū)ο笥?jì)算始于這個(gè)基本概念,即現(xiàn)實(shí)世界可以被描繪成一系列完全自治、封裝的對(duì)象,這些對(duì)象通過一個(gè)受保護(hù)的接口訪問其他對(duì)象。

4. 多態(tài)性:
多態(tài)性是指允許不同類的對(duì)象對(duì)同一消息作出響應(yīng)。多態(tài)性包括參數(shù)化多態(tài)性和包含多態(tài)性。多態(tài)性語言具有靈活、抽象、行為共享、代碼共享的優(yōu)勢(shì),很好的解決了應(yīng)用程序函數(shù)同名問題。

在JAVA中基本數(shù)據(jù)類型參數(shù)的傳值和引用類型的參數(shù)傳值有什么不同?

一個(gè)是儲(chǔ)存在棧里,一個(gè)是存儲(chǔ)在堆棧里;一個(gè)是值類型的傳遞,一個(gè)是引用類型的傳遞;
基本型是傳值的拷貝,對(duì)象是傳引用的拷貝。
public class TestReference {

private int a=0;

public static void main(String[] args) {
int b = 0;
TestReference test = new TestReference();
test.modify(b);
test.modify(test);
System.out.println("After been modified b="+b);//傳值類型,不改變值,所傳的為變量的副本
System.out.println("After been modified a="+test.a);//引用類型改變所引用內(nèi)容,傳遞的是只引用的一個(gè)副本
}
//傳值類型
public void modify(int a){
a++;
System.out.println("It is modifying");
}
//引用類型
public void modify(TestReference t){
t.a++;
System.out.println("It is modifying");
}
}

北大青鳥網(wǎng)上報(bào)名
北大青鳥招生簡章