第一篇:java程序員面試必備的32個(gè)要點(diǎn)
java程序員面試必備的32個(gè)要點(diǎn)
第一,談?wù)刦inal, finally, finalize的區(qū)別。
final 用于聲明屬性,方法和類(lèi),分別表示屬性不可變,方法不可覆蓋,類(lèi)不可繼承。finally是異常處理語(yǔ)句結(jié)構(gòu)的一部分,表示總是執(zhí)行。finalize是 Object類(lèi)的一個(gè)方法,在垃圾收集器執(zhí)行的時(shí)候會(huì)調(diào)用被回收對(duì)象的此方法,可以覆蓋此方法提供垃圾收集時(shí)的其他資源回收,例如關(guān)閉文件等。
第二,Anonymous Inner Class(匿名內(nèi)部類(lèi))是否可以extends(繼承)其它類(lèi),是否可以implements(實(shí)現(xiàn))interface(接口)?
可以繼承其他類(lèi)或完成其他接口,在swing編程中常用此方式。
第三,Static Nested Class 和 Inner Class的不同,說(shuō)得越多越好(面試題有的很籠統(tǒng))。
Static Nested Class是被聲明為靜態(tài)(static)的內(nèi)部類(lèi),它可以不依賴(lài)于外部類(lèi)實(shí)例被實(shí)例化。而通常的內(nèi)部類(lèi)需要在外部類(lèi)實(shí)例化后才能實(shí)例化。
第四,&和&&的區(qū)別。
&是位運(yùn)算符,表示按位與運(yùn)算,&&是邏輯運(yùn)算符,表示邏輯與(and).第五,HashMap和Hashtable的區(qū)別。
HashMap是Hashtable的輕量級(jí)實(shí)現(xiàn)(非線程安全的實(shí)現(xiàn)),他們都完成了Map接口,主要區(qū)別在于HashMap允許空(null)鍵值(key),由于非線程安全,效率上可能高于Hashtable.第六,Collection 和 Collections的區(qū)別。
Collection是集合類(lèi)的上級(jí)接口,繼承與他的接口主要有Set 和List.Collections是針對(duì)集合類(lèi)的一個(gè)幫助類(lèi),他提供一系列靜態(tài)方法實(shí)現(xiàn)對(duì)各種集合的搜索、排序、線程安全化等操作。
第七,什么時(shí)候用assert。
1.4新增關(guān)鍵字(語(yǔ)法),用于測(cè)試boolean表達(dá)式狀態(tài),可用于調(diào)試程序。使用方法 assert,表示如果表達(dá)式為真(true),則下面的語(yǔ)句執(zhí)行,否則拋出AssertionError。另外的使用方式assert < boolean表達(dá)式>:,表示如果表達(dá)式為真,后面的表達(dá)式忽略,否則后面表達(dá)式的值用于AssertionError的構(gòu)建參數(shù)。注意編譯時(shí)要增加-source 1.4 參數(shù),否則報(bào)錯(cuò)。]運(yùn)行時(shí)要增加 –ea參數(shù),否則assert行被忽略
第八,GC是什么? 為什么要有GC?
GC是垃圾收集的意思(Gabage Collection),內(nèi)存處理是編程人員容易出現(xiàn)問(wèn)題的地方,忘記或者錯(cuò)誤的內(nèi)存回收會(huì)導(dǎo)致程序或系統(tǒng)的不穩(wěn)定甚至崩潰,Java提供的GC功能可以 自動(dòng)監(jiān)測(cè)對(duì)象是否超過(guò)作用域從而達(dá)到自動(dòng)回收內(nèi)存的目的,Java語(yǔ)言沒(méi)有提供釋放已分配內(nèi)存的顯示操作方法。
第九,String s = new String(“xyz”);創(chuàng)建了幾個(gè)String Object?
兩個(gè)
第十,Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
Math.round(11.5)==12Math.round(-11.5)==-11round方法返回與參數(shù)最接近的長(zhǎng)整數(shù),參數(shù)加1/2后求其floor.第十一,short s1 = 1;s1 = s1 + 1;有什么錯(cuò)? short s1 = 1;s1 += 1;有什么錯(cuò)?
short s1 = 1;s1 = s1 + 1;(s1+1運(yùn)算結(jié)果是int型,需要強(qiáng)制轉(zhuǎn)換類(lèi)型)short s1 = 1;s1 += 1;(可以正確編譯)
第十二,sleep()和 wait()有什么區(qū)別?
sleep是線程類(lèi)(Thread)的方法,導(dǎo)致此線程暫停執(zhí)行指定時(shí)間,給執(zhí)行機(jī)會(huì)給其他線程,但是監(jiān)控狀態(tài)依然保持,到時(shí)后會(huì)自動(dòng)恢復(fù)。調(diào)用 sleep不會(huì)釋放對(duì)象鎖。wait是Object類(lèi)的方法,對(duì)此對(duì)象調(diào)用wait方法導(dǎo)致本線程放棄對(duì)象鎖,進(jìn)入等待此對(duì)象的等待鎖定池,只有針對(duì)此對(duì) 象發(fā)出notify方法(或notifyAll)后本線程才進(jìn)入對(duì)象鎖定池準(zhǔn)備獲得對(duì)象鎖進(jìn)入運(yùn)行狀態(tài)。
第十三,Java有沒(méi)有g(shù)oto?
沒(méi)有很十三的問(wèn)題,如果哪個(gè)面試的問(wèn)到這個(gè)問(wèn)題,我勸你還是別進(jìn)這家公司。
第十四,數(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è)方法。
第十五,Overload和Override的區(qū)別。Overloaded的方法是否可以改變返回值的類(lèi)型?
方法的重寫(xiě)Overriding和重載Overloading是Java多態(tài)性的不同表現(xiàn)。重寫(xiě)Overriding是父類(lèi)與子類(lèi)之間多態(tài)性的一種表現(xiàn),重載Overloading是一個(gè)類(lèi)中多態(tài)性的一種表現(xiàn)。如果在子類(lèi)中定義某方法與其父類(lèi)有相同的名稱(chēng)和參數(shù),我們說(shuō)該方法被重寫(xiě)(Overriding)。子類(lèi)的對(duì)象使用這個(gè)方法時(shí),將調(diào)用子類(lèi)中的定義,對(duì)它而言,父類(lèi)中的定義如同被“屏蔽”了。如果在一個(gè)類(lèi)中定義了多個(gè)同名的方 法,它們或有不同的參數(shù)個(gè)數(shù)或有不同的參數(shù)類(lèi)型,則稱(chēng)為方法的重載(Overloading)。Overloaded的方法是可以改變返回值的類(lèi)型。第十六,Set里的元素是不能重復(fù)的,那么用什么方法來(lái)區(qū)分重復(fù)與否呢? 是用==還是equals()? 它們有何區(qū)別?
Set里的元素是不能重復(fù)的,那么用iterator()方法來(lái)區(qū)分重復(fù)與否。equals()是判讀兩個(gè)Set是否相等。
equals()和==方法決定引用值是否指向同一對(duì)象equals()在類(lèi)中被覆蓋,為的是當(dāng)兩個(gè)分離的對(duì)象的內(nèi)容和類(lèi)型相配的話,返回真值。
第十七,給我一個(gè)你最常見(jiàn)到的runtime exception。
參考如下:
ArithmeticException,ArrayStoreException,BufferOverflowException,BufferUnderflowException,CannotRedoException,CannotUndoException,ClassCastException,CMMException,ConcurrentModificationException,DOMException,EmptyStackException,IllegalArgumentException,IllegalMonitorStateException,IllegalPathStateException,IllegalStateException,ImagingOpException,IndexOutOfBoundsException,MissingResourceException,NegativeArraySizeException,NoSuchElementException,NullPointerException,ProfileDataException,ProviderException,RasterFormatException,SecurityException,SystemException,UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException
第十八,error和exception有什么區(qū)別?
error 表示恢復(fù)不是不可能但很困難的情況下的一種嚴(yán)重問(wèn)題。比如說(shuō)內(nèi)存溢出。不可能指望程序能處理這樣的情況。
exception 表示一種設(shè)計(jì)或?qū)崿F(xiàn)問(wèn)題。也就是說(shuō),它表示如果程序運(yùn)行正常,從不會(huì)發(fā)生的情況。第十九,List, Set, Map是否繼承自Collection接口?
List,Set是
Map不是
第二十,abstract class和interface有什么區(qū)別?
聲明方法的存在而不去實(shí)現(xiàn)它的類(lèi)被叫做抽象類(lèi)(abstract class),它用于要?jiǎng)?chuàng)建一個(gè)體現(xiàn)某些基本行為的類(lèi),并為該類(lèi)聲明方法,但不能在該類(lèi)中實(shí)現(xiàn)該類(lèi)的情況。不能創(chuàng)建abstract 類(lèi)的實(shí)例。然而可以創(chuàng)建一個(gè)變量,其類(lèi)型是一個(gè)抽象類(lèi),并讓它指向具體子類(lèi)的一個(gè)實(shí)例。不能有抽象構(gòu)造函數(shù)或抽象靜態(tài)方法。Abstract 類(lèi)的子類(lèi)為它們父類(lèi)中的所有抽象方法提供實(shí)現(xiàn),否則它們也是抽象類(lèi)為。取而代之,在子類(lèi)中實(shí)現(xiàn)該方法。知道其行為的其它類(lèi)可以在類(lèi)中實(shí)現(xiàn)這些方法。
接口(interface)是抽象類(lèi)的變體。在接口中,所有方法都是抽象的。多繼承性可通過(guò)實(shí)現(xiàn)這樣的接口而獲得。接口中的所有方法都是抽象的,沒(méi)有一個(gè) 有程序體。接口只可以定義static final成員變量。接口的實(shí)現(xiàn)與子類(lèi)相似,除了該實(shí)現(xiàn)類(lèi)不能從接口定義中繼承行為。當(dāng)類(lèi)實(shí)現(xiàn)特殊接口時(shí),它定義(即將程序體給予)所有這種接口的方法。然后,它可以在實(shí)現(xiàn)了該接口的類(lèi)的任何對(duì)象上調(diào)用接口的方法。由于有抽象類(lèi),它允許使用接口名作為引用變量的類(lèi)型。通常的動(dòng)態(tài)聯(lián)編將生效。引用可以轉(zhuǎn)換到 接口類(lèi)型或從接口類(lèi)型轉(zhuǎn)換,instanceof 運(yùn)算符可以用來(lái)決定某對(duì)象的類(lèi)是否實(shí)現(xiàn)了接口。
第二十一,abstract的method是否可同時(shí)是static,是否可同時(shí)是native,是否可同時(shí)是synchroniz 都不能
第二十二,接口是否可繼承接口? 抽象類(lèi)是否可實(shí)現(xiàn)(implements)接口? 抽象類(lèi)是否可繼承實(shí)體類(lèi)(concrete class)?
接口可以繼承接口。抽象類(lèi)可以實(shí)現(xiàn)(implements)接口,抽象類(lèi)是否可繼承實(shí)體類(lèi),但前提是實(shí)體類(lèi)必須有明確的構(gòu)造函數(shù)。
第二十三,啟動(dòng)一個(gè)線程是用run()還是start()?
啟動(dòng)一個(gè)線程是調(diào)用start()方法,使線程所代表的虛擬處理機(jī)處于可運(yùn)行狀態(tài),這意味著它可以由JVM調(diào)度并執(zhí)行。這并不意味著線程就會(huì)立即運(yùn)行。run()方法可以產(chǎn)生必須退出的標(biāo)志來(lái)停止一個(gè)線程。第二十四,構(gòu)造器Constructor是否可被override?
構(gòu)造器Constructor不能被繼承,因此不能重寫(xiě)Overriding,但可以被重載Overloading。第二十五,是否可以繼承String類(lèi)?
String類(lèi)是final類(lèi)故不可以繼承。
第二十六,當(dāng)一個(gè)線程進(jìn)入一個(gè)對(duì)象的一個(gè)synchronized方法后,其它線程是否可進(jìn)入此對(duì)象的其它方法?
不能,一個(gè)對(duì)象的一個(gè)synchronized方法只能由一個(gè)線程訪問(wèn)。
第二十七,try {}里有一個(gè)return語(yǔ)句,那么緊跟在這個(gè)try后的finally {}里的code會(huì)不會(huì)被執(zhí)行,什么時(shí)候被執(zhí)行,在return前還是后?
會(huì)執(zhí)行,在return前執(zhí)行。
第二十八,編程題: 用最有效率的方法算出2乘以8等於幾?
有C背景的程序員特別喜歡問(wèn)這種問(wèn)題。<<
3第二十九,兩個(gè)對(duì)象值相同(x.equals(y)== true),但卻可有不同的hash code,這句話對(duì)不對(duì)? 不對(duì),有相同的hash code。第三十,當(dāng)一個(gè)對(duì)象被當(dāng)作參數(shù)傳遞到一個(gè)方法后,此方法可改變這個(gè)對(duì)象的屬性,并可返回變化后的結(jié)果,那么這里到底是值傳遞還是引用傳遞?
是值傳遞。Java 編程語(yǔ)言只由值傳遞參數(shù)。當(dāng)一個(gè)對(duì)象實(shí)例作為一個(gè)參數(shù)被傳遞到方法中時(shí),參數(shù)的值就是對(duì)該對(duì)象的引用。對(duì)象的內(nèi)容可以在被調(diào)用的方法中改變,但對(duì)象的引用是永遠(yuǎn)不會(huì)改變的。第三十一,swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
switch(expr1)中,expr1是一個(gè)整數(shù)表達(dá)式。因此傳遞給 switch 和 case 語(yǔ)句的參數(shù)應(yīng)該是 int、short、char 或者 byte。long,string 都不能作用于swtich。
第三十二,編程題: 寫(xiě)一個(gè)Singleton出來(lái)。
Singleton模式主要作用是保證在Java應(yīng)用程序中,一個(gè)類(lèi)Class只有一個(gè)實(shí)例存在。一般Singleton模式通常有幾種種形式:
第一種形式: 定義一個(gè)類(lèi),它的構(gòu)造函數(shù)為private的,它有一個(gè)static的private的該類(lèi)變量,在類(lèi)初始化時(shí)實(shí)例話,通過(guò)一個(gè)public的getInstance方法獲取對(duì)它的引用,繼而調(diào)用其中的方法。public class Singleton {
private Singleton(){}
//在自己內(nèi)部定義自己一個(gè)實(shí)例,是不是很奇怪?
//注意這是private 只供內(nèi)部調(diào)用
private static Singleton instance = new Singleton();
//這里提供了一個(gè)供外部訪問(wèn)本class的靜態(tài)方法,可以直接訪問(wèn)
public static Singleton getInstance(){
return instance;
}
}
第二種形式: public class Singleton {
private static Singleton instance = null;
public static synchronized Singleton getInstance(){
//這個(gè)方法比上面有所改進(jìn),不用每次都進(jìn)行生成對(duì)象,只是第一次
//使用時(shí)生成實(shí)例,提高了效率!
if(instance==null)
instance=new Singleton();
return instance;}
}
其他形式:
定義一個(gè)類(lèi),它的構(gòu)造函數(shù)為private的,所有方法為static的。
一般認(rèn)為第一種形式要更加安全些
(注:第九可能有問(wèn)題)
第二篇:java程序員面試要點(diǎn)
第一,談?wù)刦inal, finally, finalize的區(qū)別。
final 用于聲明屬性,方法和類(lèi),分別表示屬性不可變,方法不可覆蓋,類(lèi)不可繼承。finally是異常處理語(yǔ)句結(jié)構(gòu)的一部分,表示總是執(zhí)行。finalize是 Object類(lèi)的一個(gè)方法,在垃圾收集器執(zhí)行的時(shí)候會(huì)調(diào)用被回收對(duì)象的此方法,可以覆蓋此方法提供垃圾收集時(shí)的其他資源回收,例如關(guān)閉文件等。
第二,Anonymous Inner Class(匿名內(nèi)部類(lèi))是否可以extends(繼承)其它類(lèi),是否可以implements(實(shí)現(xiàn))interface(接口)?
可以繼承其他類(lèi)或完成其他接口,在swing編程中常用此方式。
第三,Static Nested Class 和 Inner Class的不同,說(shuō)得越多越好(面試題有的很籠統(tǒng))。
Static Nested Class是被聲明為靜態(tài)(static)的內(nèi)部類(lèi),它可以不依賴(lài)于外部類(lèi)實(shí)例被實(shí)例化。而通常的內(nèi)部類(lèi)需要在外部類(lèi)實(shí)例化后才能實(shí)例化。
第四,&和&&的區(qū)別。
&是位運(yùn)算符,表示按位與運(yùn)算,&&是邏輯運(yùn)算符,表示邏輯與(and).第五,HashMap和Hashtable的區(qū)別。
HashMap是Hashtable的輕量級(jí)實(shí)現(xiàn)(非線程安全的實(shí)現(xiàn)),他們都完成了Map接口,主要區(qū)別在于HashMap允許空(null)鍵值(key),由于非線程安全,效率上可能高于Hashtable.第六,Collection 和 Collections的區(qū)別。
Collection是集合類(lèi)的上級(jí)接口,繼承與他的接口主要有Set 和List.Collections是針對(duì)集合類(lèi)的一個(gè)幫助類(lèi),他提供一系列靜態(tài)方法實(shí)現(xiàn)對(duì)各種集合的搜索、排序、線程安全化等操作。
第七,什么時(shí)候用assert。
1.4新增關(guān)鍵字(語(yǔ)法),用于測(cè)試boolean表達(dá)式狀態(tài),可用于調(diào)試程序。使用方法 assert,表示如果表達(dá)式為真(true),則下面的語(yǔ)句執(zhí)行,否則拋出AssertionError。另外的使用方式assert < boolean表達(dá)式>:,表示如果表達(dá)式為真,后面的表達(dá)式忽略,否則后面表達(dá)式的值用于AssertionError的構(gòu)建參數(shù)。注意編譯時(shí)要增加-source 1.4 參數(shù),否則報(bào)錯(cuò)。]運(yùn)行時(shí)要增加 –ea參數(shù),否則assert行被忽略
第八,GC是什么? 為什么要有GC?
GC是垃圾收集的意思(Gabage Collection),內(nèi)存處理是編程人員容易出現(xiàn)問(wèn)題的地方,忘記或者錯(cuò)誤的內(nèi)存回收會(huì)導(dǎo)致程序或系統(tǒng)的不穩(wěn)定甚至崩潰,Java提供的GC功能可以自動(dòng)監(jiān)測(cè)對(duì)象是否超過(guò)作用域從而達(dá)到自動(dòng)回收內(nèi)存的目的,Java語(yǔ)言沒(méi)有提供釋放已分配內(nèi)存的顯示操作方法。
第九,String s = new String(“xyz”);創(chuàng)建了幾個(gè)String Object?
兩個(gè)
第十,Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
Math.round(11.5)==12Math.round(-11.5)==-11round方法返回與參數(shù)最接近的長(zhǎng)整數(shù),參數(shù)加1/2后求其floor.第十一,short s1 = 1;s1 = s1 + 1;有什么錯(cuò)? short s1 = 1;s1 += 1;有什么錯(cuò)?
short s1 = 1;s1 = s1 + 1;(s1+1運(yùn)算結(jié)果是int型,需要強(qiáng)制轉(zhuǎn)換類(lèi)型)short s1 = 1;s1 += 1;(可以正確編譯)
第十二,sleep()和 wait()有什么區(qū)別?
sleep是線程類(lèi)(Thread)的方法,導(dǎo)致此線程暫停執(zhí)行指定時(shí)間,給執(zhí)行機(jī)會(huì)給其他線程,但是監(jiān)控狀態(tài)依然保持,到時(shí)后會(huì)自動(dòng)恢復(fù)。調(diào)用 sleep不會(huì)釋放對(duì)象鎖。wait是Object類(lèi)的方法,對(duì)此對(duì)象調(diào)用wait方法導(dǎo)致本線程放棄對(duì)象鎖,進(jìn)入等待此對(duì)象的等待鎖定池,只有針對(duì)此對(duì)象發(fā)出notify方法(或notifyAll)后本線程才進(jìn)入對(duì)象鎖定池準(zhǔn)備獲得對(duì)象鎖進(jìn)入運(yùn)行狀態(tài)。
第十三,Java有沒(méi)有g(shù)oto?
沒(méi)有
很十三的問(wèn)題,如果哪個(gè)面試的問(wèn)到這個(gè)問(wèn)題,我勸你還是別進(jìn)這家公司。
第十四,數(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è)方法。
第十五,Overload和Override的區(qū)別。Overloaded的方法是否可以改變返回值的類(lèi)型?
方法的重寫(xiě)Overriding和重載Overloading是Java多態(tài)性的不同表現(xiàn)。重寫(xiě)Overriding是父類(lèi)與子類(lèi)之間多態(tài)性的一種表現(xiàn),重載Overloading是一個(gè)類(lèi)中多態(tài)性的一種表現(xiàn)。如果在子類(lèi)中定義某方法與其父類(lèi)有相同的名稱(chēng)和參數(shù),我們說(shuō)該方法被重寫(xiě)(Overriding)。子類(lèi)的對(duì)象使用這個(gè)方法時(shí),將調(diào)用子類(lèi)中的定義,對(duì)它而言,父類(lèi)中的定義如同被“屏蔽”了。如果在一個(gè)類(lèi)中定義了多個(gè)同名的方法,它們或有不同的參數(shù)個(gè)數(shù)或有不同的參數(shù)類(lèi)型,則稱(chēng)為方法的重載(Overloading)。Overloaded的方法是可以改變返回值的類(lèi)型。
第十六,Set里的元素是不能重復(fù)的,那么用什么方法來(lái)區(qū)分重復(fù)與否呢? 是用==還是equals()? 它們有何區(qū)別?
Set里的元素是不能重復(fù)的,那么用iterator()方法來(lái)區(qū)分重復(fù)與否。equals()是判讀兩個(gè)Set是否相等。
equals()和==方法決定引用值是否指向同一對(duì)象equals()在類(lèi)中被覆蓋,為的是當(dāng)兩個(gè)分離的對(duì)象的內(nèi)容和類(lèi)型相配的話,返回真值。
第十七,給我一個(gè)你最常見(jiàn)到的runtime exception。
參考如下:
ArithmeticException,ArrayStoreException,BufferOverflowException,BufferUnderflowException,CannotRedoException,CannotUndoException,ClassCastException,CMMException,ConcurrentModificationException,DOMException,EmptyStackException,IllegalArgumentException,IllegalMonitorStateException,IllegalPathStateException,IllegalStateException,ImagingOpException,IndexOutOfBoundsException,MissingResourceException,NegativeArraySizeException,NoSuchElementException,NullPointerException,ProfileDataException,ProviderException,RasterFormatException,SecurityException,SystemException,UndeclaredThrowableException,UnmodifiableSetException,UnsupportedOperationException
第十八,error和exception有什么區(qū)別?
error 表示恢復(fù)不是不可能但很困難的情況下的一種嚴(yán)重問(wèn)題。比如說(shuō)內(nèi)存溢出。不可能指望程序能處理這樣的情況。
exception 表示一種設(shè)計(jì)或?qū)崿F(xiàn)問(wèn)題。也就是說(shuō),它表示如果程序運(yùn)行正常,從不會(huì)發(fā)生的情況。
第十九,List, Set, Map是否繼承自Collection接口?
List,Set是
Map不是
第二十,abstract class和interface有什么區(qū)別?
聲明方法的存在而不去實(shí)現(xiàn)它的類(lèi)被叫做抽象類(lèi)(abstract class),它用于要?jiǎng)?chuàng)建一個(gè)體現(xiàn)某些基本行為的類(lèi),并為該類(lèi)聲明方法,但不能在該類(lèi)中實(shí)現(xiàn)該類(lèi)的情況。不能創(chuàng)建abstract 類(lèi)的實(shí)例。然而可以創(chuàng)建一個(gè)變量,其類(lèi)型是一個(gè)抽象類(lèi),并讓它指向具體子類(lèi)的一個(gè)實(shí)例。不能有抽象構(gòu)造函數(shù)或抽象靜態(tài)方法。Abstract 類(lèi)的子類(lèi)為它們父類(lèi)中的所有抽象方法提供實(shí)現(xiàn),否則它們也是抽象類(lèi)為。取而代之,在子類(lèi)中實(shí)現(xiàn)該方法。知道其行為的其它類(lèi)可以在類(lèi)中實(shí)現(xiàn)這些方法。
接口(interface)是抽象類(lèi)的變體。在接口中,所有方法都是抽象的。多繼承性可通過(guò)實(shí)現(xiàn)這樣的接口而獲得。接口中的所有方法都是抽象的,沒(méi)有一個(gè) 有程序體。接口只可以定義static final成員變量。接口的實(shí)現(xiàn)與子類(lèi)相似,除了該實(shí)現(xiàn)類(lèi)不能從接口定義中繼承行為。當(dāng)類(lèi)實(shí)現(xiàn)特殊接口時(shí),它定義(即將程序體給予)所有這種接口的方法。然后,它可以在實(shí)現(xiàn)了該接口的類(lèi)的任何對(duì)象上調(diào)用接口的方法。由于有抽象類(lèi),它允許使用接口名作為引用變量的類(lèi)型。通常的動(dòng)態(tài)聯(lián)編將生效。引用可以轉(zhuǎn)換到接口類(lèi)型或從接口類(lèi)型轉(zhuǎn)換,instanceof 運(yùn)算符可以用來(lái)決定某對(duì)象的類(lèi)是否實(shí)現(xiàn)了接口。
第二十一,abstract的method是否可同時(shí)是static,是否可同時(shí)是native,是否可同時(shí)是synchronized?
都不能
第二十二,接口是否可繼承接口? 抽象類(lèi)是否可實(shí)現(xiàn)(implements)接口? 抽象類(lèi)是否可繼承實(shí)體類(lèi)(concrete class)?
接口可以繼承接口。抽象類(lèi)可以實(shí)現(xiàn)(implements)接口,抽象類(lèi)是否可繼承實(shí)體類(lèi),但前提是實(shí)體類(lèi)必須有明確的構(gòu)造函數(shù)。
第二十三,啟動(dòng)一個(gè)線程是用run()還是start()?
啟動(dòng)一個(gè)線程是調(diào)用start()方法,使線程所代表的虛擬處理機(jī)處于可運(yùn)行狀態(tài),這意味著它可以由JVM調(diào)度并執(zhí)行。這并不意味著線程就會(huì)立即運(yùn)行。run()方法可以產(chǎn)生必須退出的標(biāo)志來(lái)停止一個(gè)線程。
第二十四,構(gòu)造器Constructor是否可被override?
構(gòu)造器Constructor不能被繼承,因此不能重寫(xiě)Overriding,但可以被重載Overloading。
第二十五,是否可以繼承String類(lèi)?
String類(lèi)是final類(lèi)故不可以繼承。
第二十六,當(dāng)一個(gè)線程進(jìn)入一個(gè)對(duì)象的一個(gè)synchronized方法后,其它線程是否可進(jìn)入此對(duì)象的其它方法?
不能,一個(gè)對(duì)象的一個(gè)synchronized方法只能由一個(gè)線程訪問(wèn)。
第二十七,try {}里有一個(gè)return語(yǔ)句,那么緊跟在這個(gè)try后的finally {}里的code會(huì)不會(huì)被執(zhí)行,什么時(shí)候被執(zhí)行,在return前還是后?
會(huì)執(zhí)行,在return前執(zhí)行。
第二十八,編程題: 用最有效率的方法算出2乘以8等於幾?
有C背景的程序員特別喜歡問(wèn)這種問(wèn)題。< < 3
第二十九,兩個(gè)對(duì)象值相同(x.equals(y)== true),但卻可有不同的hash code,這句話對(duì)不對(duì)?
不對(duì),有相同的hash code。
第三十,當(dāng)一個(gè)對(duì)象被當(dāng)作參數(shù)傳遞到一個(gè)方法后,此方法可改變這個(gè)對(duì)象的屬性,并可返回變化后的結(jié)果,那么這里到底是值傳遞還是引用傳遞?
是值傳遞。Java 編程語(yǔ)言只由值傳遞參數(shù)。當(dāng)一個(gè)對(duì)象實(shí)例作為一個(gè)參數(shù)被傳遞到方法中時(shí),參數(shù)的值就是對(duì)該對(duì)象的引用。對(duì)象的內(nèi)容可以在被調(diào)用的方法中改變,但對(duì)象的引用是永遠(yuǎn)不會(huì)改變的。
第三十一,swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
switch(expr1)中,expr1是一個(gè)整數(shù)表達(dá)式。因此傳遞給 switch 和 case 語(yǔ)句的參數(shù)應(yīng)該是 int、short、char 或者 byte。long,string 都不能作用于swtich。
第三十二,編程題: 寫(xiě)一個(gè)Singleton出來(lái)。
Singleton模式主要作用是保證在Java應(yīng)用程序中,一個(gè)類(lèi)Class只有一個(gè)實(shí)例存在。
一般Singleton模式通常有幾種種形式:
第一種形式: 定義一個(gè)類(lèi),它的構(gòu)造函數(shù)為private的,它有一個(gè)static的private的該類(lèi)變量,在類(lèi)初始化時(shí)實(shí)例話,通過(guò)一個(gè)public的getInstance方法獲取對(duì)它的引用,繼而調(diào)用其中的方法。
public class Singleton {
private Singleton(){}
//在自己內(nèi)部定義自己一個(gè)實(shí)例,是不是很奇怪?
//注意這是private 只供內(nèi)部調(diào)用
private static Singleton instance = new Singleton();
//這里提供了一個(gè)供外部訪問(wèn)本class的靜態(tài)方法,可以直接訪問(wèn)
public static Singleton getInstance(){
return instance;
} }
第二種形式:
public class Singleton {
private static Singleton instance = null;
public static synchronized Singleton getInstance(){
//這個(gè)方法比上面有所改進(jìn),不用每次都進(jìn)行生成對(duì)象,只是第一次
//使用時(shí)生成實(shí)例,提高了效率!
if(instance==null)
instance=new Singleton();
return instance;} }
其他形式:
定義一個(gè)類(lèi),它的構(gòu)造函數(shù)為private的,所有方法為static的。
一般認(rèn)為第一種形式要更加安全些
其中也存在一些問(wèn)題,下面補(bǔ)充一下.希望大家繼續(xù)補(bǔ)充
1.最好介紹一下final修飾變量的情形(分開(kāi)說(shuō)明基本類(lèi)型變量和引用類(lèi)型變量)。
2.不知道如何描述比較好,匿名內(nèi)部類(lèi)本身是一個(gè)實(shí)現(xiàn)了特定接口或繼承了其他類(lèi)的類(lèi)。
3.非靜態(tài)類(lèi)不能有static的方法。參考一下java collections framework的代碼,還能說(shuō)出很多東西來(lái)。
4.&既是位運(yùn)算符,也是邏輯操作符。
&和&&都是邏輯運(yùn)算符,它們的區(qū)別是,&&進(jìn)行短路計(jì)算。
6.可以補(bǔ)充一下,參考文檔。
11.說(shuō)一下具體的原因可能更好。
13.java有g(shù)oto這個(gè)keyword,不過(guò)還沒(méi)有使用。
15.overload和多態(tài)沒(méi)有任何關(guān)系。多態(tài)是面向?qū)ο蟮幕咎卣?,是和繼承、overriding相關(guān)的。原來(lái)以為把overload當(dāng)作多態(tài)的一種是從C++來(lái)的,后來(lái)翻了基本c++的經(jīng)典的書(shū),也強(qiáng)調(diào)多態(tài)只是和繼承,虛函數(shù),overriding相關(guān),所以不知道這個(gè)錯(cuò)誤思想從哪來(lái)的了.16.public interface Set
看文檔就是了.22.“抽象類(lèi)是否可繼承實(shí)體類(lèi),但前提是實(shí)體類(lèi)必須有明確的構(gòu)造函數(shù)?!笔裁匆馑?誰(shuí)規(guī)定的?
27.這個(gè)比較復(fù)雜,例如
public class Main {
public static void main(String[] args){
System.out.println(test());}
public static boolean test(){
boolean b = false;
try {
return b = 4 > 3;
} finally {
System.out.println(b);
//return false;} } }
這個(gè)例子中可以看出,return后面的表達(dá)式已經(jīng)計(jì)算了,感覺(jué)return語(yǔ)句這里被掛起了,如果finally中沒(méi)有return,這個(gè)return就返回.如果finally也有return,那么就是finally中的return返回了.29.碰上不守規(guī)矩的程序員誰(shuí)也沒(méi)辦法.31.還有枚舉呢
32.注釋有問(wèn)題.
第三篇:JAVA程序員面試技巧
java程序員面試題 第一部分:選擇題 question no: 1
1、public class test { public static void changestr(string str){ } public static void main(string[] args){ string str=1234;changestr(str);system.out.println(str);} } please write the output result : question no:2 1.public class test { 2.static boolean foo(char c){ 3.system.out.print(c);4.return true;5.} 6.public static void main(string[] argv){ 7.int i =0;8.for(foo(a);foo(b)&&(i<2);foo(c)){ 9.i++;10.foo(d);12.} 13.} 14.} what is the result? a.abdcbdcb b.abcdabcd d.an exception is thrown at runtime.question no: 3 1.class a { 2.protected int method1(int a, int b){ return 0;} 3.} which two are valid in a class that extends class a?(choose two)a.public int method1(int a, int b){ return 0;} b.private int method1(int a, int b){ return 0;} c.private int method1(int a, long b){ return 0;} d.public short method1(int a, int b){ return 0;} e.static protected int method1(int a, int b){ return 0;} question no: 4 1.public class outer{ 2.public void someoutermethod(){ 3.// line 3 4.} 5.public class inner{} 6.public static void main(string[]argv){ 7.outer o = new outer();8.// line 8 9.} 10.} which instantiates an instance of inner? a.new inner();// at line 3 b.new inner();// at line 8 c.new o.inner();// at line 8 d.new outer.inner();// at line 8//new outer().new inner()question no: 5 which method is used by a servlet to place its session id in a url that is written to the servlet’s response output stream? question no: 6 which two are equivalent?(choose two)a.b.c.d.e.f.g.question no: 7 which of the following statements regarding the lifecycle of a session bean are correct? 1.java.lang.illegalstateexception is thrown if sessioncontext.getejbobject()is invoked when a stateful session bean instance is passivated.2.sessioncontext.getrollbackonly()does not throw an exception when a session bean with bean-managed transaction demarcation is activated.3.an exception is not thrown when sessioncontext.getusertransaction()is called in the afterbegin method of a bean with container-managed transactions.5.accessing resource managers in the sessionsynchronization.afterbegin method of a stateful session bean with bean-managed transaction does not throw an exception.第二部分:概念題
1.描述struts體系結(jié)構(gòu)?對(duì)應(yīng)各個(gè)部分的開(kāi)發(fā)工作主要包括哪些? 3.jsp有哪些內(nèi)置對(duì)象和動(dòng)作?它們的作用分別是什么?
4、sql問(wèn)答題
select * from table 和
select * from table where name like %% and addr like %% and(1_addr like %% or 2_addr like %% or 3_addr like %% or 4_addr like %%)的檢索結(jié)果為何不同?
5、sql問(wèn)答題
表結(jié)構(gòu):
1、表名:g_cardapply 字段(字段名/類(lèi)型/長(zhǎng)度): g_applyno varchar 8;//申請(qǐng)單號(hào)(關(guān)鍵字)g_applydate bigint 8;//申請(qǐng)日期 g_state varchar 2;//申請(qǐng)狀態(tài)
2、表名:g_cardapplydetail 字段(字段名/類(lèi)型/長(zhǎng)度): g_applyno varchar 8;//申請(qǐng)單號(hào)(關(guān)鍵字)g_name varchar 30;//申請(qǐng)人姓名 g_idcard varchar 18;//申請(qǐng)人身份證號(hào) g_state varchar 2;//申請(qǐng)狀態(tài)
其中,兩個(gè)表的關(guān)聯(lián)字段為申請(qǐng)單號(hào)。
題目:
1、查詢(xún)身份證號(hào)碼為***的申請(qǐng)日期
2、查詢(xún)同一個(gè)身份證號(hào)碼有兩條以上記錄的身份證號(hào)碼及記錄個(gè)數(shù)
3、將身份證號(hào)碼為***的記錄在兩個(gè)表中的申請(qǐng)狀態(tài)均改為07
4、刪除g_cardapplydetail表中所有姓李的記錄
華為java筆試題
一、單項(xiàng)選擇題
1.java是從()語(yǔ)言改進(jìn)重新設(shè)計(jì)。a.a(chǎn)da b.c++ c.pasacal d.basic篇二:java程序員面試注意事項(xiàng)
一、回答問(wèn)題的思路
先正面敘述一些基本的核心知識(shí),然后描述一些特殊的東西,最后再來(lái)一些錦上添花的東西。要注意有些不是錦上添花,而是畫(huà)蛇添足的東西,不要隨便寫(xiě)上。把答題像寫(xiě)書(shū)一樣寫(xiě)。我要回答一個(gè)新技術(shù)的問(wèn)題大概思路和步驟是:我們想干什么,干這個(gè)遇到了什么問(wèn)題,現(xiàn)在用什么方式來(lái)解決。其實(shí)我們講課也是這樣一個(gè)思路。
答題時(shí),先答是什么,再答有什么作用和要注意什么(這部分最重要,展現(xiàn)自己的心得)。答案的層次分明,條理清楚都非常重要,從這些表面的東西也可以看出一個(gè)人的習(xí)慣、辦事風(fēng)格、條理等。要講你做出答案的思路過(guò)程,或者說(shuō)你記住答案的思想都寫(xiě)下來(lái)。把答題想著是辯論賽。答題就是給別人講道理、擺事實(shí)。答題不局限于什么格式和形式,就是要將自己的學(xué)識(shí)展現(xiàn)出來(lái)!
另外,不要因?yàn)槿思翌}目本來(lái)就模棱兩可,你就心里膽怯和沒(méi)底氣了,不敢回答了。你要大膽地指出對(duì)方題目很模糊和你的觀點(diǎn),不要把面試官想得有多高,其實(shí)他和你就是差不多的,你想想,如果他把你招進(jìn)去了,你們以后就是同事了,可不是差不多的嗎?
二、關(guān)于就業(yè)薪水
如果你是應(yīng)屆生,那不能要高工資,好比大餅的故事,要拿高工資,就去中關(guān)村!少數(shù)人基礎(chǔ)確實(shí)很好,在校期間確實(shí)又做過(guò)一些項(xiàng)目,那仍然是可以要到相對(duì)高的工資的。
初級(jí)程序員薪水:2000-4500 中級(jí)程序員薪水:4000-7000 高級(jí)程序員薪水:7000以上
公司招聘程序員更看重的要用到的編碼技術(shù)、而不是那些業(yè)務(wù)不太相關(guān)的所謂項(xiàng)目經(jīng)歷:
三、公司想招什么樣的人
對(duì)于一些公司接到了一些項(xiàng)目,想招聘一些初中級(jí)的程序員過(guò)來(lái)幫助寫(xiě)代碼,完成這個(gè)項(xiàng)目,你更看重的是他的專(zhuān)業(yè)技術(shù)功底,還是以前做過(guò)幾個(gè)項(xiàng)目的經(jīng)歷呢?我們先排除掉那些編碼技術(shù)功底好,又正好做過(guò)相似項(xiàng)目的情況,實(shí)際上,這種魚(yú)和熊掌兼得的情況并不常見(jiàn)。其實(shí)公司很清楚,只要招聘進(jìn)來(lái)的人技術(shù)真的很明白,那他什么項(xiàng)目都可以做出來(lái),公司招人不是讓你去重復(fù)做你以前的項(xiàng)目,而是做一個(gè)新項(xiàng)目,業(yè)務(wù)方面,你只要進(jìn)了項(xiàng)目團(tuán)隊(duì),自然就能掌握。所以,大多數(shù)招聘單位在招聘那些編碼級(jí)別的程序員時(shí)也沒(méi)指望能招聘到做過(guò)類(lèi)似項(xiàng)目的人,也不會(huì)刻意去找做過(guò)類(lèi)似項(xiàng)目的人,用人單位也不是想把你招進(jìn),然后把你以前做過(guò)的項(xiàng)目重做一遍,所以,用人單位更看重招進(jìn)來(lái)的人對(duì)要用到的編碼技術(shù)的功底到底怎樣,技術(shù)扎實(shí)不扎實(shí),項(xiàng)目則只要跟著開(kāi)發(fā)團(tuán)隊(duì)走,自然就沒(méi)問(wèn)題。除非是一些非常專(zhuān)業(yè)的行業(yè),要招聘特別高級(jí)的開(kāi)發(fā)人員和系統(tǒng)分析師,招聘單位才特別注重他的項(xiàng)目經(jīng)驗(yàn)和行業(yè)經(jīng)驗(yàn),要去找到行業(yè)高手,公司才關(guān)心項(xiàng)目和與你聊項(xiàng)目的細(xì)節(jié),這樣的人通常都不是通過(guò)常規(guī)招聘渠道去招聘進(jìn)來(lái)的,而是通過(guò)各種手段挖過(guò)來(lái)的,這情況不再我今天要討論的范圍中。
四、公司面試會(huì)問(wèn)什么,.技術(shù)學(xué)得明白不明白,人家?guī)讉€(gè)問(wèn)題就把你的深淺問(wèn)出來(lái)了,只要問(wèn)一些具體的技術(shù)點(diǎn),就很容易看出你是真懂還是假懂,很容看出你的技術(shù)深度和實(shí)力,所以,技術(shù)是來(lái)不得半點(diǎn)虛假的,必須扎扎實(shí)實(shí)。
由于項(xiàng)目的種類(lèi)繁多,涉及到現(xiàn)實(shí)生活中的各行各業(yè),什么五花八門(mén)的業(yè)務(wù)都有,例如,酒店房間預(yù)定管理,公司車(chē)輛調(diào)度管理,學(xué)校課程教室管理,超市進(jìn)銷(xiāo)存管理,知識(shí)內(nèi)容管理,等等……成千上萬(wàn)等等,但是,不管是什么項(xiàng)目,采用的無(wú)非都是我們學(xué)習(xí)的那些目前流行和常用的技術(shù)。技術(shù)好、經(jīng)驗(yàn)豐富,則項(xiàng)目做出來(lái)的效率高些,程序更穩(wěn)定和更容易維護(hù)些;技術(shù)差點(diǎn),碰碰磕磕最后也能把項(xiàng)目做出來(lái),無(wú)非是做的周期長(zhǎng)點(diǎn)、返工的次數(shù)多點(diǎn),程序代碼寫(xiě)得差些,用的技術(shù)笨拙點(diǎn)。如果一個(gè)人不是完完全全做過(guò)某個(gè)項(xiàng)目,他是不太關(guān)心該項(xiàng)目的業(yè)務(wù)的,對(duì)其中的一些具體細(xì)節(jié)更是一竅不知,(如果我招你來(lái)做圖書(shū)管理,你項(xiàng)目經(jīng)歷說(shuō)你做過(guò)汽車(chē)調(diào)度,那我能問(wèn)你汽車(chē)調(diào)度具體怎么回事嗎?不會(huì),所以,你很容易蒙混過(guò)去的)而一個(gè)程序員的整個(gè)職業(yè)生涯中能實(shí)實(shí)在在和完完整整做出來(lái)的項(xiàng)目沒(méi)幾個(gè),更別說(shuō)在多個(gè)不同行業(yè)的項(xiàng)目了,有的程序員更是一輩子都只是在做某一個(gè)行業(yè)的項(xiàng)目,結(jié)果他就成了這個(gè)行業(yè)的專(zhuān)家(專(zhuān)門(mén)干一件事的家伙)。所以,技術(shù)面試官通常沒(méi)正好親身經(jīng)歷過(guò)你簡(jiǎn)歷寫(xiě)的那些項(xiàng)目,他不可能去問(wèn)你寫(xiě)的那些項(xiàng)目的具體細(xì)節(jié),而是只能泛泛地問(wèn)你這個(gè)項(xiàng)目是多少人做的,做了多長(zhǎng)時(shí)間,開(kāi)發(fā)的過(guò)程,你在做項(xiàng)目的過(guò)程中有什么心得和收獲,用的什么技術(shù)等面上的問(wèn)題,所以,簡(jiǎn)歷上的項(xiàng)目經(jīng)歷可以含有很多水分,很容易作假,技術(shù)面試官也無(wú)法在項(xiàng)目上甄別你的真?zhèn)巍?/p>
五、簡(jiǎn)歷怎么寫(xiě)
簡(jiǎn)歷該怎么寫(xiě):精通哪些技術(shù),有一些什么項(xiàng)目經(jīng)歷
六、怎樣達(dá)到簡(jiǎn)歷上的標(biāo)準(zhǔn)(培訓(xùn)中心教項(xiàng)目的目的)教項(xiàng)目是為了鞏固和靈活整合運(yùn)用技術(shù),增強(qiáng)學(xué)習(xí)的趣味性,熟悉做項(xiàng)目的流程,或得一些專(zhuān)業(yè)課程中無(wú)法獲得的特有項(xiàng)目經(jīng)驗(yàn),增強(qiáng)自己面試的信心。講的項(xiàng)目應(yīng)該真實(shí)可靠才有價(jià)值,否則,表面上是項(xiàng)目,實(shí)際上還是知識(shí)點(diǎn)的整合,對(duì)鞏固技術(shù)點(diǎn)和增強(qiáng)學(xué)習(xí)的趣味性,但無(wú)法獲得實(shí)際的項(xiàng)目經(jīng)驗(yàn)。
第四篇:java程序員面試必讀
Java程序員,面試必讀
☆★☆★快來(lái)!10月25日讀者見(jiàn)面會(huì)☆★☆★
清華大學(xué)出版社《Java程序員,上班那點(diǎn)事兒》作者:鐘聲 章節(jié):1.2.2:
面試是一個(gè)“簡(jiǎn)單”而又“復(fù)雜”的事情,正因?yàn)樗哂小昂?jiǎn)單”和“復(fù)雜”的雙重性質(zhì),才使我們對(duì)這個(gè)問(wèn)題不敢掉以輕心。介紹如何面試,有時(shí)候甚至可以寫(xiě)一本書(shū),而有時(shí)候,你什么都不準(zhǔn)備卻可以面試成功。
因?yàn)?,面試的成功與否完全取決于主考官,因此,這門(mén)學(xué)問(wèn)的主要科目就是研究主考官的招聘心理。
我們研究好主考官的招聘心理,自然就可以做到“知己知彼”了。
本小節(jié)只是說(shuō)說(shuō)面試的“心理戰(zhàn)”,而想真正的能夠?qū)Υ鹑缌?,需要的是“真功夫”,要想具備“真功夫”還是需要真正的技術(shù)水平作為前提的,本小節(jié)的內(nèi)容只是給那些已經(jīng)具備相應(yīng)技術(shù)水平的應(yīng)聘者提供一定的應(yīng)聘技巧而已,以避免沒(méi)有把自己的“真功夫”完全展示出來(lái)從而喪失工作機(jī)會(huì)。
面試前對(duì)自己的心理暗示:
面試并不是考試,只是和未來(lái)的同事聊聊天。
“心理戰(zhàn)”對(duì)象,可能出現(xiàn)的主考官如下幾類(lèi):
人物1,人力資源部主管(HR)
人物2,你未來(lái)的主管
人物3,你未來(lái)主管的主管
我們分別來(lái)分析遇到不同類(lèi)型的主考官的不同情況。
人物1:人力資源部主管(HR)
“人物1”的出現(xiàn)往往是進(jìn)行該職位的初審,給出一個(gè)概觀定論,如果合格將會(huì)提交給“人物2”。“人物1”他們所要進(jìn)行的是對(duì)人的心理和基本技能方面的一個(gè)判斷。
不過(guò),也有一些公司,首次面試仍然是由業(yè)務(wù)主管來(lái)進(jìn)行,然后再將初審合格的人交給人力部門(mén)來(lái)復(fù)試,如果,是這種情況,你應(yīng)該就算90%入職成功了,因?yàn)?,這個(gè)復(fù)試往往是走個(gè)形式,看看此人有沒(méi)有被主管忽略的大問(wèn)題,如果沒(méi)有,基本就差不多了。
那么,我們僅僅以第一種情況為例,看看“人物1”大多提出的是哪些問(wèn)題。
常見(jiàn)提問(wèn)1:請(qǐng)你自我介紹一下
這個(gè)問(wèn)題,是人力部主考官必問(wèn)的問(wèn)題,這個(gè)問(wèn)題的提問(wèn)并不是真的想了解你的個(gè)人情況,因?yàn)椋愕那闆r基本上在簡(jiǎn)歷上都寫(xiě)著呢。他提出這個(gè)問(wèn)題的主要目的是來(lái)考察你的語(yǔ)言表達(dá)能力,和你在表達(dá)過(guò)程中的一些細(xì)節(jié)表現(xiàn)。
所以,我們應(yīng)該怎么回答呢?
看看如下對(duì)話:
HR:“請(qǐng)你自我介紹一下”
A君:“您看簡(jiǎn)歷吧,基本上我都寫(xiě)在簡(jiǎn)歷上了。”
HR:汗?
HR:“請(qǐng)你自我介紹一下”
B君:“我叫XXX,年齡24,性別男,籍貫??”
HR:倒?
HR:“請(qǐng)你自我介紹一下”
C君:“這話從何說(shuō)起呢?話說(shuō)10年前??”
HR:暈?
首先,不要認(rèn)為主考官?zèng)]有認(rèn)真的看你的簡(jiǎn)歷,沒(méi)有看你的簡(jiǎn)歷就讓你來(lái)面試,是在浪費(fèi)他自己的時(shí)間,所以絕對(duì)是首先認(rèn)為簡(jiǎn)歷比較合適,才約你來(lái)的。
第二,自我介紹并不是讓你重復(fù)一下你簡(jiǎn)歷上的所有內(nèi)容,那些內(nèi)容簡(jiǎn)歷上都有,主考官主要是想聽(tīng)聽(tīng)你如何表達(dá)和語(yǔ)言的邏輯能力。
第三,這個(gè)表達(dá)不要滔滔不絕,要有張有弛,有收有放,主要將自己的想說(shuō)的優(yōu)勢(shì)部分分別道來(lái),能夠通過(guò)你的介紹讓人感覺(jué)到你的“親和力”為佳。
“語(yǔ)言表達(dá)能力”并非我們?nèi)粘Kf(shuō)的“能侃”或者“口才”,這是片面的理解,在面試過(guò)程中,我們要展現(xiàn)的“語(yǔ)言表達(dá)能力”是指,“語(yǔ)言親和力”,能夠讓人感受到你的“溝通”能力。
回答范例:
您好!我來(lái)自XXX大學(xué),是應(yīng)屆畢業(yè)生,所學(xué)專(zhuān)業(yè)是計(jì)算機(jī)應(yīng)用技術(shù),我在校期間參加多項(xiàng)課余工作,參與了多個(gè)應(yīng)用系統(tǒng)的開(kāi)發(fā)與設(shè)計(jì),熟練掌握J(rèn)ava開(kāi)發(fā)工具和應(yīng)用系統(tǒng)的各種開(kāi)發(fā)方法。在學(xué)習(xí)與工作期間,總結(jié)與實(shí)踐了各種技術(shù)實(shí)現(xiàn)手段,有了一些小的積累。
近期已經(jīng)畢業(yè),看到您公司的招聘信息,感覺(jué)自己的技術(shù)與能力非常合適,就投遞了簡(jiǎn)歷。希望能過(guò)了您這關(guān),呵呵??(注:最后的微笑最好不要太牽強(qiáng),目的是緩和氣氛)
大家看到了,這個(gè)回答范例的自我介紹非常簡(jiǎn)練,但是,什么也沒(méi)有落下。既實(shí)事求是的說(shuō)了自己是應(yīng)屆畢業(yè)生,又說(shuō)明了自己雖然是應(yīng)屆畢業(yè)生,但是參加了很多的課余工作,并且具有實(shí)際的項(xiàng)目開(kāi)發(fā)經(jīng)驗(yàn),而且有了一些小的積累。
既說(shuō)了自己的對(duì)這份工作和自己能力之間的考量,又表達(dá)了自己對(duì)主考官的期望。
意思表達(dá)時(shí)不卑不亢,言簡(jiǎn)意賅,讓人聽(tīng)起來(lái)就感覺(jué)很舒服。
這時(shí)候你的目的就達(dá)到了,展現(xiàn)出自己的“語(yǔ)言表達(dá)能力”和“語(yǔ)言親和力”,同時(shí)又能夠讓人感受到你的“溝通”能力。
常見(jiàn)提問(wèn)2:你最大的優(yōu)點(diǎn)是什么?
這個(gè)問(wèn)題如果是HR問(wèn),則最好回答了。
回答這個(gè)問(wèn)題的關(guān)鍵是“圍繞自己的技術(shù)特長(zhǎng)”展開(kāi)話題,為什么這樣?
因?yàn)?,往往HR都不懂技術(shù),圍繞技術(shù)說(shuō)自己的特長(zhǎng)很容易給他說(shuō)暈(當(dāng)然,個(gè)別懂技術(shù)的HR除外)。這里要注意的是,在說(shuō)技術(shù)問(wèn)題的時(shí)候,不要讓HR感覺(jué)自己什么都不懂,要注意說(shuō)話的節(jié)奏,不要太快,不要太驕傲。
常見(jiàn)提問(wèn)3:你最大的缺點(diǎn)是什么?
這個(gè)問(wèn)題是HR的殺手锏,可以說(shuō)這是HR的狠招,這個(gè)問(wèn)題最難回答,一般應(yīng)聘者都本著“揚(yáng)長(zhǎng)避短”的心態(tài)去面試,冷不防冒出這么一個(gè)問(wèn)題,還真是挺棘手的。
需要清楚HR問(wèn)這個(gè)問(wèn)題的目的,其目的仍然不是要真的需要知道你的缺點(diǎn)是什么,還是看看你的表達(dá)能力,尤其是需要考察應(yīng)聘者面對(duì)危機(jī)的時(shí)候的處理能力。所以,我們不要用下列方式作答:
1、說(shuō)出自己的真實(shí)缺點(diǎn),尤其是在前面談話中沒(méi)有暴露出來(lái)的缺點(diǎn)
2、認(rèn)為說(shuō)說(shuō)某些大眾化的缺點(diǎn)即可,認(rèn)為說(shuō)一兩個(gè)無(wú)妨
3、說(shuō)自己沒(méi)有缺點(diǎn),強(qiáng)調(diào)自己比較完美
總之,HR心里想的是:需要了解他面前的這個(gè)人在面對(duì)困難的時(shí)候,是如何處理問(wèn)題的,從處理危機(jī)的方法來(lái)判斷此人的處理事情的靈活性。當(dāng)然,如果此人自己暴露出自己的缺點(diǎn)當(dāng)然更好,省得需要去想辦法問(wèn)更多的問(wèn)題去發(fā)現(xiàn)了。
所以,在回答這個(gè)問(wèn)題的時(shí)候,要看起來(lái)“真誠(chéng)”、“坦白”,同時(shí),說(shuō)出來(lái)的并非自己的缺點(diǎn),而是最好在別人看來(lái)是優(yōu)點(diǎn)的那些方面。
這個(gè)問(wèn)題問(wèn)的概率很大,通常如果求職者說(shuō)自己小心眼、愛(ài)忌妒人、非常懶、脾氣大、工作效率低,肯定不會(huì)錄用你。HR喜歡求職者從自己的優(yōu)點(diǎn)說(shuō)起,中間加一些小缺點(diǎn),最后再把問(wèn)題轉(zhuǎn)回到優(yōu)點(diǎn)上,目的還是突出自己優(yōu)點(diǎn)的部分。
HR喜歡聰明的求職者。
這一點(diǎn)比較難掌握,我們也給出范例:
回答范例:
呵呵,這個(gè)問(wèn)題好難回答??!我想想??(親和力表現(xiàn),也緩解了自己的緊張情緒)
我的缺點(diǎn)是,比較執(zhí)著,比如在技術(shù)方面比較愛(ài)鉆研,有的時(shí)候會(huì)為一個(gè)技術(shù)問(wèn)題加班到深夜。還有就是,工作比較按部就班,總是按照主管的要求完成任務(wù)。另外的缺點(diǎn)是,總在自己的工作范圍內(nèi)有創(chuàng)新意識(shí),并沒(méi)有擴(kuò)展給其他同事。這些問(wèn)題我想我可以進(jìn)入公司以后以最短的時(shí)間來(lái)解決,我的學(xué)習(xí)能力很強(qiáng),我相信可以很快融入公司的企業(yè)文化,進(jìn)入工作狀態(tài)。
嗯??,我想就這些吧。
這個(gè)回答范例開(kāi)頭第一句話就讓人覺(jué)得很自然,因?yàn)檫@個(gè)求職者所說(shuō)的話恰恰表達(dá)了一般人聽(tīng)到這個(gè)問(wèn)題后的心理狀態(tài),還有你一定會(huì)有一個(gè)思考的時(shí)間,因?yàn)?,誰(shuí)也不會(huì)立刻說(shuō)出自己的缺點(diǎn)。
后面說(shuō)出的幾個(gè)缺點(diǎn)都是一環(huán)套一環(huán)的,說(shuō)了自己“比較執(zhí)著”,但又說(shuō)自己其實(shí)是“比較愛(ài)鉆研”,說(shuō)自己總是“按部就班”,但又補(bǔ)充了其實(shí)那是“按照主管的要求完成任務(wù)”,這時(shí)候,如果用人單位覺(jué)得,此人是不是沒(méi)有“創(chuàng)新思維”的時(shí)候,馬上就補(bǔ)充道“在自己的范圍內(nèi)有創(chuàng)新意識(shí)”,至于“沒(méi)有擴(kuò)展給其他同事”這件事,其實(shí)無(wú)關(guān)緊要,干脆就賣(mài)給HR吧。
以上回答確實(shí)賣(mài)弄了些“技巧”,相信HR也一定能看的出來(lái),但是,即使看出來(lái)了也無(wú)妨,HR也會(huì)心領(lǐng)神會(huì),知道你是一個(gè)比較善于溝通并且善于表達(dá)的人。
人物2:你未來(lái)的主管
當(dāng)見(jiàn)到未來(lái)主管的時(shí)候,往往是應(yīng)聘者已經(jīng)過(guò)了HR那一關(guān),或者應(yīng)聘者已經(jīng)過(guò)了筆試的那一關(guān),因此見(jiàn)到這位人物意味著距離成功已經(jīng)向前進(jìn)了一步。
“人物2”的面試也有他的目的,他是和你在日常工作中接觸最多的人,作為你的直接上司,他需要在工作中經(jīng)常給你分配任務(wù),他需要對(duì)他的主管負(fù)責(zé),因此,他招聘的這個(gè)人選必須是可以幫助他完成他整個(gè)Team的目標(biāo)的人。
往往那個(gè)吸引你來(lái)面試的“招聘啟示”就是這個(gè)人物所撰寫(xiě)的,因此,其實(shí)在你和他見(jiàn)面以前,早已經(jīng)通過(guò)“招聘啟示”和他有過(guò)交往了。因此,從“招聘啟示”中就可以初顯這位主管的端倪。
注意,主管同志并不是人事領(lǐng)域的高手,不會(huì)用各種語(yǔ)言技巧去發(fā)掘你身上的缺點(diǎn)或者優(yōu)點(diǎn),往往問(wèn)題都是實(shí)打?qū)嵉模蛘弑容^一針見(jiàn)血的,而且,更偏重于日常工作。
那么,我們下面和他過(guò)過(guò)招。
常見(jiàn)提問(wèn)1:請(qǐng)你自我介紹一下
這個(gè)問(wèn)題,HR也問(wèn)過(guò)了,到他那里有可能還會(huì)問(wèn),主管問(wèn)這個(gè)問(wèn)題和HR雖然問(wèn)的問(wèn)題一致,但是,其目的并不是完全相同的。
他不僅僅想考察一下你的表達(dá)能力,同時(shí)還想考察一下你思路的清晰程度。
我們?cè)诨卮鹚膯?wèn)題前,一定要想清楚一件事:他是該技術(shù)領(lǐng)域的高手,就是我們“程序員修煉三境界”中描述的“第二層境界”的那個(gè)人物,如果還想更清楚的了解這個(gè)人物,可以去重新看看前面的那個(gè)章節(jié)。
這個(gè)自我介紹最好說(shuō)的較為簡(jiǎn)潔,不要過(guò)分炫耀自己的技術(shù)如何如何強(qiáng),免得引起這位主管的興趣,引起他的技術(shù)興趣沒(méi)有什么好處,只會(huì)帶來(lái)更多的技術(shù)問(wèn)題的發(fā)問(wèn)。
常見(jiàn)提問(wèn)2:你最引以為自豪的項(xiàng)目是什么?
他問(wèn)這個(gè)問(wèn)題的意圖是想考察你的成長(zhǎng)路徑和編程習(xí)慣,因?yàn)?,最讓你自豪的?xiàng)目往往是你成長(zhǎng)最快的項(xiàng)目,那個(gè)成長(zhǎng)最快的項(xiàng)目往往會(huì)給你今后的編程習(xí)慣留下很多痕跡。
所以,通過(guò)你對(duì)那個(gè)引以為豪的項(xiàng)目的描述,有經(jīng)驗(yàn)的他會(huì)很快鎖定你技術(shù)成長(zhǎng)中的缺陷和閃光點(diǎn),從而判斷是否能夠“為我所用”。
你最好拿出一個(gè)自己最擅長(zhǎng)技術(shù)的那個(gè)項(xiàng)目進(jìn)行介紹,這個(gè)項(xiàng)目最好能夠比較貼近招聘要求的那些指標(biāo)。如果,沒(méi)有做過(guò)什么有規(guī)模的正規(guī)項(xiàng)目,你就拿些自己非常擅長(zhǎng)或者有創(chuàng)意的開(kāi)發(fā)作品來(lái)說(shuō)。這樣做的好處是,他聽(tīng)完你的介紹后,會(huì)接下來(lái)進(jìn)行提問(wèn),他所有發(fā)問(wèn),你都成竹在胸了。
切忌拿一個(gè)別人的項(xiàng)目,或者自己參與很少的項(xiàng)目來(lái)介紹,如果這樣的話,一旦他深入的詢(xún)問(wèn)這個(gè)項(xiàng)目的問(wèn)題,很可能你會(huì)所答非所問(wèn),反而造成更嚴(yán)重的影響。你大可以和他大談特談你在那個(gè)項(xiàng)目中獲得的經(jīng)驗(yàn),那會(huì)引起此君的共鳴,有可能的話,說(shuō)出一些你自己的小技巧,他會(huì)很高興。
常見(jiàn)提問(wèn)3:如果我錄用你,你將怎樣開(kāi)展工作
他問(wèn)這個(gè)問(wèn)題的意圖是,希望看看你對(duì)這個(gè)職位工作展開(kāi)的一些設(shè)想,仍然是“實(shí)打?qū)崱睆墓ぷ鞒霭l(fā)來(lái)提問(wèn)的。所以,你在回答這個(gè)問(wèn)題的時(shí)候也要“實(shí)打?qū)崱?,切忌虛無(wú)縹緲的一通“高、大、全”。
一般要列出自己的入職之后的工作計(jì)劃,而這些計(jì)劃需要詳盡,同時(shí)需要體現(xiàn)出你工作的嚴(yán)謹(jǐn)性,也不能是想當(dāng)然的說(shuō)出一些與工作無(wú)關(guān)的計(jì)劃,這都有可能適得其反。
回答范例:
針對(duì)這個(gè)如何展開(kāi)工作的問(wèn)題,我目前僅僅是對(duì)咱們公司的大體情況有一個(gè)了解,因此,對(duì)這個(gè)職位的工作性質(zhì)僅僅是自己的一個(gè)理解。
所以呢,我也不知道是否合適,我只能說(shuō)一個(gè)大概。
作為這個(gè)職位而言,我想我首先要對(duì)本公司的主營(yíng)業(yè)務(wù)要有一個(gè)相當(dāng)?shù)牧私?,了解我們公司的業(yè)務(wù)組成部分、業(yè)務(wù)的發(fā)展方向、我們面向的客戶性質(zhì)等等。
第二,我要了解所屬部門(mén)在公司中的地位,以及部門(mén)的工作目標(biāo),從而確定自身的工作努力方向。
第三,了解我參與項(xiàng)目的開(kāi)發(fā)方式,架構(gòu)方式,緊密配合領(lǐng)導(dǎo)工作,盡快投入具體的開(kāi)發(fā)工作。
這就是我開(kāi)展工作的計(jì)劃。
從大到小的方式進(jìn)行了解,這么說(shuō)可以讓領(lǐng)導(dǎo)知道你不是一個(gè)盲目工作的人,而是一個(gè)按部就班,穩(wěn)扎穩(wěn)打的人,使人覺(jué)得和你合作很踏實(shí)。另外,一定要強(qiáng)調(diào)所屬項(xiàng)目或部門(mén)的目標(biāo),因?yàn)檫@關(guān)系到面試你的主管的切身利益。最后,強(qiáng)調(diào)“盡快”投入開(kāi)發(fā)工作,這樣,領(lǐng)導(dǎo)就放心了,你不是一個(gè)“只了解,不工作”的人。
面對(duì)主管唯一要盡量表現(xiàn)的就是,你看起來(lái)非常像一個(gè)“工具”,入職后馬上就可以發(fā)揮作用。
人物3:主管的主管
遇到“主管的主管”的時(shí),往往已經(jīng)是復(fù)試,這說(shuō)明基本上已經(jīng)是最后一關(guān)了。但要注意,這個(gè)最后一關(guān)是非常關(guān)鍵的一“關(guān)”。因?yàn)?,往往如果你未?lái)的主管在公司中某個(gè)專(zhuān)業(yè)夠權(quán)威的話,他的主管一般不會(huì)管招聘的事情。因此,你看到這位“老大”的原因,多半是你未來(lái)的那位主管的專(zhuān)業(yè)地位還沒(méi)有“穩(wěn)定”。
最后的“搏殺”
過(guò)程大概是這樣的,一般會(huì)將兩個(gè)或三個(gè)人提交給“老大”,讓“老大”定奪,去選擇其中的一個(gè)人,因此,這個(gè)階段是一個(gè)最后的“搏殺”關(guān)鍵階段。老大”關(guān)注的問(wèn)題:成本+人員素質(zhì)
所以,我們?cè)诤汀袄洗蟆边^(guò)招的時(shí)候,一定要注意自己的言行,切忌不要穿“奇裝異服”,或者男士留有個(gè)性的頭發(fā)或胡子,總之一定要讓人看起來(lái)特別的“平?!?,雖然不是“西裝革履”但也要“衣冠整潔”。
因?yàn)?,老板們最不喜歡“個(gè)性”員工,而最喜歡的是“優(yōu)秀”的普通員工。
清華大學(xué)出版社《Java程序員,上班那點(diǎn)事兒》作者:鐘聲 章節(jié):1.2.2。
本文來(lái)自CSDN博客,轉(zhuǎn)載請(qǐng)http://blog.csdn.net/useway/archive/2009/08/02/4402385.aspx
標(biāo)
明
出
處
:
第五篇:Java程序員面試
Java程序員面試三十二問(wèn)
第一,談?wù)刦inal,finally,finalize的區(qū)別。
Fanal 修飾符 可以修飾類(lèi),屬性和方法。被修飾的類(lèi)不可以派生子類(lèi),不能被作為父類(lèi)被繼承。它修飾的屬性和方法必須在聲明的時(shí)候給定初值,以后不能修改。
Fanaly 在捕獲異常的時(shí)候最后執(zhí)行的語(yǔ)句,可以不寫(xiě)。
Fanalize 是Object類(lèi)中定義的,所以所有的類(lèi)都繼承了它,這個(gè)方法是垃圾收集器將對(duì)象從內(nèi)存中清除出去之前做必要的清理工作。
第二,Anonymous Inner Class(匿名內(nèi)部類(lèi))是否可以extends(繼承)其它類(lèi),是否可以implements(實(shí)現(xiàn))interface(接口)?
可以繼承其他類(lèi),也可以實(shí)現(xiàn)其他接口。匿名內(nèi)部類(lèi)在swing中比較常見(jiàn)。
第三,Static Nested Class 和 Inner Class的不同,說(shuō)得越多越好(面試題有的很籠統(tǒng))。
靜態(tài)內(nèi)部類(lèi),普通的內(nèi)部類(lèi)
靜態(tài)內(nèi)部類(lèi)是不能直接調(diào)用外部的類(lèi),可以通過(guò)外部類(lèi)的引用來(lái)調(diào)用
非靜態(tài)類(lèi)inner class 可以自由的引用外部類(lèi)的屬性和方法,但是它與一個(gè)實(shí)例綁定在了一起,不可以定義靜態(tài)的屬性、方法。
第四,&和&&的區(qū)別。
&和&&都是java中的邏輯運(yùn)算符
&兩邊的表達(dá)式的結(jié)果都是true的,整個(gè)的運(yùn)算結(jié)果才是true,只要有任意一個(gè)是false,其結(jié)果就是false的
&&是短路與,既第一個(gè)表達(dá)式是false 就不用判斷第二個(gè)表達(dá)式,結(jié)果就是false
第五,HashMap和Hashtable的區(qū)別。
它們實(shí)現(xiàn)了將key 映射到 value的對(duì)象,鍵和值都是對(duì)象,不能有重復(fù)的鍵,可以有重復(fù)的值
Hashtable是基于陳舊的Dictionary類(lèi)的,HashMap是Map接口的一個(gè)實(shí)現(xiàn) HashMap可以定義null key 和null 的value,而HashTable不可以
HashMap是線程不安全的,而HashTable線程安全,所以HashMap的效率比HashTable的要高些
第六,Collection 和 Collections的區(qū)別。
Collection是所有集合的父接口。
List 和set是Collection的子接口
Collections是操作有關(guān)集合的工具類(lèi)。
第七,什么時(shí)候用assert.斷言 Debug模式下才有效
第八,GC是什么? 為什么要有GC?
GC是垃圾收集器。程序員不用擔(dān)心內(nèi)存管理,因?yàn)槔占鲿?huì)自動(dòng)進(jìn)行管理。
第九,String s = new String(“xyz”);創(chuàng)建了幾個(gè)String Object?
2個(gè),一個(gè)是引用對(duì)象s 還有字符串對(duì)象xyz
第十,Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
-11 第十一,short s1 = 1; s1 = s1 + 1;有什么錯(cuò)? short s1 = 1; s1 += 1;有什么錯(cuò)?
S1 =s1+1 會(huì)出錯(cuò),因?yàn)?默認(rèn)為int型。相加會(huì)出錯(cuò)。
S1+=1;雖然是一個(gè)意思,但是在jvm里面是不同的方法做的,是運(yùn)算符重載,所以是不一樣的。
第十二,sleep()和 wait()有什么區(qū)別?
Sleep()是線程的休眠,方法里邊要有毫秒值。意思是過(guò)了多少毫秒后會(huì)執(zhí)行一次。不釋放系統(tǒng)資源
Wait()是線程的等待,必須喚醒notify才能夠執(zhí)行,不占用系統(tǒng)的資源
第十三,Java有沒(méi)有g(shù)oto?
沒(méi)有,不過(guò)它是java語(yǔ)言中的保留字
第十四,數(shù)組有沒(méi)有l(wèi)ength()這個(gè)方法? String有沒(méi)有l(wèi)ength()這個(gè)方法?
數(shù)組中沒(méi)有l(wèi)ength()方法,有l(wèi)ength屬性。
String有l(wèi)ength()方法,字符串的長(zhǎng)度。
第十五,Overload和Override的區(qū)別。Overloaded的方法是否可以改變返回值的類(lèi)型?
Overload是重載 重載的方法名字必須相同,參數(shù)表不同,可以改變返回類(lèi)型
Override 是重寫(xiě) 重寫(xiě)是子類(lèi)繼承父類(lèi)的虛方法重新定義參數(shù)表要相同,返回類(lèi)型也要和父類(lèi)相同。
Overloaded可以改變返回類(lèi)型
第十六,Set里的元素是不能重復(fù)的,那么用什么方法來(lái)區(qū)分重復(fù)與否呢? 是用==還是equals()? 它們有何區(qū)別?
set里的元素是不能重復(fù)的,用iterator()方法來(lái)區(qū)分重復(fù)與否。
equals 方法(是String類(lèi)從它的超類(lèi)Object中繼承的)被用來(lái)檢測(cè)兩個(gè)對(duì)象是否相等,即兩個(gè)對(duì)象的內(nèi)容是否相等。
==用于比較引用和比較基本數(shù)據(jù)類(lèi)型時(shí)具有不同的功能: 比較基本數(shù)據(jù)類(lèi)型,如果兩個(gè)值相同,則結(jié)果為true
而在比較引用時(shí),如果引用指向內(nèi)存中的同一對(duì)象,結(jié)果為true
第十八,error和exception有什么區(qū)別?
Error 是編輯時(shí)出現(xiàn)的錯(cuò)誤,不能通過(guò)編譯,也就是不能生成.class的文件
Exception是異常,異常是可以避免和捕獲的,程序能夠通過(guò)編譯。第十九,List,Set,Map是否繼承自Collection接口?
List set
是繼承Collection 接口的。Map不是 第二十,abstract class和interface有什么區(qū)別?
abstract class是抽象類(lèi),可以定義普通方法,也可以定義只有方法名,沒(méi)有實(shí)現(xiàn)的方法。抽象類(lèi)是被繼承的 interface是接口,所有的方法都是抽象方法。實(shí)現(xiàn)接口就是重寫(xiě)接口里的所有方法。
第二十一,abstract的method是否可同時(shí)是static,是否可同時(shí)是native,是否可同時(shí)是synchronized?
Abstract和method是不可以static的,因?yàn)槌橄箢?lèi)是要被繼承的。
native是映射本地方法,不存在被子類(lèi)繼承,所以也不能與abstract混用
抽象類(lèi)沒(méi)有具體的實(shí)現(xiàn),覺(jué)得定義成synchronized是沒(méi)有必要的,修飾具體的方法
才有意義
第二十二,接口是否可繼承接口? 抽象類(lèi)是否可實(shí)現(xiàn)(implements)接口? 抽象類(lèi)是否可繼承實(shí)體類(lèi)(concrete class)?
接口可以繼承接口,extends
抽象類(lèi)可以實(shí)現(xiàn)接口。
抽象類(lèi)是可以繼承實(shí)體類(lèi)的,但實(shí)體類(lèi)中要有明確的構(gòu)造函數(shù)。第二十三,啟動(dòng)一個(gè)線程是用run()還是start()?
啟動(dòng)線程要是start()方法。
第二十四,構(gòu)造器Constructor是否可被override?
構(gòu)造器不能被重寫(xiě)的,可以重載。第二十五,是否可以繼承String類(lèi)?
不能,String是final的。
第二十六,當(dāng)一個(gè)線程進(jìn)入一個(gè)對(duì)象的一個(gè)synchronized方法后,其它線程是否可進(jìn)入此對(duì)象的其它方法?
如果其他的方法不是同步的,是可以進(jìn)去的。
第二十七,try {}里有一個(gè)return語(yǔ)句,那么緊跟在這個(gè)try后的finally {}里的code會(huì)不會(huì)被執(zhí)行,什么時(shí)候被執(zhí)行,在return前還是后?
finally里的代碼會(huì)執(zhí)行,在return之前執(zhí)行
第二十八,編程題: 用最有效率的方法算出2乘以8等於幾?
2<<3 第十七,給我一個(gè)你最常見(jiàn)到的runtime exception.NullPointerException 空指針
ArrayIndexOutOfBoundException
數(shù)組下標(biāo)越界
ClassCastException 造型異常 第二十九,兩個(gè)對(duì)象值相同(x.equals(y)== true),但卻可有不同的hash code,這句話對(duì)不對(duì)?
這是對(duì)的,equals方法是比較兩個(gè)值。而不是內(nèi)存地址。
第三十,當(dāng)一個(gè)對(duì)象被當(dāng)作參數(shù)傳遞到一個(gè)方法后,此方法可改變這個(gè)對(duì)象的屬性,并可返回變化后的結(jié)果,那么這里到底是值傳遞還是引用傳遞?
第三十一,swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
第三十二,編程題: 寫(xiě)一個(gè)Singleton出來(lái)。
Public class Singleton{ Private static Singleton s = new Singleton();Private Singleton(){ } Public static Singleton getInstance(){ Return s;}
}