第一篇:Java程序員面試-2010最新版
1.抽象:
抽象就是忽略一個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標有關的方面。抽象并不打算了解全部問題,而只是選擇其中的一部分,暫時不用部分細節。抽象包括兩個方面,一是過程抽象,二是數據抽象。
2.繼承:
繼承是一種聯結類的層次模型,并且允許和鼓勵類的重用,它提供了一種明確表述共性的方法。對象的一個新類可以從現有的類中派生,這個過程稱為類繼承。新類繼承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生類可以從它的基類那里繼承方法和實例變量,并且類可以修改或增加新的方法使之更適合特殊的需要。
3.封裝:
封裝是把過程和數據包圍起來,對數據的訪問只能通過已定義的界面。面向對象計算始于這個基本概念,即現實世界可以被描繪成一系列完全自治、封裝的對象,這些對象通過一個受保護的接口訪問其他對象。
4.多態性:
多態性是指允許不同類的對象對同一消息作出響應。多態性包括參數化多態性和包含多態性。多態性語言具有靈活、抽象、行為共享、代碼共享的優勢,很好的解決了應用程序函數同名問題。
7、說出ArrayList,Vector, LinkedList的存儲性能和特性
ArrayList和Vector都是使用數組方式存儲數據,此數組元素數大于實際存儲的數據以便增加和插入元素,它們都允許直接按序號索引元素,但是插入元素要涉及數組元素移動等內存操作,所以索引數據快而插入數據慢,Vector由于使用了synchronized方法(線程安全),通常性能上較ArrayList差,而LinkedList使用雙向鏈表實現存儲,按序號索引數據需要進行前向或后向遍歷,但是插入數據時只需要記錄本項的前后項即可,所以插入速度較快。
8、EJB是基于哪些技術實現的?并說出SessionBean和EntityBean的區別,StatefulBean和StatelessBean的區別。
EJB包括Session Bean、Entity Bean、Message Driven Bean,基于JNDI、RMI、JAT等技術實現。
SessionBean在J2EE應用程序中被用來完成一些服務器端的業務操作,例如訪問數據庫、調用其他EJB組件。EntityBean被用來代表應用系統中用到的數據。
對于客戶機,SessionBean是一種非持久性對象,它實現某些在服務器上運行的業務邏輯。
對于客戶機,EntityBean是一種持久性對象,它代表一個存儲在持久性存儲器中的實體的對象視圖,或是一個由現有企業應用程序實現的實體。
Session Bean 還可以再細分為 Stateful Session Bean 與 Stateless Session Bean,這兩種的 Session Bean都可以將系統邏輯放在 method之中執行,不同的是 Stateful Session Bean 可以記錄呼叫者的狀態,因此通常來說,一個使用者會有一個相對應的 Stateful Session Bean 的實體。Stateless Session Bean 雖然也是邏輯組件,但是他卻不負責記錄使用者狀態,也就是說當使用者呼叫 Stateless Session Bean 的時候,EJB Container 并不會找尋特定的 Stateless Session Bean 的實體來執行這個 method。換言之,很可能數個使用者在執行某個 Stateless Session Bean 的 methods 時,會是同一個 Bean 的 Instance 在執行。從內存方面來看,Stateful Session Bean 與 Stateless Session Bean 比較,Stateful Session Bean 會消耗 J2EE Server 較多的內存,然而 Stateful Session Bean 的優勢卻在于他可以維持使用者的狀態。
13、sleep()和 wait()有什么區別?
sleep是線程類(Thread)的方法,導致此線程暫停執行指定時間,給執行機會給其他線程,但是監控狀態依然保持,到時后會自動恢復。調用sleep不會釋放對象鎖。
wait是Object類的方法,對此對象調用wait方法導致本線程放棄對象鎖,進入等待此對象的等待鎖定池,只有針對此對象發出notify方法(或notifyAll)后本線程才進入對象鎖定池準備獲得對象鎖進入運行狀態。
31、EJB包括(SessionBean,EntityBean)說出他們的生命周期,及如何管理事務的?
SessionBean:Stateless Session Bean 的生命周期是由容器決定的,當客戶機發出請求要建立一個Bean的實例時,EJB容器不一定要創建一個新的Bean的實例供客戶機調用,而是隨便找一個現有的實例提供給客戶機。當客戶機第一次調用一個Stateful Session Bean 時,容器必須立即在服務器中創建一個新的Bean實例,并關聯到客戶機上,以后此客戶機調用Stateful Session Bean 的方法時容器會把調用分派到與此客戶機相關聯的Bean實例。
EntityBean:Entity Beans能存活相對較長的時間,并且狀態是持續的。只要數據庫中的數據存在,Entity beans就一直存活。而不是按照應用程序或者服務進程來說的。即使EJB容器崩潰了,Entity beans也是存活的。Entity Beans生命周期能夠被容器或者 Beans自己管理。
EJB通過以下技術管理實務:對象管理組織(OMG)的對象實務服務(OTS),Sun Microsystems的Transaction Service(JTS)、Java Transaction API(JTA),開發組(X/Open)的XA接口。
抽象類是否可繼承實體類,但前提是實體類必須有明確的構造函數。
50、Java中的異常處理機制的簡單原理和應用。
當JAVA程序違反了JAVA的語義規則時,JAVA虛擬機就會將發生的錯誤表示為一個異常。違反語義規則包括2種情況。一種是JAVA類庫內置的語義檢查。例如數組下標越界,會引發IndexOutOfBoundsException;訪問null的對象時會引發NullPointerException。另一種情況就是JAVA允許程序員擴展這種語義檢查,程序員可以創建自己的異常,并自由選擇在何時用throw關鍵字引發異常。所有的異常都是java.lang.Thowable的子類。
71、簡述synchronized和java.util.concurrent.locks.Lock的異同 ?
主要相同點:Lock能完成synchronized所實現的所有功能
主要不同點:Lock有比synchronized更精確的線程語義和更好的性能。synchronized會自動釋放鎖,而Lock一定要求程序員手工釋放,并且必須在finally從句中釋放。
74、EJB規范規定EJB中禁止的操作有哪些?
1.不能操作線程和線程API(線程API指非線程對象的方法如notify,wait等),2.不能操作awt,3.不能實現服務器功能,4.不能對靜態屬生存取,5.不能使用IO操作直接存取文件系統,6.不能加載本地庫.,7.不能將this作為變量和返回,8.不能循環調用。
99、java中有幾種方法可以實現一個線程?用什么關鍵字修飾同步方法? stop()和suspend()方法為何不推薦使用?
有兩種實現方法,分別是繼承Thread類與實現Runnable接口 用synchronized關鍵字修飾同步方法
反對使用stop(),是因為它不安全。它會解除由線程獲取的所有鎖定,而且如果對象處于一種不連貫狀態,那么其他線程能在那種狀態下檢查和修改它們。結果很難檢查出真正的問題所在。suspend()方法容易發生死鎖。調用suspend()的時候,目標線程會停下來,但卻仍然持有在這之前獲得的鎖定。此時,其他任何線程都不能訪問鎖定的資源,除非被“掛起”的線程恢復運行。對任何線程來說,如果它們想恢復目標線程,同時又試圖使用任何一個鎖定的資源,就會造成死鎖。所以不應該使用suspend(),而應在自己的Thread類中置入一個標志,指出線程應該活動還是掛起。若標志指出線程應該掛起,便用wait()命其進入等待狀態。若標志指出線程應當恢復,則用一個notify()重新啟動線程。
107、寫clone()方法時,通常都有一行代碼,是什么?
Clone 有缺省行為,super.clone();他負責產生正確大小的空間,并逐位復制。
119、STRUTS的應用(如STRUTS架構)
Struts是采用Java Servlet/JavaServer Pages技術,開發Web應用程序的開放源碼的framework。采用Struts能開發出基于MVC(Model-View-Controller)設計模式的應用構架。Struts有如下的主要功能: 一.包含一個controller servlet,能將用戶的請求發送到相應的Action對象。二.JSP自由tag庫,并且在controller servlet中提供關聯支持,幫助開發員創建交互式表單應用。三.提供了一系列實用對象:XML處理、通過Java reflection APIs自動處理JavaBeans屬性、國際化的提示和消息。
JSP和SERVLET的區別:
SUN首先發展出SERVLET,其功能比較強勁,體系設計也很先進,只是,它輸出HTML語句還是采用了老的CGI方式,是一句一句輸出,所以,編寫和修改HTML非常不方便。后來SUN推出了類似于ASP的JSP,把JAVA代碼嵌套到HTML語句中,這樣,就大大簡化和方便了網頁的設計和修改。ASP,PHP,JSP都是嵌套型的SCRIPT語言。一個分布式系統應分為三層:表示層,業務邏輯層,數據存取層,在J2EE體系結構中,SERVLET用來寫業務邏輯層是很強大的,但是對于寫表示層就很不方便。JSP則主要是為了方便寫表示層而設計的。ENTITY BEAN實現數據存取層,SESSION BEAN實現業務邏輯層。如果是簡單的應用系統,可采用JSP+BEANS的結構進行設計,JSP中應該僅僅存放與表示層有關的東西,也就是說,只放輸出 HTML網頁的部份。而所有的數據計算,數據分析,數據庫聯結處理,統統是屬于業務邏輯層,應該放在JAVA BEANS中。通過JSP調用JAVA BEANS,實現兩層的整合。實際上,微軟的DNA技術,簡單說,就是ASP+COM/DCOM技術。與JSP+BEANS完全類似,所有的表示層由ASP完成,所有的業務邏輯由 COM/DCOM完成。為什么要采用這些組件技術呢?因為單純的ASP/JSP語言是非常低效率執行的,如果出現大量用戶點擊,純SCRIPT語言很快就到達了他的功能上限,而組件技術就能大幅度提高功能上限,加快執行速度。另外一方面,純SCRIPT語言將表示層和業務邏輯層混在一起,造成修改不方便,并且代碼不能重復利用,采用組件技術就只改組件就可以了。對于復雜的應用,應該采用ENTITY BEAN實現數據存取層,SESSION BEAN實現業務邏輯層,用JSP來調用SESSION BEAN,由SESSION BEAN調用ENTITY BEAN。即采用JSP+EJB來構建一個復雜的分布式系統。它比JSP+BEAN具有更高的吞吐量,可靠性,安全性。綜上所述,對簡單應用,可采用 JSP+BAEN,對復雜的應用系統,應采用JSP+EJB,SERVLET變的無足輕重。用JSP完全可替代它。當然不要忘記struts阿:)
第二篇: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體系結構?對應各個部分的開發工作主要包括哪些? 3.jsp有哪些內置對象和動作?它們的作用分別是什么?
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 %%)的檢索結果為何不同?
5、sql問答題
表結構:
1、表名:g_cardapply 字段(字段名/類型/長度): g_applyno varchar 8;//申請單號(關鍵字)g_applydate bigint 8;//申請日期 g_state varchar 2;//申請狀態
2、表名:g_cardapplydetail 字段(字段名/類型/長度): g_applyno varchar 8;//申請單號(關鍵字)g_name varchar 30;//申請人姓名 g_idcard varchar 18;//申請人身份證號 g_state varchar 2;//申請狀態
其中,兩個表的關聯字段為申請單號。
題目:
1、查詢身份證號碼為***的申請日期
2、查詢同一個身份證號碼有兩條以上記錄的身份證號碼及記錄個數
3、將身份證號碼為***的記錄在兩個表中的申請狀態均改為07
4、刪除g_cardapplydetail表中所有姓李的記錄
華為java筆試題
一、單項選擇題
1.java是從()語言改進重新設計。a.ada b.c++ c.pasacal d.basic篇二:java程序員面試注意事項
一、回答問題的思路
先正面敘述一些基本的核心知識,然后描述一些特殊的東西,最后再來一些錦上添花的東西。要注意有些不是錦上添花,而是畫蛇添足的東西,不要隨便寫上。把答題像寫書一樣寫。我要回答一個新技術的問題大概思路和步驟是:我們想干什么,干這個遇到了什么問題,現在用什么方式來解決。其實我們講課也是這樣一個思路。
答題時,先答是什么,再答有什么作用和要注意什么(這部分最重要,展現自己的心得)。答案的層次分明,條理清楚都非常重要,從這些表面的東西也可以看出一個人的習慣、辦事風格、條理等。要講你做出答案的思路過程,或者說你記住答案的思想都寫下來。把答題想著是辯論賽。答題就是給別人講道理、擺事實。答題不局限于什么格式和形式,就是要將自己的學識展現出來!
另外,不要因為人家題目本來就模棱兩可,你就心里膽怯和沒底氣了,不敢回答了。你要大膽地指出對方題目很模糊和你的觀點,不要把面試官想得有多高,其實他和你就是差不多的,你想想,如果他把你招進去了,你們以后就是同事了,可不是差不多的嗎?
二、關于就業薪水
如果你是應屆生,那不能要高工資,好比大餅的故事,要拿高工資,就去中關村!少數人基礎確實很好,在校期間確實又做過一些項目,那仍然是可以要到相對高的工資的。
初級程序員薪水:2000-4500 中級程序員薪水:4000-7000 高級程序員薪水:7000以上
公司招聘程序員更看重的要用到的編碼技術、而不是那些業務不太相關的所謂項目經歷:
三、公司想招什么樣的人
對于一些公司接到了一些項目,想招聘一些初中級的程序員過來幫助寫代碼,完成這個項目,你更看重的是他的專業技術功底,還是以前做過幾個項目的經歷呢?我們先排除掉那些編碼技術功底好,又正好做過相似項目的情況,實際上,這種魚和熊掌兼得的情況并不常見。其實公司很清楚,只要招聘進來的人技術真的很明白,那他什么項目都可以做出來,公司招人不是讓你去重復做你以前的項目,而是做一個新項目,業務方面,你只要進了項目團隊,自然就能掌握。所以,大多數招聘單位在招聘那些編碼級別的程序員時也沒指望能招聘到做過類似項目的人,也不會刻意去找做過類似項目的人,用人單位也不是想把你招進,然后把你以前做過的項目重做一遍,所以,用人單位更看重招進來的人對要用到的編碼技術的功底到底怎樣,技術扎實不扎實,項目則只要跟著開發團隊走,自然就沒問題。除非是一些非常專業的行業,要招聘特別高級的開發人員和系統分析師,招聘單位才特別注重他的項目經驗和行業經驗,要去找到行業高手,公司才關心項目和與你聊項目的細節,這樣的人通常都不是通過常規招聘渠道去招聘進來的,而是通過各種手段挖過來的,這情況不再我今天要討論的范圍中。
四、公司面試會問什么,.技術學得明白不明白,人家幾個問題就把你的深淺問出來了,只要問一些具體的技術點,就很容易看出你是真懂還是假懂,很容看出你的技術深度和實力,所以,技術是來不得半點虛假的,必須扎扎實實。
由于項目的種類繁多,涉及到現實生活中的各行各業,什么五花八門的業務都有,例如,酒店房間預定管理,公司車輛調度管理,學校課程教室管理,超市進銷存管理,知識內容管理,等等……成千上萬等等,但是,不管是什么項目,采用的無非都是我們學習的那些目前流行和常用的技術。技術好、經驗豐富,則項目做出來的效率高些,程序更穩定和更容易維護些;技術差點,碰碰磕磕最后也能把項目做出來,無非是做的周期長點、返工的次數多點,程序代碼寫得差些,用的技術笨拙點。如果一個人不是完完全全做過某個項目,他是不太關心該項目的業務的,對其中的一些具體細節更是一竅不知,(如果我招你來做圖書管理,你項目經歷說你做過汽車調度,那我能問你汽車調度具體怎么回事嗎?不會,所以,你很容易蒙混過去的)而一個程序員的整個職業生涯中能實實在在和完完整整做出來的項目沒幾個,更別說在多個不同行業的項目了,有的程序員更是一輩子都只是在做某一個行業的項目,結果他就成了這個行業的專家(專門干一件事的家伙)。所以,技術面試官通常沒正好親身經歷過你簡歷寫的那些項目,他不可能去問你寫的那些項目的具體細節,而是只能泛泛地問你這個項目是多少人做的,做了多長時間,開發的過程,你在做項目的過程中有什么心得和收獲,用的什么技術等面上的問題,所以,簡歷上的項目經歷可以含有很多水分,很容易作假,技術面試官也無法在項目上甄別你的真偽。
五、簡歷怎么寫
簡歷該怎么寫:精通哪些技術,有一些什么項目經歷
六、怎樣達到簡歷上的標準(培訓中心教項目的目的)教項目是為了鞏固和靈活整合運用技術,增強學習的趣味性,熟悉做項目的流程,或得一些專業課程中無法獲得的特有項目經驗,增強自己面試的信心。講的項目應該真實可靠才有價值,否則,表面上是項目,實際上還是知識點的整合,對鞏固技術點和增強學習的趣味性,但無法獲得實際的項目經驗。
第三篇:java程序員面試必讀
Java程序員,面試必讀
☆★☆★快來!10月25日讀者見面會☆★☆★
清華大學出版社《Java程序員,上班那點事兒》作者:鐘聲 章節:1.2.2:
面試是一個“簡單”而又“復雜”的事情,正因為它具有“簡單”和“復雜”的雙重性質,才使我們對這個問題不敢掉以輕心。介紹如何面試,有時候甚至可以寫一本書,而有時候,你什么都不準備卻可以面試成功。
因為,面試的成功與否完全取決于主考官,因此,這門學問的主要科目就是研究主考官的招聘心理。
我們研究好主考官的招聘心理,自然就可以做到“知己知彼”了。
本小節只是說說面試的“心理戰”,而想真正的能夠對答如流,需要的是“真功夫”,要想具備“真功夫”還是需要真正的技術水平作為前提的,本小節的內容只是給那些已經具備相應技術水平的應聘者提供一定的應聘技巧而已,以避免沒有把自己的“真功夫”完全展示出來從而喪失工作機會。
面試前對自己的心理暗示:
面試并不是考試,只是和未來的同事聊聊天。
“心理戰”對象,可能出現的主考官如下幾類:
人物1,人力資源部主管(HR)
人物2,你未來的主管
人物3,你未來主管的主管
我們分別來分析遇到不同類型的主考官的不同情況。
人物1:人力資源部主管(HR)
“人物1”的出現往往是進行該職位的初審,給出一個概觀定論,如果合格將會提交給“人物2”。“人物1”他們所要進行的是對人的心理和基本技能方面的一個判斷。
不過,也有一些公司,首次面試仍然是由業務主管來進行,然后再將初審合格的人交給人力部門來復試,如果,是這種情況,你應該就算90%入職成功了,因為,這個復試往往是走個形式,看看此人有沒有被主管忽略的大問題,如果沒有,基本就差不多了。
那么,我們僅僅以第一種情況為例,看看“人物1”大多提出的是哪些問題。
常見提問1:請你自我介紹一下
這個問題,是人力部主考官必問的問題,這個問題的提問并不是真的想了解你的個人情況,因為,你的情況基本上在簡歷上都寫著呢。他提出這個問題的主要目的是來考察你的語言表達能力,和你在表達過程中的一些細節表現。
所以,我們應該怎么回答呢?
看看如下對話:
HR:“請你自我介紹一下”
A君:“您看簡歷吧,基本上我都寫在簡歷上了。”
HR:汗?
HR:“請你自我介紹一下”
B君:“我叫XXX,年齡24,性別男,籍貫??”
HR:倒?
HR:“請你自我介紹一下”
C君:“這話從何說起呢?話說10年前??”
HR:暈?
首先,不要認為主考官沒有認真的看你的簡歷,沒有看你的簡歷就讓你來面試,是在浪費他自己的時間,所以絕對是首先認為簡歷比較合適,才約你來的。
第二,自我介紹并不是讓你重復一下你簡歷上的所有內容,那些內容簡歷上都有,主考官主要是想聽聽你如何表達和語言的邏輯能力。
第三,這個表達不要滔滔不絕,要有張有弛,有收有放,主要將自己的想說的優勢部分分別道來,能夠通過你的介紹讓人感覺到你的“親和力”為佳。
“語言表達能力”并非我們日常所說的“能侃”或者“口才”,這是片面的理解,在面試過程中,我們要展現的“語言表達能力”是指,“語言親和力”,能夠讓人感受到你的“溝通”能力。
回答范例:
您好!我來自XXX大學,是應屆畢業生,所學專業是計算機應用技術,我在校期間參加多項課余工作,參與了多個應用系統的開發與設計,熟練掌握Java開發工具和應用系統的各種開發方法。在學習與工作期間,總結與實踐了各種技術實現手段,有了一些小的積累。
近期已經畢業,看到您公司的招聘信息,感覺自己的技術與能力非常合適,就投遞了簡歷。希望能過了您這關,呵呵??(注:最后的微笑最好不要太牽強,目的是緩和氣氛)
大家看到了,這個回答范例的自我介紹非常簡練,但是,什么也沒有落下。既實事求是的說了自己是應屆畢業生,又說明了自己雖然是應屆畢業生,但是參加了很多的課余工作,并且具有實際的項目開發經驗,而且有了一些小的積累。
既說了自己的對這份工作和自己能力之間的考量,又表達了自己對主考官的期望。
意思表達時不卑不亢,言簡意賅,讓人聽起來就感覺很舒服。
這時候你的目的就達到了,展現出自己的“語言表達能力”和“語言親和力”,同時又能夠讓人感受到你的“溝通”能力。
常見提問2:你最大的優點是什么?
這個問題如果是HR問,則最好回答了。
回答這個問題的關鍵是“圍繞自己的技術特長”展開話題,為什么這樣?
因為,往往HR都不懂技術,圍繞技術說自己的特長很容易給他說暈(當然,個別懂技術的HR除外)。這里要注意的是,在說技術問題的時候,不要讓HR感覺自己什么都不懂,要注意說話的節奏,不要太快,不要太驕傲。
常見提問3:你最大的缺點是什么?
這個問題是HR的殺手锏,可以說這是HR的狠招,這個問題最難回答,一般應聘者都本著“揚長避短”的心態去面試,冷不防冒出這么一個問題,還真是挺棘手的。
需要清楚HR問這個問題的目的,其目的仍然不是要真的需要知道你的缺點是什么,還是看看你的表達能力,尤其是需要考察應聘者面對危機的時候的處理能力。所以,我們不要用下列方式作答:
1、說出自己的真實缺點,尤其是在前面談話中沒有暴露出來的缺點
2、認為說說某些大眾化的缺點即可,認為說一兩個無妨
3、說自己沒有缺點,強調自己比較完美
總之,HR心里想的是:需要了解他面前的這個人在面對困難的時候,是如何處理問題的,從處理危機的方法來判斷此人的處理事情的靈活性。當然,如果此人自己暴露出自己的缺點當然更好,省得需要去想辦法問更多的問題去發現了。
所以,在回答這個問題的時候,要看起來“真誠”、“坦白”,同時,說出來的并非自己的缺點,而是最好在別人看來是優點的那些方面。
這個問題問的概率很大,通常如果求職者說自己小心眼、愛忌妒人、非常懶、脾氣大、工作效率低,肯定不會錄用你。HR喜歡求職者從自己的優點說起,中間加一些小缺點,最后再把問題轉回到優點上,目的還是突出自己優點的部分。
HR喜歡聰明的求職者。
這一點比較難掌握,我們也給出范例:
回答范例:
呵呵,這個問題好難回答啊!我想想??(親和力表現,也緩解了自己的緊張情緒)
我的缺點是,比較執著,比如在技術方面比較愛鉆研,有的時候會為一個技術問題加班到深夜。還有就是,工作比較按部就班,總是按照主管的要求完成任務。另外的缺點是,總在自己的工作范圍內有創新意識,并沒有擴展給其他同事。這些問題我想我可以進入公司以后以最短的時間來解決,我的學習能力很強,我相信可以很快融入公司的企業文化,進入工作狀態。
嗯??,我想就這些吧。
這個回答范例開頭第一句話就讓人覺得很自然,因為這個求職者所說的話恰恰表達了一般人聽到這個問題后的心理狀態,還有你一定會有一個思考的時間,因為,誰也不會立刻說出自己的缺點。
后面說出的幾個缺點都是一環套一環的,說了自己“比較執著”,但又說自己其實是“比較愛鉆研”,說自己總是“按部就班”,但又補充了其實那是“按照主管的要求完成任務”,這時候,如果用人單位覺得,此人是不是沒有“創新思維”的時候,馬上就補充道“在自己的范圍內有創新意識”,至于“沒有擴展給其他同事”這件事,其實無關緊要,干脆就賣給HR吧。
以上回答確實賣弄了些“技巧”,相信HR也一定能看的出來,但是,即使看出來了也無妨,HR也會心領神會,知道你是一個比較善于溝通并且善于表達的人。
人物2:你未來的主管
當見到未來主管的時候,往往是應聘者已經過了HR那一關,或者應聘者已經過了筆試的那一關,因此見到這位人物意味著距離成功已經向前進了一步。
“人物2”的面試也有他的目的,他是和你在日常工作中接觸最多的人,作為你的直接上司,他需要在工作中經常給你分配任務,他需要對他的主管負責,因此,他招聘的這個人選必須是可以幫助他完成他整個Team的目標的人。
往往那個吸引你來面試的“招聘啟示”就是這個人物所撰寫的,因此,其實在你和他見面以前,早已經通過“招聘啟示”和他有過交往了。因此,從“招聘啟示”中就可以初顯這位主管的端倪。
注意,主管同志并不是人事領域的高手,不會用各種語言技巧去發掘你身上的缺點或者優點,往往問題都是實打實的,或者比較一針見血的,而且,更偏重于日常工作。
那么,我們下面和他過過招。
常見提問1:請你自我介紹一下
這個問題,HR也問過了,到他那里有可能還會問,主管問這個問題和HR雖然問的問題一致,但是,其目的并不是完全相同的。
他不僅僅想考察一下你的表達能力,同時還想考察一下你思路的清晰程度。
我們在回答他的問題前,一定要想清楚一件事:他是該技術領域的高手,就是我們“程序員修煉三境界”中描述的“第二層境界”的那個人物,如果還想更清楚的了解這個人物,可以去重新看看前面的那個章節。
這個自我介紹最好說的較為簡潔,不要過分炫耀自己的技術如何如何強,免得引起這位主管的興趣,引起他的技術興趣沒有什么好處,只會帶來更多的技術問題的發問。
常見提問2:你最引以為自豪的項目是什么?
他問這個問題的意圖是想考察你的成長路徑和編程習慣,因為,最讓你自豪的項目往往是你成長最快的項目,那個成長最快的項目往往會給你今后的編程習慣留下很多痕跡。
所以,通過你對那個引以為豪的項目的描述,有經驗的他會很快鎖定你技術成長中的缺陷和閃光點,從而判斷是否能夠“為我所用”。
你最好拿出一個自己最擅長技術的那個項目進行介紹,這個項目最好能夠比較貼近招聘要求的那些指標。如果,沒有做過什么有規模的正規項目,你就拿些自己非常擅長或者有創意的開發作品來說。這樣做的好處是,他聽完你的介紹后,會接下來進行提問,他所有發問,你都成竹在胸了。
切忌拿一個別人的項目,或者自己參與很少的項目來介紹,如果這樣的話,一旦他深入的詢問這個項目的問題,很可能你會所答非所問,反而造成更嚴重的影響。你大可以和他大談特談你在那個項目中獲得的經驗,那會引起此君的共鳴,有可能的話,說出一些你自己的小技巧,他會很高興。
常見提問3:如果我錄用你,你將怎樣開展工作
他問這個問題的意圖是,希望看看你對這個職位工作展開的一些設想,仍然是“實打實”從工作出發來提問的。所以,你在回答這個問題的時候也要“實打實”,切忌虛無縹緲的一通“高、大、全”。
一般要列出自己的入職之后的工作計劃,而這些計劃需要詳盡,同時需要體現出你工作的嚴謹性,也不能是想當然的說出一些與工作無關的計劃,這都有可能適得其反。
回答范例:
針對這個如何展開工作的問題,我目前僅僅是對咱們公司的大體情況有一個了解,因此,對這個職位的工作性質僅僅是自己的一個理解。
所以呢,我也不知道是否合適,我只能說一個大概。
作為這個職位而言,我想我首先要對本公司的主營業務要有一個相當的了解,了解我們公司的業務組成部分、業務的發展方向、我們面向的客戶性質等等。
第二,我要了解所屬部門在公司中的地位,以及部門的工作目標,從而確定自身的工作努力方向。
第三,了解我參與項目的開發方式,架構方式,緊密配合領導工作,盡快投入具體的開發工作。
這就是我開展工作的計劃。
從大到小的方式進行了解,這么說可以讓領導知道你不是一個盲目工作的人,而是一個按部就班,穩扎穩打的人,使人覺得和你合作很踏實。另外,一定要強調所屬項目或部門的目標,因為這關系到面試你的主管的切身利益。最后,強調“盡快”投入開發工作,這樣,領導就放心了,你不是一個“只了解,不工作”的人。
面對主管唯一要盡量表現的就是,你看起來非常像一個“工具”,入職后馬上就可以發揮作用。
人物3:主管的主管
遇到“主管的主管”的時,往往已經是復試,這說明基本上已經是最后一關了。但要注意,這個最后一關是非常關鍵的一“關”。因為,往往如果你未來的主管在公司中某個專業夠權威的話,他的主管一般不會管招聘的事情。因此,你看到這位“老大”的原因,多半是你未來的那位主管的專業地位還沒有“穩定”。
最后的“搏殺”
過程大概是這樣的,一般會將兩個或三個人提交給“老大”,讓“老大”定奪,去選擇其中的一個人,因此,這個階段是一個最后的“搏殺”關鍵階段。老大”關注的問題:成本+人員素質
所以,我們在和“老大”過招的時候,一定要注意自己的言行,切忌不要穿“奇裝異服”,或者男士留有個性的頭發或胡子,總之一定要讓人看起來特別的“平常”,雖然不是“西裝革履”但也要“衣冠整潔”。
因為,老板們最不喜歡“個性”員工,而最喜歡的是“優秀”的普通員工。
清華大學出版社《Java程序員,上班那點事兒》作者:鐘聲 章節:1.2.2。
本文來自CSDN博客,轉載請http://blog.csdn.net/useway/archive/2009/08/02/4402385.aspx
標
明
出
處
:
第四篇:java程序員面試要點
第一,談談final, finally, finalize的區別。
final 用于聲明屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可繼承。finally是異常處理語句結構的一部分,表示總是執行。finalize是 Object類的一個方法,在垃圾收集器執行的時候會調用被回收對象的此方法,可以覆蓋此方法提供垃圾收集時的其他資源回收,例如關閉文件等。
第二,Anonymous Inner Class(匿名內部類)是否可以extends(繼承)其它類,是否可以implements(實現)interface(接口)?
可以繼承其他類或完成其他接口,在swing編程中常用此方式。
第三,Static Nested Class 和 Inner Class的不同,說得越多越好(面試題有的很籠統)。
Static Nested Class是被聲明為靜態(static)的內部類,它可以不依賴于外部類實例被實例化。而通常的內部類需要在外部類實例化后才能實例化。
第四,&和&&的區別。
&是位運算符,表示按位與運算,&&是邏輯運算符,表示邏輯與(and).第五,HashMap和Hashtable的區別。
HashMap是Hashtable的輕量級實現(非線程安全的實現),他們都完成了Map接口,主要區別在于HashMap允許空(null)鍵值(key),由于非線程安全,效率上可能高于Hashtable.第六,Collection 和 Collections的區別。
Collection是集合類的上級接口,繼承與他的接口主要有Set 和List.Collections是針對集合類的一個幫助類,他提供一系列靜態方法實現對各種集合的搜索、排序、線程安全化等操作。
第七,什么時候用assert。
1.4新增關鍵字(語法),用于測試boolean表達式狀態,可用于調試程序。使用方法 assert,表示如果表達式為真(true),則下面的語句執行,否則拋出AssertionError。另外的使用方式assert < boolean表達式>:,表示如果表達式為真,后面的表達式忽略,否則后面表達式的值用于AssertionError的構建參數。注意編譯時要增加-source 1.4 參數,否則報錯。]運行時要增加 –ea參數,否則assert行被忽略
第八,GC是什么? 為什么要有GC?
GC是垃圾收集的意思(Gabage Collection),內存處理是編程人員容易出現問題的地方,忘記或者錯誤的內存回收會導致程序或系統的不穩定甚至崩潰,Java提供的GC功能可以自動監測對象是否超過作用域從而達到自動回收內存的目的,Java語言沒有提供釋放已分配內存的顯示操作方法。
第九,String s = new String(“xyz”);創建了幾個String Object?
兩個
第十,Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
Math.round(11.5)==12Math.round(-11.5)==-11round方法返回與參數最接近的長整數,參數加1/2后求其floor.第十一,short s1 = 1;s1 = s1 + 1;有什么錯? short s1 = 1;s1 += 1;有什么錯?
short s1 = 1;s1 = s1 + 1;(s1+1運算結果是int型,需要強制轉換類型)short s1 = 1;s1 += 1;(可以正確編譯)
第十二,sleep()和 wait()有什么區別?
sleep是線程類(Thread)的方法,導致此線程暫停執行指定時間,給執行機會給其他線程,但是監控狀態依然保持,到時后會自動恢復。調用 sleep不會釋放對象鎖。wait是Object類的方法,對此對象調用wait方法導致本線程放棄對象鎖,進入等待此對象的等待鎖定池,只有針對此對象發出notify方法(或notifyAll)后本線程才進入對象鎖定池準備獲得對象鎖進入運行狀態。
第十三,Java有沒有goto?
沒有
很十三的問題,如果哪個面試的問到這個問題,我勸你還是別進這家公司。
第十四,數組有沒有length()這個方法? String有沒有length()這個方法?
數組沒有length()這個方法,有length的屬性。
String有有length()這個方法。
第十五,Overload和Override的區別。Overloaded的方法是否可以改變返回值的類型?
方法的重寫Overriding和重載Overloading是Java多態性的不同表現。重寫Overriding是父類與子類之間多態性的一種表現,重載Overloading是一個類中多態性的一種表現。如果在子類中定義某方法與其父類有相同的名稱和參數,我們說該方法被重寫(Overriding)。子類的對象使用這個方法時,將調用子類中的定義,對它而言,父類中的定義如同被“屏蔽”了。如果在一個類中定義了多個同名的方法,它們或有不同的參數個數或有不同的參數類型,則稱為方法的重載(Overloading)。Overloaded的方法是可以改變返回值的類型。
第十六,Set里的元素是不能重復的,那么用什么方法來區分重復與否呢? 是用==還是equals()? 它們有何區別?
Set里的元素是不能重復的,那么用iterator()方法來區分重復與否。equals()是判讀兩個Set是否相等。
equals()和==方法決定引用值是否指向同一對象equals()在類中被覆蓋,為的是當兩個分離的對象的內容和類型相配的話,返回真值。
第十七,給我一個你最常見到的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有什么區別?
error 表示恢復不是不可能但很困難的情況下的一種嚴重問題。比如說內存溢出。不可能指望程序能處理這樣的情況。
exception 表示一種設計或實現問題。也就是說,它表示如果程序運行正常,從不會發生的情況。
第十九,List, Set, Map是否繼承自Collection接口?
List,Set是
Map不是
第二十,abstract class和interface有什么區別?
聲明方法的存在而不去實現它的類被叫做抽象類(abstract class),它用于要創建一個體現某些基本行為的類,并為該類聲明方法,但不能在該類中實現該類的情況。不能創建abstract 類的實例。然而可以創建一個變量,其類型是一個抽象類,并讓它指向具體子類的一個實例。不能有抽象構造函數或抽象靜態方法。Abstract 類的子類為它們父類中的所有抽象方法提供實現,否則它們也是抽象類為。取而代之,在子類中實現該方法。知道其行為的其它類可以在類中實現這些方法。
接口(interface)是抽象類的變體。在接口中,所有方法都是抽象的。多繼承性可通過實現這樣的接口而獲得。接口中的所有方法都是抽象的,沒有一個 有程序體。接口只可以定義static final成員變量。接口的實現與子類相似,除了該實現類不能從接口定義中繼承行為。當類實現特殊接口時,它定義(即將程序體給予)所有這種接口的方法。然后,它可以在實現了該接口的類的任何對象上調用接口的方法。由于有抽象類,它允許使用接口名作為引用變量的類型。通常的動態聯編將生效。引用可以轉換到接口類型或從接口類型轉換,instanceof 運算符可以用來決定某對象的類是否實現了接口。
第二十一,abstract的method是否可同時是static,是否可同時是native,是否可同時是synchronized?
都不能
第二十二,接口是否可繼承接口? 抽象類是否可實現(implements)接口? 抽象類是否可繼承實體類(concrete class)?
接口可以繼承接口。抽象類可以實現(implements)接口,抽象類是否可繼承實體類,但前提是實體類必須有明確的構造函數。
第二十三,啟動一個線程是用run()還是start()?
啟動一個線程是調用start()方法,使線程所代表的虛擬處理機處于可運行狀態,這意味著它可以由JVM調度并執行。這并不意味著線程就會立即運行。run()方法可以產生必須退出的標志來停止一個線程。
第二十四,構造器Constructor是否可被override?
構造器Constructor不能被繼承,因此不能重寫Overriding,但可以被重載Overloading。
第二十五,是否可以繼承String類?
String類是final類故不可以繼承。
第二十六,當一個線程進入一個對象的一個synchronized方法后,其它線程是否可進入此對象的其它方法?
不能,一個對象的一個synchronized方法只能由一個線程訪問。
第二十七,try {}里有一個return語句,那么緊跟在這個try后的finally {}里的code會不會被執行,什么時候被執行,在return前還是后?
會執行,在return前執行。
第二十八,編程題: 用最有效率的方法算出2乘以8等於幾?
有C背景的程序員特別喜歡問這種問題。< < 3
第二十九,兩個對象值相同(x.equals(y)== true),但卻可有不同的hash code,這句話對不對?
不對,有相同的hash code。
第三十,當一個對象被當作參數傳遞到一個方法后,此方法可改變這個對象的屬性,并可返回變化后的結果,那么這里到底是值傳遞還是引用傳遞?
是值傳遞。Java 編程語言只由值傳遞參數。當一個對象實例作為一個參數被傳遞到方法中時,參數的值就是對該對象的引用。對象的內容可以在被調用的方法中改變,但對象的引用是永遠不會改變的。
第三十一,swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
switch(expr1)中,expr1是一個整數表達式。因此傳遞給 switch 和 case 語句的參數應該是 int、short、char 或者 byte。long,string 都不能作用于swtich。
第三十二,編程題: 寫一個Singleton出來。
Singleton模式主要作用是保證在Java應用程序中,一個類Class只有一個實例存在。
一般Singleton模式通常有幾種種形式:
第一種形式: 定義一個類,它的構造函數為private的,它有一個static的private的該類變量,在類初始化時實例話,通過一個public的getInstance方法獲取對它的引用,繼而調用其中的方法。
public class Singleton {
private Singleton(){}
//在自己內部定義自己一個實例,是不是很奇怪?
//注意這是private 只供內部調用
private static Singleton instance = new Singleton();
//這里提供了一個供外部訪問本class的靜態方法,可以直接訪問
public static Singleton getInstance(){
return instance;
} }
第二種形式:
public class Singleton {
private static Singleton instance = null;
public static synchronized Singleton getInstance(){
//這個方法比上面有所改進,不用每次都進行生成對象,只是第一次
//使用時生成實例,提高了效率!
if(instance==null)
instance=new Singleton();
return instance;} }
其他形式:
定義一個類,它的構造函數為private的,所有方法為static的。
一般認為第一種形式要更加安全些
其中也存在一些問題,下面補充一下.希望大家繼續補充
1.最好介紹一下final修飾變量的情形(分開說明基本類型變量和引用類型變量)。
2.不知道如何描述比較好,匿名內部類本身是一個實現了特定接口或繼承了其他類的類。
3.非靜態類不能有static的方法。參考一下java collections framework的代碼,還能說出很多東西來。
4.&既是位運算符,也是邏輯操作符。
&和&&都是邏輯運算符,它們的區別是,&&進行短路計算。
6.可以補充一下,參考文檔。
11.說一下具體的原因可能更好。
13.java有goto這個keyword,不過還沒有使用。
15.overload和多態沒有任何關系。多態是面向對象的基本特征,是和繼承、overriding相關的。原來以為把overload當作多態的一種是從C++來的,后來翻了基本c++的經典的書,也強調多態只是和繼承,虛函數,overriding相關,所以不知道這個錯誤思想從哪來的了.16.public interface Set
看文檔就是了.22.“抽象類是否可繼承實體類,但前提是實體類必須有明確的構造函數。”什么意思?誰規定的?
27.這個比較復雜,例如
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;} } }
這個例子中可以看出,return后面的表達式已經計算了,感覺return語句這里被掛起了,如果finally中沒有return,這個return就返回.如果finally也有return,那么就是finally中的return返回了.29.碰上不守規矩的程序員誰也沒辦法.31.還有枚舉呢
32.注釋有問題.
第五篇:Java程序員面試
Java程序員面試三十二問
第一,談談final,finally,finalize的區別。
Fanal 修飾符 可以修飾類,屬性和方法。被修飾的類不可以派生子類,不能被作為父類被繼承。它修飾的屬性和方法必須在聲明的時候給定初值,以后不能修改。
Fanaly 在捕獲異常的時候最后執行的語句,可以不寫。
Fanalize 是Object類中定義的,所以所有的類都繼承了它,這個方法是垃圾收集器將對象從內存中清除出去之前做必要的清理工作。
第二,Anonymous Inner Class(匿名內部類)是否可以extends(繼承)其它類,是否可以implements(實現)interface(接口)?
可以繼承其他類,也可以實現其他接口。匿名內部類在swing中比較常見。
第三,Static Nested Class 和 Inner Class的不同,說得越多越好(面試題有的很籠統)。
靜態內部類,普通的內部類
靜態內部類是不能直接調用外部的類,可以通過外部類的引用來調用
非靜態類inner class 可以自由的引用外部類的屬性和方法,但是它與一個實例綁定在了一起,不可以定義靜態的屬性、方法。
第四,&和&&的區別。
&和&&都是java中的邏輯運算符
&兩邊的表達式的結果都是true的,整個的運算結果才是true,只要有任意一個是false,其結果就是false的
&&是短路與,既第一個表達式是false 就不用判斷第二個表達式,結果就是false
第五,HashMap和Hashtable的區別。
它們實現了將key 映射到 value的對象,鍵和值都是對象,不能有重復的鍵,可以有重復的值
Hashtable是基于陳舊的Dictionary類的,HashMap是Map接口的一個實現 HashMap可以定義null key 和null 的value,而HashTable不可以
HashMap是線程不安全的,而HashTable線程安全,所以HashMap的效率比HashTable的要高些
第六,Collection 和 Collections的區別。
Collection是所有集合的父接口。
List 和set是Collection的子接口
Collections是操作有關集合的工具類。
第七,什么時候用assert.斷言 Debug模式下才有效
第八,GC是什么? 為什么要有GC?
GC是垃圾收集器。程序員不用擔心內存管理,因為垃圾收集器會自動進行管理。
第九,String s = new String(“xyz”);創建了幾個String Object?
2個,一個是引用對象s 還有字符串對象xyz
第十,Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
-11 第十一,short s1 = 1; s1 = s1 + 1;有什么錯? short s1 = 1; s1 += 1;有什么錯?
S1 =s1+1 會出錯,因為1默認為int型。相加會出錯。
S1+=1;雖然是一個意思,但是在jvm里面是不同的方法做的,是運算符重載,所以是不一樣的。
第十二,sleep()和 wait()有什么區別?
Sleep()是線程的休眠,方法里邊要有毫秒值。意思是過了多少毫秒后會執行一次。不釋放系統資源
Wait()是線程的等待,必須喚醒notify才能夠執行,不占用系統的資源
第十三,Java有沒有goto?
沒有,不過它是java語言中的保留字
第十四,數組有沒有length()這個方法? String有沒有length()這個方法?
數組中沒有length()方法,有length屬性。
String有length()方法,字符串的長度。
第十五,Overload和Override的區別。Overloaded的方法是否可以改變返回值的類型?
Overload是重載 重載的方法名字必須相同,參數表不同,可以改變返回類型
Override 是重寫 重寫是子類繼承父類的虛方法重新定義參數表要相同,返回類型也要和父類相同。
Overloaded可以改變返回類型
第十六,Set里的元素是不能重復的,那么用什么方法來區分重復與否呢? 是用==還是equals()? 它們有何區別?
set里的元素是不能重復的,用iterator()方法來區分重復與否。
equals 方法(是String類從它的超類Object中繼承的)被用來檢測兩個對象是否相等,即兩個對象的內容是否相等。
==用于比較引用和比較基本數據類型時具有不同的功能: 比較基本數據類型,如果兩個值相同,則結果為true
而在比較引用時,如果引用指向內存中的同一對象,結果為true
第十八,error和exception有什么區別?
Error 是編輯時出現的錯誤,不能通過編譯,也就是不能生成.class的文件
Exception是異常,異常是可以避免和捕獲的,程序能夠通過編譯。第十九,List,Set,Map是否繼承自Collection接口?
List set
是繼承Collection 接口的。Map不是 第二十,abstract class和interface有什么區別?
abstract class是抽象類,可以定義普通方法,也可以定義只有方法名,沒有實現的方法。抽象類是被繼承的 interface是接口,所有的方法都是抽象方法。實現接口就是重寫接口里的所有方法。
第二十一,abstract的method是否可同時是static,是否可同時是native,是否可同時是synchronized?
Abstract和method是不可以static的,因為抽象類是要被繼承的。
native是映射本地方法,不存在被子類繼承,所以也不能與abstract混用
抽象類沒有具體的實現,覺得定義成synchronized是沒有必要的,修飾具體的方法
才有意義
第二十二,接口是否可繼承接口? 抽象類是否可實現(implements)接口? 抽象類是否可繼承實體類(concrete class)?
接口可以繼承接口,extends
抽象類可以實現接口。
抽象類是可以繼承實體類的,但實體類中要有明確的構造函數。第二十三,啟動一個線程是用run()還是start()?
啟動線程要是start()方法。
第二十四,構造器Constructor是否可被override?
構造器不能被重寫的,可以重載。第二十五,是否可以繼承String類?
不能,String是final的。
第二十六,當一個線程進入一個對象的一個synchronized方法后,其它線程是否可進入此對象的其它方法?
如果其他的方法不是同步的,是可以進去的。
第二十七,try {}里有一個return語句,那么緊跟在這個try后的finally {}里的code會不會被執行,什么時候被執行,在return前還是后?
finally里的代碼會執行,在return之前執行
第二十八,編程題: 用最有效率的方法算出2乘以8等於幾?
2<<3 第十七,給我一個你最常見到的runtime exception.NullPointerException 空指針
ArrayIndexOutOfBoundException
數組下標越界
ClassCastException 造型異常 第二十九,兩個對象值相同(x.equals(y)== true),但卻可有不同的hash code,這句話對不對?
這是對的,equals方法是比較兩個值。而不是內存地址。
第三十,當一個對象被當作參數傳遞到一個方法后,此方法可改變這個對象的屬性,并可返回變化后的結果,那么這里到底是值傳遞還是引用傳遞?
第三十一,swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
第三十二,編程題: 寫一個Singleton出來。
Public class Singleton{ Private static Singleton s = new Singleton();Private Singleton(){ } Public static Singleton getInstance(){ Return s;}
}