Java常見(jiàn)面試題(1)

1.Error與Exception有什么區(qū)別?
Error表示系統(tǒng)級(jí)的錯(cuò)誤和程序不必處理的異常, Exception表示需要捕捉或者需要程序進(jìn)行處理的異常。

2.在java中一個(gè)類被聲明為final類型,表示了什么意思?
表示該類不能被繼承,是頂級(jí)類。heap和stack有什么區(qū)別。 棧是一種線形集合,其添加和刪除元素的操作應(yīng)在同一段完成。棧按照后進(jìn)先出的方式進(jìn)行處理。 堆是棧的一個(gè)組成元素

3.String s = new String("xyz");創(chuàng)建了幾個(gè)String Object?
兩個(gè)對(duì)象,一個(gè)是“xyx”,一個(gè)是指向“xyx”的引用對(duì)象s。

4.short s1 = 1; s1 = s1 + 1;有什么錯(cuò)? short s1 = 1; s1 += 1;有什么錯(cuò)?    
short s1 = 1; s1 = s1 + 1;有錯(cuò),s1是short型,s1+1是int型,不能顯式轉(zhuǎn)化為short型。可修改為s1 =(short)(s1 + 1) 。short s1 = 1; s1 += 1正確。

5.?dāng)?shù)組有沒(méi)有l(wèi)ength()這個(gè)方法? String有沒(méi)有l(wèi)ength()這個(gè)方法?   
數(shù)組沒(méi)有l(wèi)ength()這個(gè)方法,有l(wèi)ength的屬性。   String有有l(wèi)ength()這個(gè)方法。

6.equals()和==方法決定引用值是否指向同一對(duì)象equals()在類中被覆蓋,為的是當(dāng)兩個(gè)分離的對(duì)象的內(nèi)容和類型相配的話,返回真值。

7.構(gòu)造器Constructor是否可被override?    
構(gòu)造器Constructor不能被繼承,因此不能重寫Overriding,但可以被重載Overloading。 

8.是否可以繼承String類?    
String類是final類故不可以繼承。 

9.當(dāng)一個(gè)線程進(jìn)入一個(gè)對(duì)象的一個(gè)synchronized方法后,其它線程是否可進(jìn)入此對(duì)象的其它方法?    
不能,一個(gè)對(duì)象的一個(gè)synchronized方法只能由一個(gè)線程訪問(wèn)。

10. try {}里有一個(gè)return語(yǔ)句,那么緊跟在這個(gè)try后的finally {}里的code會(huì)不會(huì)被執(zhí)行,什么時(shí)候被執(zhí)行,在return前還是后?    會(huì)執(zhí)行,在return前執(zhí)行。 

11.swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?   
switch(expr1)中,expr1是一個(gè)整數(shù)表達(dá)式。因此傳遞給 switch 和 case 語(yǔ)句的參數(shù)應(yīng)該是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。

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