第一篇:Java程序員面試可能遭遇的30個技術(shù)陷阱解析
Java程序員面試可能遭遇的30個技術(shù)陷阱解析
第一,談?wù)刦inal, finally, finalize的區(qū)別。
最常被問到。final修飾符(關(guān)鍵字)如果一個類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被繼承。因此一個類不能既被聲明為abstract的,又被聲明為final的。將變量或方法聲明為final,可以保證它們在使用中不被改變。被聲明為final的變量必須在聲明時給定初值,而在以后的引用中只能讀取,不可修改。被聲明為final的方法也同樣只能使用,不能重載。
Finally在異常處理時提供finally塊來執(zhí)行任何清除操作。如果拋出一個異常,那么相匹配的catch子句就會執(zhí)行,然后控制就會進(jìn)入finally塊(如果有的話)。
finalize方法名。Java技術(shù)允許使用finalize()方法在垃圾收集器將對象從內(nèi)存中清除出去之前做必要的清理工作。這個方法是由垃圾收集器在確定這個對象沒有被引用時對這個對象調(diào)用的。它是在Object類中定義的,因此所有的類都繼承了它。子類覆蓋finalize()方法以整理系統(tǒng)資源或者執(zhí)行其他清理工作。finalize()方法是在垃圾收集器刪除對象之前對這個對象調(diào)用的。第二,Anonymous Inner Class(匿名內(nèi)部類)是否可以extends(繼承)其它類,是否可以implements(實現(xiàn))interface(接口)?
匿名的內(nèi)部類是沒有名字的內(nèi)部類。不能extends(繼承)其它類,但一個內(nèi)部類可以作為一個接口,由另一個內(nèi)部類實現(xiàn)。
第三,Static Nested Class和Inner Class的不同,說得越多越好(面試題有的很籠統(tǒng))。
Nested Class(一般是C++的說法),Inner Class(一般是JAVA的說法)。Java內(nèi)部類與C++嵌套類最大的不同就在于是否有指向外部的引用上。
注:靜態(tài)內(nèi)部類(Inner Class)意味著
1創(chuàng)建一個static內(nèi)部類的對象,不需要一個外部類對象
2不能從一個static內(nèi)部類的一個對象訪問一個外部類對象
第四,&和&&的區(qū)別。
這個問得很少。&是位運(yùn)算符。&&是布爾邏輯運(yùn)算符
第五,HashMap和Hashtable的區(qū)別。
常問。都屬于Map接口的類,實現(xiàn)了將惟一鍵映射到特定的值上。
HashMap類沒有分類或者排序。它允許一個null鍵和多個null值。
Hashtable類似于HashMap,但是不允許null鍵和null值。它也比HashMap慢,因為它是同步的。第六,Collection和Collections的區(qū)別。
你千萬別說一個是單數(shù)一個是復(fù)數(shù)。
Collections是個java.util下的類,它包含有各種有關(guān)集合操作的靜態(tài)方法。
Collection是個java.util下的接口,它是各種集合結(jié)構(gòu)的父接口。
第七,什么時候用assert。
API級的技術(shù)人員有可能會問這個。
斷言是一個包含布爾表達(dá)式的語句,在執(zhí)行這個語句時假定該表達(dá)式為true。如果表達(dá)式計算為false,那么系統(tǒng)會報告一個Assertionerror。它用于調(diào)試目的:
assert(a > 0);// throws an Assertionerror if a <= 0
斷言可以有兩種形式:
assert Expression1;
assert Expression1 : Expression2;
Expression1應(yīng)該總是產(chǎn)生一個布爾值。
Expression2可以是得出一個值的任意表達(dá)式。這個值用于生成顯示更多調(diào)試信息的String消息。
斷言在默認(rèn)情況下是禁用的。要在編譯時啟用斷言,需要使用source 1.4標(biāo)記:
javac-source 1.4 Test.java
要在運(yùn)行時啟用斷言,可使用-enableassertions或者-ea標(biāo)記。
要在運(yùn)行時選擇禁用斷言,可使用-da或者-disableassertions標(biāo)記。
要系統(tǒng)類中啟用斷言,可使用-esa或者-dsa標(biāo)記。還可以在包的基礎(chǔ)上啟用或者禁用斷言??梢栽陬A(yù)計正常情況下不會到達(dá)的任何位置上放置斷言。斷言可以用于驗證傳遞給私有方法的參數(shù)。不過,斷言不應(yīng)該用于驗證傳遞給公有方法的參數(shù),因為不管是否啟用了斷言,公有方法都必須檢查其參數(shù)。不過,既可以在公有方法中,也可以在非公有方法中利用斷言測試后置條件。另外,斷言不應(yīng)該以任何方式改變程序的狀態(tài)。
第八,GC是什么?為什么要有GC?
基礎(chǔ)。GC是垃圾收集器。Java程序員不用擔(dān)心內(nèi)存管理,因為垃圾收集器會自動進(jìn)行管理。要請求垃圾收集,可以調(diào)用下面的方法之一:
System.gc()
Runtime.getRuntime().gc()
第九,String s = new String(xyz);創(chuàng)建了幾個String Object?
兩個對象,一個是“xyx”,一個是指向“xyx”的引用對象s
第十,Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
Math.round(11.5)返回(long)12,Math.round(-11.5)返回(long)-11;
第十一,short s1 = 1;s1 = s1 + 1;有什么錯? short s1 = 1;s1 += 1;有什么錯?
short s1 = 1;s1 = s1 + 1;有錯,s1是short型,s1+1是int型,不能顯式轉(zhuǎn)化為short型??尚薷臑閟1 =(short)(s1 + 1)。short s1 = 1;s1 += 1正確
面試題都是很變態(tài)的,要做好受虐的準(zhǔn)備。
第十二,sleep()和wait()有什么區(qū)別?
搞線程的最愛。sleep()方法是使線程停止一段時間的方法。在sleep時間間隔期滿后,線程不一定立即恢復(fù)執(zhí)行。這是因為在那個時刻,其它線程可能正在運(yùn)行而且沒有被調(diào)度為放棄執(zhí)行,除非
(a)“醒來”的線程具有更高的優(yōu)先級
(b)正在運(yùn)行的線程因為其它原因而阻塞。
wait()是線程交互時,如果線程對一個同步對象x發(fā)出一個wait()調(diào)用,該線程會暫停執(zhí)行,被調(diào)對象進(jìn)入等待狀態(tài),直到被喚醒或等待時間到。
第十三,Java有沒有g(shù)oto?
Goto?java中的保留字,現(xiàn)在沒有在java中使用。
很十三的問題,如果哪個面試的問到這個問題,我勸你還是別進(jìn)這家公司。
第十四,數(shù)組有沒有l(wèi)ength()這個方法? String有沒有l(wèi)ength()這個方法?
數(shù)組沒有l(wèi)ength()這個方法,有l(wèi)ength的屬性。
String有有l(wèi)ength()這個方法。
第十五,Overload和Override的區(qū)別。Overloaded的方法是否可以改變返回值的類型?
常問。方法的重寫Overriding和重載Overloading是Java多態(tài)性的不同表現(xiàn)。重寫Overriding是父類與子類之間多態(tài)性的一種表現(xiàn),重載Overloading是一個類中多態(tài)性的一種表現(xiàn)。如果在子類中定義某方法與其父類有相同的名稱和參數(shù),我們說該方法被重寫(Overriding)。子類的對象使用這個方法時,將調(diào)用子類中的定義,對它而言,父類中的定義如同被“屏蔽”了。如果在一個類中定義了多個同名的方法,它們或有不同的參數(shù)個數(shù)或有不同的參數(shù)類型,則稱為方法的重載(Overloading)。Overloaded的方法是可以改變返回值的類型。
第十六,Set里的元素是不能重復(fù)的,那么用什么方法來區(qū)分重復(fù)與否呢?是用==還是equals()?它們有何區(qū)別?
Set里的元素是不能重復(fù)的,那么用iterator()方法來區(qū)分重復(fù)與否。equals()是判讀兩個Set是否
相等。
equals()和==方法決定引用值是否指向同一對象
equals()在類中被覆蓋,為的是當(dāng)兩個分離的對象的內(nèi)容和類型相配的話,返回真值。第十七,給我一個你最常見到的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 如果你這個答不出來,面試的人會認(rèn)為你沒有實際編程經(jīng)驗。
第十八,error和exception有什么區(qū)別?
error表示恢復(fù)不是不可能但很困難的情況下的一種嚴(yán)重問題。比如說內(nèi)存溢出。不可能指望程序能處理這樣的情況。
exception表示一種設(shè)計或?qū)崿F(xiàn)問題。也就是說,它表示如果程序運(yùn)行正常,從不會發(fā)生的情況。第十九,List, Set, Map是否繼承自Collection接口?
List,Set是
Map不是
第二十,abstract class和interface有什么區(qū)別?
常問。聲明方法的存在而不去實現(xiàn)它的類被叫做抽象類(abstract class),它用于要創(chuàng)建一個體現(xiàn)某些基本行為的類,并為該類聲明方法,但不能在該類中實現(xiàn)該類的情況。不能創(chuàng)建abstract類的實例。然而可以創(chuàng)建一個變量,其類型是一個抽象類,并讓它指向具體子類的一個實例。不能有抽象構(gòu)造函數(shù)或抽象靜態(tài)方法。Abstract類的子類為它們父類中的所有抽象方法提供實現(xiàn),否則它們也是抽象類為。取而代之,在子類中實現(xiàn)該方法。知道其行為的其它類可以在類中實現(xiàn)這些方法。
接口(interface)是抽象類的變體。在接口中,所有方法都是抽象的。多繼承性可通過實現(xiàn)這樣的接口而獲得。接口中的所有方法都是抽象的,沒有一個有程序體。接口只可以定義static final成員變量。接口的實現(xiàn)與子類相似,除了該實現(xiàn)類不能從接口定義中繼承行為。當(dāng)類實現(xiàn)
特殊接口時,它定義(即將程序體給予)所有這種接口的方法。然后,它可以在實現(xiàn)了該接口的類的任何對象上調(diào)用接口的方法。由于有抽象類,它允許使用接口名作為引用變量的類型。通常的動態(tài)聯(lián)編將生效。引用可以轉(zhuǎn)換到接口類型或從接口類型轉(zhuǎn)換,instanceof運(yùn)算符可以用來決定某對象的類是否實現(xiàn)了接口。
第二十一,abstract的method是否可同時是static,是否可同時是native,是否可同時是synchronized?
都不能
第二十二,接口是否可繼承接口?抽象類是否可實現(xiàn)(implements)接口?抽象類是否可繼承實體類(concrete class)?
接口可以繼承接口。抽象類可以實現(xiàn)(implements)接口,抽象類是否可繼承實體類,但前提是實體類必須有明確的構(gòu)造函數(shù)。
第二十三,啟動一個線程是用run()還是start()?
啟動一個線程是調(diào)用start()方法,使線程所代表的虛擬處理機(jī)處于可運(yùn)行狀態(tài),這意味著它可以由JVM調(diào)度并執(zhí)行。這并不意味著線程就會立即運(yùn)行。run()方法可以產(chǎn)生必須退出的標(biāo)志來停止一個線程。
第二十四,構(gòu)造器Constructor是否可被override?
構(gòu)造器Constructor不能被繼承,因此不能重寫Overriding,但可以被重載Overloading。第二十五,是否可以繼承String類?
String類是final類故不可以繼承
第二十六,當(dāng)一個線程進(jìn)入一個對象的一個synchronized方法后,其它線程是否可進(jìn)入此對象的其它方法?
可以,但是其它線程不可以進(jìn)入此對象的這個synchronized方法
第二十七,try {}里有一個return語句,那么緊跟在這個try后的finally {}里的code會不會被執(zhí)行,什么時候被執(zhí)行,在return前還是后?
會執(zhí)行,在return前執(zhí)行
第二十八,編程題:用最有效率的方法算出2乘以8等於幾?
有C背景的程序員特別喜歡問這種問題。2 << 3
第二十九,兩個對象值相同(x.equals(y)== true),但卻可有不同的hash code,這句話對不對?
不對,有相同的hash code。
第三十,當(dāng)一個對象被當(dāng)作參數(shù)傳遞到一個方法后,此方法可改變這個對象的屬性,并可返回變化后的結(jié)果,那么這里到底是值傳遞還是引用傳遞?
是值傳遞。Java編程語言只由值傳遞參數(shù)。當(dāng)一個對象實例作為一個參數(shù)被傳遞到方法中時,參數(shù)的值就是對該對象的引用。對象的內(nèi)容可以在被調(diào)用的方法中改變,但對象的引用是永遠(yuǎn)不會改變的。
第二篇:Java程序員面試可能遭遇的技術(shù)陷阱
Java程序員面試可能遭遇的技術(shù)陷阱
找工作要面試,有面試就有對付面試的辦法。以下是晉商貸小編為您盤點(diǎn)的30個Java程序員面試可能遭遇的技術(shù)陷阱
第一,談?wù)刦inal, finally, finalize的區(qū)別。最常被問到。
第二,Anonymous Inner Class(匿名內(nèi)部類)是否可以extends(繼承)其它類,是否可以implements(實現(xiàn))interface(接口)?
第三,Static Nested Class和Inner Class的不同,說得越多越好(面試題有的很籠統(tǒng))。第四,&和&&的區(qū)別。這個問得很少。
第五,HashMap和Hashtable的區(qū)別。常問。
第六,Collection和Collections的區(qū)別。你千萬別說一個是單數(shù)一個是復(fù)數(shù)。第七,什么時候用assert。API級的技術(shù)人員有可能會問這個。第八,GC是什么?為什么要有GC? 基礎(chǔ)。
第九,String s = new String(xyz);創(chuàng)建了幾個String Object? 第十,Math.round(11.5)等於多少? Math.round(-11.5)等於多少? 第十一,short s1 = 1;s1 = s1 + 1;有什么錯? short s1 = 1;s1 += 1;有什么錯?
面試題都是很變態(tài)的,要做好受虐的準(zhǔn)備。第十二,sleep()和wait()有什么區(qū)別? 搞線程的最愛。
第十三,Java有沒有g(shù)oto?
很十三的問題,如果哪個面試的問到這個問題,我勸你還是別進(jìn)這家公司。
第十四,數(shù)組有沒有l(wèi)ength()這個方法? String有沒有l(wèi)ength()這個方法? 第十五,Overload和Override的區(qū)別。Overloaded的方法是否可以改變返回值的類型? 常問。
第十六,Set里的元素是不能重復(fù)的,那么用什么方法來區(qū)分重復(fù)與否呢?是用==還是equals()?它們有何區(qū)別?
第十七,給我一個你最常見到的runtime exception。如果你這個答不出來,面試的人會認(rèn)為你沒有實際編程經(jīng)驗。第十八,error和exception有什么區(qū)別?
第十九,List, Set, Map是否繼承自Collection接口? 第二十,abstract class和interface有什么區(qū)別? 常問。
第二十一,abstract的method是否可同時是static,是否可同時是native,是否可同時是synchronized?
第二十二,接口是否可繼承接口?抽象類是否可實現(xiàn)(implements)接口?抽象類是否可繼承實體類(concrete class)? 第二十三,啟動一個線程是用run()還是start()? 第二十四,構(gòu)造器Constructor是否可被override? 第二十五,是否可以繼承String類?
第二十六,當(dāng)一個線程進(jìn)入一個對象的一個synchronized方法后,其它線程是否可進(jìn)入此對象的其它方法?
第二十七,try {}里有一個return語句,那么緊跟在這個try后的finally {}里的code會不會被執(zhí)行,什么時候被執(zhí)行,在return前還是后?
第二十八,編程題:用最有效率的方法算出2乘以8等於幾? 有C背景的程序員特別喜歡問這種問題。
第二十九,兩個對象值相同(x.equals(y)== true),但卻可有不同的hash code,這句話對不對?
第三十,當(dāng)一個對象被當(dāng)作參數(shù)傳遞到一個方法后,此方法可改變這個對象的屬性,并可返回變化后的結(jié)果,那么這里到底是值傳遞還是引用傳遞?
第三篇:IT職場程序員 Java面試中的陷阱
IT職場:程序員Java面試中的陷阱
找工作要面試,有面試就有對付面試的辦法。以下一些題目來自我和我朋友痛苦的面試經(jīng)歷,提這些問題的公司包括IBM, E*Trade, Siebel,Motorola, SUN,以及其它大小公司。
面試是沒什么道理可講的,它的題目有的不合情理、脫離實際。有在紙上寫的,有當(dāng)面考你的,也有在電話里問的,給你IDE的估計很少(否則你趕快去買彩票,說不定中)。所以如果你看完此文后,請不要抱怨說這些問題都能用IDE來解決。你必須在任何情況下準(zhǔn)確回答這些問題,在面試中如果出現(xiàn)一兩題回答不準(zhǔn)確很有可能你就被拒之門外了。
當(dāng)然這些都是Java的基本題,那些面試的人大多數(shù)不會問你Hibernate有多先進(jìn),Eclipse的三個組成部分,或command design pattern,他們都是老一輩了,最喜歡問的就是基礎(chǔ)知識。別小看了這些基礎(chǔ),我朋友水平一流,結(jié)果就栽在一到基礎(chǔ)知識的問題下,和高薪無緣。
好了廢話少說,開始正題。
第一,談?wù)刦inal, finally, finalize的區(qū)別。
最常被問到。
第二,Anonymous Inner Class(匿名內(nèi)部類)是否可以extends(繼承)其它類,是否可以implements(實現(xiàn))interface(接口)?
第三,Static Nested Class和Inner Class的不同,說得越多越好(面試題有的很籠統(tǒng))。
第四,&和&&的區(qū)別。
這個問得很少。
第五,HashMap和Hashtable的區(qū)別。
常問。
第六,Collection和Collections的區(qū)別。
你千萬別說一個是單數(shù)一個是復(fù)數(shù)。
第七,什么時候用assert。
API級的技術(shù)人員有可能會問這個。
第八,GC是什么?為什么要有GC?
基礎(chǔ)。
第九,String s = new String(xyz);創(chuàng)建了幾個String Object?
第十,Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
第十一,short s1 = 1;s1 = s1 + 1;有什么錯? short s1 = 1;s1 += 1;有什么錯?
面試題都是很變態(tài)的,要做好受虐的準(zhǔn)備。
第十二,sleep()和wait()有什么區(qū)別?
搞線程的最愛。
第十三,Java有沒有g(shù)oto?
很十三的問題,如果哪個面試的問到這個問題,我勸你還是別進(jìn)這家公司。
第十四,數(shù)組有沒有l(wèi)ength()這個方法? String有沒有l(wèi)ength()這個方法?
第十五,Overload和Override的區(qū)別。Overloaded的方法是否可以改變返回值的類型?
常問。
第十六,Set里的元素是不能重復(fù)的,那么用什么方法來區(qū)分重復(fù)與否呢?是用==還是equals()?它們有何區(qū)別?
第十七,給我一個你最常見到的runtime exception。
如果你這個答不出來,面試的人會認(rèn)為你沒有實際編程經(jīng)驗。
第十八,error和exception有什么區(qū)別?
第十九,List, Set, Map是否繼承自Collection接口?
第二十,abstract class和interface有什么區(qū)別?
常問。
第二十一,abstract的method是否可同時是static,是否可同時是native,是否可同時是synchronized?
第二十二,接口是否可繼承接口?抽象類是否可實現(xiàn)(implements)接口?抽象類是否可繼承實體類(concrete class)?
第二十三,啟動一個線程是用run()還是start()?
第二十四,構(gòu)造器Constructor是否可被override?
第二十五,是否可以繼承String類?
第二十六,當(dāng)一個線程進(jìn)入一個對象的一個synchronized方法后,其它線程是否可進(jìn)入此對象的其它方法?
第二十七,try {}里有一個return語句,那么緊跟在這個try后的finally {}里的code會不會被執(zhí)行,什么時候被執(zhí)行,在return前還是后?
第二十八,編程題:用最有效率的方法算出2乘以8等於幾?
有C背景的程序員特別喜歡問這種問題。
第二十九,兩個對象值相同(x.equals(y)== true),但卻可有不同的hash code,這句話對不對?
第三十,當(dāng)一個對象被當(dāng)作參數(shù)傳遞到一個方法后,此方法可改變這個對象的屬性,并可返回變化后的結(jié)果,那么這里到底是值傳遞還是引用傳遞?
第三十一,swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
第三十二,編程題:寫一個Singleton出來。
下面是答案
第一,談?wù)刦inal, finally, finalize的區(qū)別。
final—修飾符(關(guān)鍵字)如果一個類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被繼承。因此一個類不能既被聲明為abstract的,又被聲明為final的。將變量或方法聲明為final,可以保證它們在使用中不被改變。被聲明為final的變量必須在聲明時給定初值,而在以后的引用中只能讀取,不可修改。被聲明為final的方法也同樣只能使用,不能重載finally—再異常處理時提供finally塊來執(zhí)行任何清除操作。如果拋出一個異常,那么相匹配的catch子句就會執(zhí)行,然后控制就會進(jìn)入finally塊(如果有的話)。
finalize—方法名。Java技術(shù)允許使用finalize()方法在垃圾收集器將對象從內(nèi)存中清除出去之前做必要的清理工作。這個方法是由垃圾收集器在確定這個對象沒有被引用時對這個對象調(diào)用的。它是在Object類中定義的,因此所有的類都繼承了它。子類覆蓋finalize()方法以整理系統(tǒng)資源或者執(zhí)行其他清理工作。finalize()方法是在垃圾收集器刪除對象之前對這個對象調(diào)用的。
第二,Anonymous Inner Class(匿名內(nèi)部類)是否可以extends(繼承)其它類,是否可以implements(實現(xiàn))interface(接口)?
匿名的內(nèi)部類是沒有名字的內(nèi)部類。不能extends(繼承)其它類,但一個內(nèi)部類可以作為一個接口,由另一個內(nèi)部類實現(xiàn)。
第三,Static Nested Class和Inner Class的不同,說得越多越好(面試題有的很籠統(tǒng))。
Nested Class(一般是C++的說法),Inner Class(一般是JAVA的說法)。Java內(nèi)部類與C++嵌套類最大的不同就在于是否有指向外部的引用上
。具體可見//www.frontfree.net/articles/services/view.asp?id=704&page=1
注:靜態(tài)內(nèi)部類(Inner Class)意味著1創(chuàng)建一個static內(nèi)部類的對象,不需要一個外部類對象,2不能從一個static內(nèi)部類的一個對象訪問一個外部類對象
第四,&和&&的區(qū)別。
&是位運(yùn)算符。&&是布爾邏輯運(yùn)算符。
第五,HashMap和Hashtable的區(qū)別。
都屬于Map接口的類,實現(xiàn)了將惟一鍵映射到特定的值上。
HashMap類沒有分類或者排序。它允許一個null鍵和多個null值。
Hashtable類似于HashMap,但是不允許null鍵和null值。它也比HashMap慢,因為它是同步的。
第六,Collection和Collections的區(qū)別。
Collections是個java.util下的類,它包含有各種有關(guān)集合操作的靜態(tài)方法。
Collection是個java.util下的接口,它是各種集合結(jié)構(gòu)的父接口。
第七,什么時候用assert。
斷言是一個包含布爾表達(dá)式的語句,在執(zhí)行這個語句時假定該表達(dá)式為true。如果表達(dá)式計算為false,那么系統(tǒng)會報告一個
Assertionerror。它用于調(diào)試目的:
assert(a >0);// throws an Assertionerror if a <= 0
斷言可以有兩種形式:
assert Expression1;
assert Expression1: Expression2;
Expression1應(yīng)該總是產(chǎn)生一個布爾值。
Expression2可以是得出一個值的任意表達(dá)式。這個值用于生成顯示更多調(diào)試信息的String消息。
斷言在默認(rèn)情況下是禁用的。要在編譯時啟用斷言,需要使用source 1.4標(biāo)記:
javac-source 1.4 Test.java要在運(yùn)行時啟用斷言,可使用-nableassertions或者-ea標(biāo)記。
要在運(yùn)行時選擇禁用斷言,可使用-da或者-disableassertions標(biāo)記。
要系統(tǒng)類中啟用斷言,可使用-esa或者-dsa標(biāo)記。還可以在包的基礎(chǔ)上啟用或者禁用斷言。
可以在預(yù)計正常情況下不會到達(dá)的任何位置上放置斷言。斷言可以用于驗證傳遞給私有方法的參數(shù)。不過,斷言不應(yīng)該用于驗證傳遞給公有方法的參數(shù),因為不管是否啟用了斷言,公有方法都必須檢查其參數(shù)。不過,既可以在公有方法中,也可以在非公有方法中利用斷言測試后置條件。另外,斷言不應(yīng)該以任何方式改變程序的狀態(tài)。
第八,GC是什么?為什么要有GC?(基礎(chǔ))。
GC是垃圾收集器。Java程序員不用擔(dān)心內(nèi)存管理,因為垃圾收集器會自動進(jìn)行管理。要請求垃圾收集,可以調(diào)用下面的方法之一:
System.gc()
Runtime.getRuntime().gc()
第九,String s = new String(xyz);創(chuàng)建了幾個String Object?
兩個對象,一個是“xyx”,一個是指向“xyx”的引用對象s。
第十,Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
Math.round(11.5)返回(long)12,Math.round(-11.5)返回(long)-11;
第十一,short s1 = 1;s1 = s1 + 1;有什么錯? short s1 = 1;s1 += 1;有什么錯?
short s1 = 1;s1 = s1 + 1;有錯,s1是short型,s1+1是int型,不能顯式轉(zhuǎn)化為short型??尚薷臑閟1 =(short)(s1 + 1)。short s1 = 1;
s1 += 1正確。
第十二,sleep()和wait()有什么區(qū)別?搞線程的最愛sleep()方法是使線程停止一段時間的方法。在sleep時間間隔期滿后,線程不一定立即恢復(fù)執(zhí)行。這是因為在那個時刻,其它線程可能正在運(yùn)行而且沒有被調(diào)度為放棄執(zhí)行,除非(a)“醒來”的線程具有更高的優(yōu)先級(b)正在運(yùn)行的線程因為其它原因而阻塞。wait()是線程交互時,如果線程對一個同步對象x發(fā)出一個wait()調(diào)用,該線程會暫停執(zhí)行,被調(diào)對象進(jìn)入等待狀態(tài),直到被喚醒或等待時間到。
第十三,Java有沒有g(shù)oto?
Goto—java中的保留字,現(xiàn)在沒有在java中使用。
第十四,數(shù)組有沒有l(wèi)ength()這個方法? String有沒有l(wèi)ength()這個方法?
數(shù)組沒有l(wèi)ength()這個方法,有l(wèi)ength的屬性。
String有有l(wèi)ength()這個方法。
第十五,Overload和Override的區(qū)別。Overloaded的方法是否可以改變返回值的類型?
方法的重寫Overriding和重載Overloading是Java多態(tài)性的不同表現(xiàn)。重寫Overriding是父類與子類之間多態(tài)性的一種表現(xiàn),重載Overloading是一個類中多態(tài)性的一種表現(xiàn)。如果在子類中定義某方法與其父類有相同的名稱和參數(shù),我們說該方法被重寫(Overriding)。子類的對象使用這個方法時,將調(diào)用子類中的定義,對它而言,父類中的定義如同被“屏蔽”了。如果在一個類中定義了多個同名的方法,它們或有不同的參
數(shù)個數(shù)或有不同的參數(shù)類型,則稱為方法的重載(Overloading)。Overloaded的方法是可以改變返回值的類型。
第十六,Set里的元素是不能重復(fù)的,那么用什么方法來區(qū)分重復(fù)與否呢?是用==還是equals()?它們有何區(qū)別?
Set里的元素是不能重復(fù)的,那么用iterator()方法來區(qū)分重復(fù)與否。equals()是判讀兩個Set是否相等。
equals()和==方法決定引用值是否指向同一對象equals()在類中被覆蓋,為的是當(dāng)兩個分離的對象的內(nèi)容和類型相配的話,返回真值。
第十七,給我一個你最常見到的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)重問題。比如說內(nèi)存溢出。不可能指望程序能處理這樣的情況。
exception表示一種設(shè)計或?qū)崿F(xiàn)問題。也就是說,它表示如果程序運(yùn)行正常,從不會發(fā)生的情況。
第十九,List, Set, Map是否繼承自Collection接口?
List,Set是
Map不是
第二十,abstract class和interface有什么區(qū)別?
聲明方法的存在而不去實現(xiàn)它的類被叫做抽象類(abstract class),它用于要創(chuàng)建一個體現(xiàn)某些基本行為的類,并為該類聲明方法,但不能在該類中實現(xiàn)該類的情況。不能創(chuàng)建abstract類的實例。然而可以創(chuàng)建一個變量,其類型是一個抽象類,并讓它指向具體子類的一個實例。不能有抽象構(gòu)造函數(shù)或抽象靜態(tài)方法。Abstract類的子類為它們父類中的所有抽象方法提供實現(xiàn),否則它們也是抽象類為。取而代之,在子類中實現(xiàn)該方法。知道其行為的其它類可以在類中實現(xiàn)這些方法。
接口(interface)是抽象類的變體。在接口中,所有方法都是抽象的。多繼承性可通過實現(xiàn)這樣的接口而獲得。接口中的所有方法都是抽象的,沒有一個有程序體。接口只可以定義static final成員變量。接口的實現(xiàn)與子類相似,除了該實現(xiàn)類不能從接口定義中繼承行為。當(dāng)類實現(xiàn)特殊接口時,它定義(即將程序體給予)所有這種接口的方法。然后,它可以在實現(xiàn)了該接口的類的任何對象上調(diào)用接口的方法。由于有抽象類,它允許使用接口名作為引用變量的類型。通常的動態(tài)聯(lián)編將生效。引用可以轉(zhuǎn)換到接口類型或從接口類型轉(zhuǎn)換,instanceof運(yùn)算符可以用來決定某對象的類是否實現(xiàn)了接口。
第二十一,abstract的method是否可同時是static,是否可同時是native,是否可同時是synchronized?
都不能
第二十二,接口是否可繼承接口?抽象類是否可實現(xiàn)(implements)接口?抽象類是否可繼承實體類(concrete class)?
接口可以繼承接口。抽象類可以實現(xiàn)(implements)接口,抽象類是否可繼承實體類,但前提是實體類必須有明確的構(gòu)造函數(shù)。
第二十三,啟動一個線程是用run()還是start()?
啟動一個線程是調(diào)用start()方法,使線程所代表的虛擬處理機(jī)處于可運(yùn)行狀態(tài),這意味著它可以由JVM調(diào)度并執(zhí)行。這并不意味著線程就會立即運(yùn)行。run()方法可以產(chǎn)生必須退出的標(biāo)志來停止一個線程。
第二十四,構(gòu)造器Constructor是否可被override?
構(gòu)造器Constructor不能被繼承,因此不能重寫Overriding,但可以被重載Overloading。
第二十五,是否可以繼承String類?
String類是final類故不可以繼承。
第二十六,當(dāng)一個線程進(jìn)入一個對象的一個synchronized方法后,其它線程是否可進(jìn)入此對象的其它方法?
不能,一個對象的一個synchronized方法只能由一個線程訪問。
第二十七,try {}里有一個return語句,那么緊跟在這個try后的finally {}里的code會不會被執(zhí)行,什么時候被執(zhí)行,在return前還是后?
會執(zhí)行,在return前執(zhí)行。
第二十八,編程題:用最有效率的方法算出2乘以8等於幾?
有C背景的程序員特別喜歡問這種問題。
<<3
第二十九,兩個對象值相同(x.equals(y)== true),但卻可有不同的hash code,這句話對不對?
不對,有相同的hash code。
第三十,當(dāng)一個對象被當(dāng)作參數(shù)傳遞到一個方法后,此方法可改變這個對象的屬性,并可返回變化后的結(jié)果,那么這里到底是值傳遞還是引用傳遞?
是值傳遞。Java編程語言只由值傳遞參數(shù)。當(dāng)一個對象實例作為一個參數(shù)被傳遞到方法中時,參數(shù)的值就是對該對象的引用。對象的內(nèi)容可以在被調(diào)用的方法中改變,但對象的引用是永遠(yuǎn)不會改變的。
第三十一,swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
switch(expr1)中,expr1是一個整數(shù)表達(dá)式。因此傳遞給switch和case語句的參數(shù)應(yīng)該是int、short、char或者byte。long,string都不能作用于swtich。
第三十二,編程題:寫一個Singleton出來。
Singleton模式主要作用是保證在Java應(yīng)用程序中,一個類Class只有一個實例存在。
一般Singleton模式通常有幾種種形式:
第一種形式:
定義一個類,它的構(gòu)造函數(shù)為private的,它有一個static的private的該類變量,在類初始化時實例話,通過一個public的getInstance方法獲取對它的引用,繼而調(diào)用其中的方法。
public class Singleton {
private Singleton(){}
//在自己內(nèi)部定義自己一個實例,是不是很奇怪?
//注意這是private只供內(nèi)部調(diào)用
private static Singleton instance = new Singleton();
//這里提供了一個供外部訪問本class的靜態(tài)方法,可以直接訪問
public static Singleton getInstance(){
return instance;
}
}
第二種形式:
public class Singleton {
private static Singleton instance = null;
public static synchronized Singleton getInstance(){
//這個方法比上面有所改進(jìn),不用每次都進(jìn)行生成對象,只是第一次
//使用時生成實例,提高了效率!
if(instance==null)
instance=new Singleton();
return instance;
}
}
其他形式:
定義一個類,它的構(gòu)造函數(shù)為private的,所有方法為static的。
一般認(rèn)為第一種形式要更加安全些
Hashtable和HashMap
Hashtable繼承自Dictionary類,而HashMap是Java1.2引進(jìn)的Map interface的一個實現(xiàn)
HashMap允許將null作為一個entry的key或者value,而Hashtable不允許
還有就是,HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因為contains方法容易讓人引起誤解。
最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在 多個線程訪問Hashtable時,不需要自己為它的方法實現(xiàn)同步,而HashMap
就必須為之提供外同步。
Hashtable和HashMap采用的hash/rehash算法都大概一樣,所以性能不會有很大的差異。
第四篇: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)?對應(yīng)各個部分的開發(fā)工作主要包括哪些? 3.jsp有哪些內(nèi)置對象和動作?它們的作用分別是什么?
4、sql問答題
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問答題
表結(jié)構(gòu):
1、表名:g_cardapply 字段(字段名/類型/長度): g_applyno varchar 8;//申請單號(關(guān)鍵字)g_applydate bigint 8;//申請日期 g_state varchar 2;//申請狀態(tài)
2、表名:g_cardapplydetail 字段(字段名/類型/長度): g_applyno varchar 8;//申請單號(關(guān)鍵字)g_name varchar 30;//申請人姓名 g_idcard varchar 18;//申請人身份證號 g_state varchar 2;//申請狀態(tài)
其中,兩個表的關(guān)聯(lián)字段為申請單號。
題目:
1、查詢身份證號碼為***的申請日期
2、查詢同一個身份證號碼有兩條以上記錄的身份證號碼及記錄個數(shù)
3、將身份證號碼為***的記錄在兩個表中的申請狀態(tài)均改為07
4、刪除g_cardapplydetail表中所有姓李的記錄
華為java筆試題
一、單項選擇題
1.java是從()語言改進(jìn)重新設(shè)計。a.a(chǎn)da b.c++ c.pasacal d.basic篇二:java程序員面試注意事項
一、回答問題的思路
先正面敘述一些基本的核心知識,然后描述一些特殊的東西,最后再來一些錦上添花的東西。要注意有些不是錦上添花,而是畫蛇添足的東西,不要隨便寫上。把答題像寫書一樣寫。我要回答一個新技術(shù)的問題大概思路和步驟是:我們想干什么,干這個遇到了什么問題,現(xiàn)在用什么方式來解決。其實我們講課也是這樣一個思路。
答題時,先答是什么,再答有什么作用和要注意什么(這部分最重要,展現(xiàn)自己的心得)。答案的層次分明,條理清楚都非常重要,從這些表面的東西也可以看出一個人的習(xí)慣、辦事風(fēng)格、條理等。要講你做出答案的思路過程,或者說你記住答案的思想都寫下來。把答題想著是辯論賽。答題就是給別人講道理、擺事實。答題不局限于什么格式和形式,就是要將自己的學(xué)識展現(xiàn)出來!
另外,不要因為人家題目本來就模棱兩可,你就心里膽怯和沒底氣了,不敢回答了。你要大膽地指出對方題目很模糊和你的觀點(diǎn),不要把面試官想得有多高,其實他和你就是差不多的,你想想,如果他把你招進(jìn)去了,你們以后就是同事了,可不是差不多的嗎?
二、關(guān)于就業(yè)薪水
如果你是應(yīng)屆生,那不能要高工資,好比大餅的故事,要拿高工資,就去中關(guān)村!少數(shù)人基礎(chǔ)確實很好,在校期間確實又做過一些項目,那仍然是可以要到相對高的工資的。
初級程序員薪水:2000-4500 中級程序員薪水:4000-7000 高級程序員薪水:7000以上
公司招聘程序員更看重的要用到的編碼技術(shù)、而不是那些業(yè)務(wù)不太相關(guān)的所謂項目經(jīng)歷:
三、公司想招什么樣的人
對于一些公司接到了一些項目,想招聘一些初中級的程序員過來幫助寫代碼,完成這個項目,你更看重的是他的專業(yè)技術(shù)功底,還是以前做過幾個項目的經(jīng)歷呢?我們先排除掉那些編碼技術(shù)功底好,又正好做過相似項目的情況,實際上,這種魚和熊掌兼得的情況并不常見。其實公司很清楚,只要招聘進(jìn)來的人技術(shù)真的很明白,那他什么項目都可以做出來,公司招人不是讓你去重復(fù)做你以前的項目,而是做一個新項目,業(yè)務(wù)方面,你只要進(jìn)了項目團(tuán)隊,自然就能掌握。所以,大多數(shù)招聘單位在招聘那些編碼級別的程序員時也沒指望能招聘到做過類似項目的人,也不會刻意去找做過類似項目的人,用人單位也不是想把你招進(jìn),然后把你以前做過的項目重做一遍,所以,用人單位更看重招進(jìn)來的人對要用到的編碼技術(shù)的功底到底怎樣,技術(shù)扎實不扎實,項目則只要跟著開發(fā)團(tuán)隊走,自然就沒問題。除非是一些非常專業(yè)的行業(yè),要招聘特別高級的開發(fā)人員和系統(tǒng)分析師,招聘單位才特別注重他的項目經(jīng)驗和行業(yè)經(jīng)驗,要去找到行業(yè)高手,公司才關(guān)心項目和與你聊項目的細(xì)節(jié),這樣的人通常都不是通過常規(guī)招聘渠道去招聘進(jìn)來的,而是通過各種手段挖過來的,這情況不再我今天要討論的范圍中。
四、公司面試會問什么,.技術(shù)學(xué)得明白不明白,人家?guī)讉€問題就把你的深淺問出來了,只要問一些具體的技術(shù)點(diǎn),就很容易看出你是真懂還是假懂,很容看出你的技術(shù)深度和實力,所以,技術(shù)是來不得半點(diǎn)虛假的,必須扎扎實實。
由于項目的種類繁多,涉及到現(xiàn)實生活中的各行各業(yè),什么五花八門的業(yè)務(wù)都有,例如,酒店房間預(yù)定管理,公司車輛調(diào)度管理,學(xué)校課程教室管理,超市進(jìn)銷存管理,知識內(nèi)容管理,等等……成千上萬等等,但是,不管是什么項目,采用的無非都是我們學(xué)習(xí)的那些目前流行和常用的技術(shù)。技術(shù)好、經(jīng)驗豐富,則項目做出來的效率高些,程序更穩(wěn)定和更容易維護(hù)些;技術(shù)差點(diǎn),碰碰磕磕最后也能把項目做出來,無非是做的周期長點(diǎn)、返工的次數(shù)多點(diǎn),程序代碼寫得差些,用的技術(shù)笨拙點(diǎn)。如果一個人不是完完全全做過某個項目,他是不太關(guān)心該項目的業(yè)務(wù)的,對其中的一些具體細(xì)節(jié)更是一竅不知,(如果我招你來做圖書管理,你項目經(jīng)歷說你做過汽車調(diào)度,那我能問你汽車調(diào)度具體怎么回事嗎?不會,所以,你很容易蒙混過去的)而一個程序員的整個職業(yè)生涯中能實實在在和完完整整做出來的項目沒幾個,更別說在多個不同行業(yè)的項目了,有的程序員更是一輩子都只是在做某一個行業(yè)的項目,結(jié)果他就成了這個行業(yè)的專家(專門干一件事的家伙)。所以,技術(shù)面試官通常沒正好親身經(jīng)歷過你簡歷寫的那些項目,他不可能去問你寫的那些項目的具體細(xì)節(jié),而是只能泛泛地問你這個項目是多少人做的,做了多長時間,開發(fā)的過程,你在做項目的過程中有什么心得和收獲,用的什么技術(shù)等面上的問題,所以,簡歷上的項目經(jīng)歷可以含有很多水分,很容易作假,技術(shù)面試官也無法在項目上甄別你的真?zhèn)巍?/p>
五、簡歷怎么寫
簡歷該怎么寫:精通哪些技術(shù),有一些什么項目經(jīng)歷
六、怎樣達(dá)到簡歷上的標(biāo)準(zhǔn)(培訓(xùn)中心教項目的目的)教項目是為了鞏固和靈活整合運(yùn)用技術(shù),增強(qiáng)學(xué)習(xí)的趣味性,熟悉做項目的流程,或得一些專業(yè)課程中無法獲得的特有項目經(jīng)驗,增強(qiáng)自己面試的信心。講的項目應(yīng)該真實可靠才有價值,否則,表面上是項目,實際上還是知識點(diǎn)的整合,對鞏固技術(shù)點(diǎn)和增強(qiáng)學(xué)習(xí)的趣味性,但無法獲得實際的項目經(jīng)驗。
第五篇:java程序員面試必讀
Java程序員,面試必讀
☆★☆★快來!10月25日讀者見面會☆★☆★
清華大學(xué)出版社《Java程序員,上班那點(diǎn)事兒》作者:鐘聲 章節(jié):1.2.2:
面試是一個“簡單”而又“復(fù)雜”的事情,正因為它具有“簡單”和“復(fù)雜”的雙重性質(zhì),才使我們對這個問題不敢掉以輕心。介紹如何面試,有時候甚至可以寫一本書,而有時候,你什么都不準(zhǔn)備卻可以面試成功。
因為,面試的成功與否完全取決于主考官,因此,這門學(xué)問的主要科目就是研究主考官的招聘心理。
我們研究好主考官的招聘心理,自然就可以做到“知己知彼”了。
本小節(jié)只是說說面試的“心理戰(zhàn)”,而想真正的能夠?qū)Υ鹑缌?,需要的是“真功夫”,要想具備“真功夫”還是需要真正的技術(shù)水平作為前提的,本小節(jié)的內(nèi)容只是給那些已經(jīng)具備相應(yīng)技術(shù)水平的應(yīng)聘者提供一定的應(yīng)聘技巧而已,以避免沒有把自己的“真功夫”完全展示出來從而喪失工作機(jī)會。
面試前對自己的心理暗示:
面試并不是考試,只是和未來的同事聊聊天。
“心理戰(zhàn)”對象,可能出現(xiàn)的主考官如下幾類:
人物1,人力資源部主管(HR)
人物2,你未來的主管
人物3,你未來主管的主管
我們分別來分析遇到不同類型的主考官的不同情況。
人物1:人力資源部主管(HR)
“人物1”的出現(xiàn)往往是進(jìn)行該職位的初審,給出一個概觀定論,如果合格將會提交給“人物2”?!叭宋?”他們所要進(jìn)行的是對人的心理和基本技能方面的一個判斷。
不過,也有一些公司,首次面試仍然是由業(yè)務(wù)主管來進(jìn)行,然后再將初審合格的人交給人力部門來復(fù)試,如果,是這種情況,你應(yīng)該就算90%入職成功了,因為,這個復(fù)試往往是走個形式,看看此人有沒有被主管忽略的大問題,如果沒有,基本就差不多了。
那么,我們僅僅以第一種情況為例,看看“人物1”大多提出的是哪些問題。
常見提問1:請你自我介紹一下
這個問題,是人力部主考官必問的問題,這個問題的提問并不是真的想了解你的個人情況,因為,你的情況基本上在簡歷上都寫著呢。他提出這個問題的主要目的是來考察你的語言表達(dá)能力,和你在表達(dá)過程中的一些細(xì)節(jié)表現(xiàn)。
所以,我們應(yīng)該怎么回答呢?
看看如下對話:
HR:“請你自我介紹一下”
A君:“您看簡歷吧,基本上我都寫在簡歷上了?!?/p>
HR:汗?
HR:“請你自我介紹一下”
B君:“我叫XXX,年齡24,性別男,籍貫??”
HR:倒?
HR:“請你自我介紹一下”
C君:“這話從何說起呢?話說10年前??”
HR:暈?
首先,不要認(rèn)為主考官沒有認(rèn)真的看你的簡歷,沒有看你的簡歷就讓你來面試,是在浪費(fèi)他自己的時間,所以絕對是首先認(rèn)為簡歷比較合適,才約你來的。
第二,自我介紹并不是讓你重復(fù)一下你簡歷上的所有內(nèi)容,那些內(nèi)容簡歷上都有,主考官主要是想聽聽你如何表達(dá)和語言的邏輯能力。
第三,這個表達(dá)不要滔滔不絕,要有張有弛,有收有放,主要將自己的想說的優(yōu)勢部分分別道來,能夠通過你的介紹讓人感覺到你的“親和力”為佳。
“語言表達(dá)能力”并非我們?nèi)粘Kf的“能侃”或者“口才”,這是片面的理解,在面試過程中,我們要展現(xiàn)的“語言表達(dá)能力”是指,“語言親和力”,能夠讓人感受到你的“溝通”能力。
回答范例:
您好!我來自XXX大學(xué),是應(yīng)屆畢業(yè)生,所學(xué)專業(yè)是計算機(jī)應(yīng)用技術(shù),我在校期間參加多項課余工作,參與了多個應(yīng)用系統(tǒng)的開發(fā)與設(shè)計,熟練掌握J(rèn)ava開發(fā)工具和應(yīng)用系統(tǒng)的各種開發(fā)方法。在學(xué)習(xí)與工作期間,總結(jié)與實踐了各種技術(shù)實現(xiàn)手段,有了一些小的積累。
近期已經(jīng)畢業(yè),看到您公司的招聘信息,感覺自己的技術(shù)與能力非常合適,就投遞了簡歷。希望能過了您這關(guān),呵呵??(注:最后的微笑最好不要太牽強(qiáng),目的是緩和氣氛)
大家看到了,這個回答范例的自我介紹非常簡練,但是,什么也沒有落下。既實事求是的說了自己是應(yīng)屆畢業(yè)生,又說明了自己雖然是應(yīng)屆畢業(yè)生,但是參加了很多的課余工作,并且具有實際的項目開發(fā)經(jīng)驗,而且有了一些小的積累。
既說了自己的對這份工作和自己能力之間的考量,又表達(dá)了自己對主考官的期望。
意思表達(dá)時不卑不亢,言簡意賅,讓人聽起來就感覺很舒服。
這時候你的目的就達(dá)到了,展現(xiàn)出自己的“語言表達(dá)能力”和“語言親和力”,同時又能夠讓人感受到你的“溝通”能力。
常見提問2:你最大的優(yōu)點(diǎn)是什么?
這個問題如果是HR問,則最好回答了。
回答這個問題的關(guān)鍵是“圍繞自己的技術(shù)特長”展開話題,為什么這樣?
因為,往往HR都不懂技術(shù),圍繞技術(shù)說自己的特長很容易給他說暈(當(dāng)然,個別懂技術(shù)的HR除外)。這里要注意的是,在說技術(shù)問題的時候,不要讓HR感覺自己什么都不懂,要注意說話的節(jié)奏,不要太快,不要太驕傲。
常見提問3:你最大的缺點(diǎn)是什么?
這個問題是HR的殺手锏,可以說這是HR的狠招,這個問題最難回答,一般應(yīng)聘者都本著“揚(yáng)長避短”的心態(tài)去面試,冷不防冒出這么一個問題,還真是挺棘手的。
需要清楚HR問這個問題的目的,其目的仍然不是要真的需要知道你的缺點(diǎn)是什么,還是看看你的表達(dá)能力,尤其是需要考察應(yīng)聘者面對危機(jī)的時候的處理能力。所以,我們不要用下列方式作答:
1、說出自己的真實缺點(diǎn),尤其是在前面談話中沒有暴露出來的缺點(diǎn)
2、認(rèn)為說說某些大眾化的缺點(diǎn)即可,認(rèn)為說一兩個無妨
3、說自己沒有缺點(diǎn),強(qiáng)調(diào)自己比較完美
總之,HR心里想的是:需要了解他面前的這個人在面對困難的時候,是如何處理問題的,從處理危機(jī)的方法來判斷此人的處理事情的靈活性。當(dāng)然,如果此人自己暴露出自己的缺點(diǎn)當(dāng)然更好,省得需要去想辦法問更多的問題去發(fā)現(xiàn)了。
所以,在回答這個問題的時候,要看起來“真誠”、“坦白”,同時,說出來的并非自己的缺點(diǎn),而是最好在別人看來是優(yōu)點(diǎn)的那些方面。
這個問題問的概率很大,通常如果求職者說自己小心眼、愛忌妒人、非常懶、脾氣大、工作效率低,肯定不會錄用你。HR喜歡求職者從自己的優(yōu)點(diǎn)說起,中間加一些小缺點(diǎn),最后再把問題轉(zhuǎn)回到優(yōu)點(diǎn)上,目的還是突出自己優(yōu)點(diǎn)的部分。
HR喜歡聰明的求職者。
這一點(diǎn)比較難掌握,我們也給出范例:
回答范例:
呵呵,這個問題好難回答啊!我想想??(親和力表現(xiàn),也緩解了自己的緊張情緒)
我的缺點(diǎn)是,比較執(zhí)著,比如在技術(shù)方面比較愛鉆研,有的時候會為一個技術(shù)問題加班到深夜。還有就是,工作比較按部就班,總是按照主管的要求完成任務(wù)。另外的缺點(diǎn)是,總在自己的工作范圍內(nèi)有創(chuàng)新意識,并沒有擴(kuò)展給其他同事。這些問題我想我可以進(jìn)入公司以后以最短的時間來解決,我的學(xué)習(xí)能力很強(qiáng),我相信可以很快融入公司的企業(yè)文化,進(jìn)入工作狀態(tài)。
嗯??,我想就這些吧。
這個回答范例開頭第一句話就讓人覺得很自然,因為這個求職者所說的話恰恰表達(dá)了一般人聽到這個問題后的心理狀態(tài),還有你一定會有一個思考的時間,因為,誰也不會立刻說出自己的缺點(diǎn)。
后面說出的幾個缺點(diǎn)都是一環(huán)套一環(huán)的,說了自己“比較執(zhí)著”,但又說自己其實是“比較愛鉆研”,說自己總是“按部就班”,但又補(bǔ)充了其實那是“按照主管的要求完成任務(wù)”,這時候,如果用人單位覺得,此人是不是沒有“創(chuàng)新思維”的時候,馬上就補(bǔ)充道“在自己的范圍內(nèi)有創(chuàng)新意識”,至于“沒有擴(kuò)展給其他同事”這件事,其實無關(guān)緊要,干脆就賣給HR吧。
以上回答確實賣弄了些“技巧”,相信HR也一定能看的出來,但是,即使看出來了也無妨,HR也會心領(lǐng)神會,知道你是一個比較善于溝通并且善于表達(dá)的人。
人物2:你未來的主管
當(dāng)見到未來主管的時候,往往是應(yīng)聘者已經(jīng)過了HR那一關(guān),或者應(yīng)聘者已經(jīng)過了筆試的那一關(guān),因此見到這位人物意味著距離成功已經(jīng)向前進(jìn)了一步。
“人物2”的面試也有他的目的,他是和你在日常工作中接觸最多的人,作為你的直接上司,他需要在工作中經(jīng)常給你分配任務(wù),他需要對他的主管負(fù)責(zé),因此,他招聘的這個人選必須是可以幫助他完成他整個Team的目標(biāo)的人。
往往那個吸引你來面試的“招聘啟示”就是這個人物所撰寫的,因此,其實在你和他見面以前,早已經(jīng)通過“招聘啟示”和他有過交往了。因此,從“招聘啟示”中就可以初顯這位主管的端倪。
注意,主管同志并不是人事領(lǐng)域的高手,不會用各種語言技巧去發(fā)掘你身上的缺點(diǎn)或者優(yōu)點(diǎn),往往問題都是實打?qū)嵉?,或者比較一針見血的,而且,更偏重于日常工作。
那么,我們下面和他過過招。
常見提問1:請你自我介紹一下
這個問題,HR也問過了,到他那里有可能還會問,主管問這個問題和HR雖然問的問題一致,但是,其目的并不是完全相同的。
他不僅僅想考察一下你的表達(dá)能力,同時還想考察一下你思路的清晰程度。
我們在回答他的問題前,一定要想清楚一件事:他是該技術(shù)領(lǐng)域的高手,就是我們“程序員修煉三境界”中描述的“第二層境界”的那個人物,如果還想更清楚的了解這個人物,可以去重新看看前面的那個章節(jié)。
這個自我介紹最好說的較為簡潔,不要過分炫耀自己的技術(shù)如何如何強(qiáng),免得引起這位主管的興趣,引起他的技術(shù)興趣沒有什么好處,只會帶來更多的技術(shù)問題的發(fā)問。
常見提問2:你最引以為自豪的項目是什么?
他問這個問題的意圖是想考察你的成長路徑和編程習(xí)慣,因為,最讓你自豪的項目往往是你成長最快的項目,那個成長最快的項目往往會給你今后的編程習(xí)慣留下很多痕跡。
所以,通過你對那個引以為豪的項目的描述,有經(jīng)驗的他會很快鎖定你技術(shù)成長中的缺陷和閃光點(diǎn),從而判斷是否能夠“為我所用”。
你最好拿出一個自己最擅長技術(shù)的那個項目進(jìn)行介紹,這個項目最好能夠比較貼近招聘要求的那些指標(biāo)。如果,沒有做過什么有規(guī)模的正規(guī)項目,你就拿些自己非常擅長或者有創(chuàng)意的開發(fā)作品來說。這樣做的好處是,他聽完你的介紹后,會接下來進(jìn)行提問,他所有發(fā)問,你都成竹在胸了。
切忌拿一個別人的項目,或者自己參與很少的項目來介紹,如果這樣的話,一旦他深入的詢問這個項目的問題,很可能你會所答非所問,反而造成更嚴(yán)重的影響。你大可以和他大談特談你在那個項目中獲得的經(jīng)驗,那會引起此君的共鳴,有可能的話,說出一些你自己的小技巧,他會很高興。
常見提問3:如果我錄用你,你將怎樣開展工作
他問這個問題的意圖是,希望看看你對這個職位工作展開的一些設(shè)想,仍然是“實打?qū)崱睆墓ぷ鞒霭l(fā)來提問的。所以,你在回答這個問題的時候也要“實打?qū)崱?,切忌虛無縹緲的一通“高、大、全”。
一般要列出自己的入職之后的工作計劃,而這些計劃需要詳盡,同時需要體現(xiàn)出你工作的嚴(yán)謹(jǐn)性,也不能是想當(dāng)然的說出一些與工作無關(guān)的計劃,這都有可能適得其反。
回答范例:
針對這個如何展開工作的問題,我目前僅僅是對咱們公司的大體情況有一個了解,因此,對這個職位的工作性質(zhì)僅僅是自己的一個理解。
所以呢,我也不知道是否合適,我只能說一個大概。
作為這個職位而言,我想我首先要對本公司的主營業(yè)務(wù)要有一個相當(dāng)?shù)牧私?,了解我們公司的業(yè)務(wù)組成部分、業(yè)務(wù)的發(fā)展方向、我們面向的客戶性質(zhì)等等。
第二,我要了解所屬部門在公司中的地位,以及部門的工作目標(biāo),從而確定自身的工作努力方向。
第三,了解我參與項目的開發(fā)方式,架構(gòu)方式,緊密配合領(lǐng)導(dǎo)工作,盡快投入具體的開發(fā)工作。
這就是我開展工作的計劃。
從大到小的方式進(jìn)行了解,這么說可以讓領(lǐng)導(dǎo)知道你不是一個盲目工作的人,而是一個按部就班,穩(wěn)扎穩(wěn)打的人,使人覺得和你合作很踏實。另外,一定要強(qiáng)調(diào)所屬項目或部門的目標(biāo),因為這關(guān)系到面試你的主管的切身利益。最后,強(qiáng)調(diào)“盡快”投入開發(fā)工作,這樣,領(lǐng)導(dǎo)就放心了,你不是一個“只了解,不工作”的人。
面對主管唯一要盡量表現(xiàn)的就是,你看起來非常像一個“工具”,入職后馬上就可以發(fā)揮作用。
人物3:主管的主管
遇到“主管的主管”的時,往往已經(jīng)是復(fù)試,這說明基本上已經(jīng)是最后一關(guān)了。但要注意,這個最后一關(guān)是非常關(guān)鍵的一“關(guān)”。因為,往往如果你未來的主管在公司中某個專業(yè)夠權(quán)威的話,他的主管一般不會管招聘的事情。因此,你看到這位“老大”的原因,多半是你未來的那位主管的專業(yè)地位還沒有“穩(wěn)定”。
最后的“搏殺”
過程大概是這樣的,一般會將兩個或三個人提交給“老大”,讓“老大”定奪,去選擇其中的一個人,因此,這個階段是一個最后的“搏殺”關(guān)鍵階段。老大”關(guān)注的問題:成本+人員素質(zhì)
所以,我們在和“老大”過招的時候,一定要注意自己的言行,切忌不要穿“奇裝異服”,或者男士留有個性的頭發(fā)或胡子,總之一定要讓人看起來特別的“平?!?,雖然不是“西裝革履”但也要“衣冠整潔”。
因為,老板們最不喜歡“個性”員工,而最喜歡的是“優(yōu)秀”的普通員工。
清華大學(xué)出版社《Java程序員,上班那點(diǎn)事兒》作者:鐘聲 章節(jié):1.2.2。
本文來自CSDN博客,轉(zhuǎn)載請http://blog.csdn.net/useway/archive/2009/08/02/4402385.aspx
標(biāo)
明
出
處
: