JAVA面試題全集
JAVA語言如何進(jìn)行異常處理?下面就由學(xué)習(xí)啦小編為大家介紹一下JAVA面試題全集的文章,歡迎閱讀。
JAVA面試題全集篇1
一、Java基礎(chǔ)知識
1.Java有那些基本數(shù)據(jù)類型,String是不是基本數(shù)據(jù)類型,他們有何區(qū)別。
2.字符串的操作:
寫一個(gè)方法,實(shí)現(xiàn)字符串的反轉(zhuǎn),如:輸入abc,輸出cba
寫一個(gè)方法,實(shí)現(xiàn)字符串的替換,如:輸入bbbwlirbbb,輸出bbbhhtccc。
3.數(shù)據(jù)類型之間的轉(zhuǎn)換
如何將數(shù)值型字符轉(zhuǎn)換為數(shù)字(Integer,Double)
如何將數(shù)字轉(zhuǎn)換為字符
如何取小數(shù)點(diǎn)前兩位,并四舍五入。
4.日期和時(shí)間
如何取得年月日,小時(shí)分秒
如何取得從1970年到現(xiàn)在的毫秒數(shù)
如何獲取某個(gè)日期是當(dāng)月的最后一天
如何格式化日期
5.數(shù)組和集合
6.文件和目錄(I/O)操作
如何列出某個(gè)目錄下的所有文件
如何列出某個(gè)目錄下的所有子目錄
判斷一個(gè)文件或目錄是否存在
如何讀寫文件
7.Java多態(tài)的實(shí)現(xiàn)(繼承、重載、覆蓋)
8.編碼轉(zhuǎn)換,怎樣實(shí)現(xiàn)將GB2312編碼的字符串轉(zhuǎn)換為ISO-8859-1編碼的字符串。
9.Java中訪問數(shù)據(jù)庫的步驟,Statement和PreparedStatement之間的區(qū)別。
10.找出下列代碼可能存在的錯(cuò)誤,并說明原因:
二、JSP&Servlet技術(shù)
1.描述JSP和Servlet的區(qū)別、共同點(diǎn)、各自應(yīng)用的范圍
2.在Web開發(fā)中需要處理HTML標(biāo)記時(shí),應(yīng)做什么樣的處理,要篩選那些字符(< > & “”)
3.在JSP中如何讀取客戶端的請求,如何訪問CGI變量,如何確定某個(gè)Jsp文件的真實(shí)路徑。
4.描述Cookie和Session的作用,區(qū)別和各自的應(yīng)用范圍,Session工作原理。
5.列出Jsp中包含外部文件的方式,兩者有何區(qū)別。
6.說明Jsp中errorPage的作用,應(yīng)用范圍。
7.介紹在Jsp中如何使用JavaBeans。
8.簡單介紹JSP的標(biāo)記庫
9.Jsp和Servlet中的請求轉(zhuǎn)發(fā)分別如何實(shí)現(xiàn)。
三、J2EE相關(guān)知識
1.介紹J2EE、J2SE、J2SE的區(qū)別。
2.J2EE是一種技術(shù)還是一種平臺,他提供了那些技術(shù)。
3.什么是Application Server,它有什么功能和優(yōu)點(diǎn)。
4.簡單介紹連接池的優(yōu)點(diǎn)和原理。
5.Web.xml的作用
四、其他
1.Web安全性的考慮(表單驗(yàn)證、瀏覽器Basic方式的驗(yàn)證,應(yīng)用程序的安全性,SSL,代碼考慮)
2.簡單介紹您所了解的MVC。
3.簡單介紹所了解的XML。
4.文檔和編碼規(guī)范
5.Java中的分頁、效率考慮。
6.簡單介紹您所了解的structs。
JAVA面試題全集篇2
1.xml在項(xiàng)目中的作用
2.s-EJB 與 e-EJB的區(qū)別
3.會(huì)話面的作用
4.cmp與bmp的優(yōu)缺點(diǎn)
5.j2me程序的必需的幾個(gè)部分
6.c/s與b/s的區(qū)別
7.構(gòu)建一個(gè)connect pool,然后再調(diào)用它,
8.j2ee平臺與dotnet平臺的區(qū)別
9.ejb的life cycle
10.session bean 和 entity bean的區(qū)別
11.ejb中的transaction機(jī)制
12.synchronized (生產(chǎn)者和消費(fèi))
13.String 和 StringBuffer
14.Serializable
15.MVC (Struts的工作流程)
16.什么是MDA
17.tcp與udp的區(qū)別
18.鏈表與散列表和數(shù)組的區(qū)別
19.堆和棧的區(qū)別
20.ejb的分類及區(qū)別
21.你對現(xiàn)在軟件業(yè)以及國內(nèi)軟件業(yè)的看法
22.談?wù)刯ava多線程
23.談?wù)勎募用芗夹g(shù)
24.軟件開發(fā)生命周期
25.路由協(xié)議種類及特點(diǎn)
26.java的awt和swing組件的GUI設(shè)計(jì)的關(guān)鍵
27.對于java流的認(rèn)識
28.簡單描述一下awt與swing區(qū)別。
29.簡述java編程中事件處理模式。
30.你編寫過applet嗎?applet的安全權(quán)限如何?試列舉java application或者applet中與servlet/jsp通信可以采用的方式。
31.簡述邏輯操作(如&,|)與條件操作(如&&,||)的區(qū)別。
32.簡述 Java Server Page 和 Servlet 的聯(lián)系和區(qū)別。
33.簡述synchronized和java.util.concurrent.locks.Lock的異同 ?
34.EJB規(guī)范規(guī)定EJB中禁止的操作有哪些?
35.java除了8種基本類型外,在虛擬機(jī)里還有哪一種,有什么作用?
36.除了使用new關(guān)鍵字創(chuàng)建對象意外,試列舉另外三種以上創(chuàng)建實(shí)例的方式?
37.classloader中,JDK的API、Classpath中的同web-inf中的class加載方式有什么區(qū)別?
38.列舉三種以上垃圾回收算法,并比較其優(yōu)缺點(diǎn)?
39.編寫代碼實(shí)現(xiàn)一個(gè)線程池
40.描述一下JVM加載class文件的原理機(jī)制?
41.試舉例說明一個(gè)典型的垃圾回收算法?
42.請用java寫二叉樹算法,實(shí)現(xiàn)添加數(shù)據(jù)形成二叉樹功能,并以先序的方式打印出來.
43.請寫一個(gè)java程序?qū)崿F(xiàn)線程連接池功能?
44.給定一個(gè)C語言函數(shù),要求實(shí)現(xiàn)在java類中進(jìn)行調(diào)用。
45.如何獲得數(shù)組的長度?
46.訪問修飾符“public/private/protected/缺省的修飾符”的使用
47.用關(guān)鍵字final修飾一個(gè)類或者方法時(shí),有何意義?
48.掌握類和對象的概念,掌握面向?qū)ο缶幊痰谋举|(zhì)
49.靜態(tài)變量和靜態(tài)方法的意義,如何引用一個(gè)類的靜態(tài)變量或者靜態(tài)方法?
50.JAVA語言如何進(jìn)行異常處理,關(guān)鍵字:thorws,throw,try,catch,finally
51.Object類(或者其子類)的finalize()方法在什么情況下被調(diào)用?
52.一個(gè)“.java”原文件中是否可以包括多個(gè)類(不是內(nèi)部類)?
53.掌握內(nèi)部類和接口的概念
54.StringTokenizer類的使用
55.數(shù)據(jù)結(jié)構(gòu),如何遍歷List中的元素?
如果要按照鍵值保存或者訪問數(shù)據(jù),使用什么數(shù)據(jù)結(jié)構(gòu)?
要掌握Collection相關(guān)的接口和類的使用
56.使用StringBuffer類與String類進(jìn)行字符串連接時(shí)有何區(qū)別?
57.調(diào)用Thread類的destroy()方法有什么后果?
58.多線程,用什么關(guān)鍵字修飾同步方法?stop()和suspend()方法為何不推薦使用?
59.使用socket建立客戶端與服務(wù)器的通信的過程
60.JAVA語言國際化應(yīng)用,Locale類,Unicode
61.描述反射機(jī)制的作用
62.如何讀寫一個(gè)文件?
63.在圖形界面中,一個(gè)按鈕如何處理鼠標(biāo)點(diǎn)擊事件?
64.在圖形界面中,一個(gè)表格,如何實(shí)現(xiàn)編輯單元格時(shí)彈出下拉框?
65.如何加載圖片?
66.什么是模態(tài)對話框?
67.闡述MVC的概念
68.GUI布局管理器的使用,F(xiàn)lowLayout,BorderLayout,GridBagLayout
69.如何構(gòu)造一棵樹?選擇樹的一個(gè)節(jié)點(diǎn)時(shí),如何得到這個(gè)節(jié)點(diǎn)?
70.向編輯框中輸入字符時(shí),如何控制只輸入整數(shù)?
71.描述使用JDBC連接數(shù)據(jù)庫的過程
72.EJB分為幾類?什么是BMP,CMP?
73.什么是JNDI?
74.ADO是什么?ActiveX數(shù)據(jù)對象,是一個(gè)應(yīng)用級程序接口.
75.四種JDBC方式?目前的版本?
76.EJB有哪幾種?區(qū)別是什么?
77.JavaBean與EJB有什么區(qū)別?
78.軟件開發(fā)生命周期有哪幾個(gè)階段?
79.軟件開發(fā)有哪些因素?
80.軟件開發(fā)中如何進(jìn)行版本控制?
81.UML中,類視圖如何表示類中的繼承與聚合?
82.客戶端游標(biāo)與服務(wù)器端游標(biāo)的區(qū)別?
83.動(dòng)態(tài)游標(biāo)與靜態(tài)游標(biāo)的區(qū)別?
84.dotnet由哪幾個(gè)基本框架組成?
85.Oracle中SGA是什么?
86.web servers是什么?
87.UNIX中QT是什么意思?
88.在軟件開發(fā)生命周期中的哪個(gè)階段開始測試?
89.dotnet與J2EE的比較?
90.什么是ActiveX?
91.Java中IDL是什么?
92.ISO9000和CMM是什么?IS09000和CMM(軟件能力成熟度模型)認(rèn)證是國際上通用的軟件質(zhì)量評估方法.CMM的五個(gè)成熟度等級。
JAVA面試題全集篇3
第一,談?wù)刦inal, finally, finalize的區(qū)別。
final?修飾符(關(guān)鍵字)如果一個(gè)類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被繼承。因此一個(gè)類不能既被聲明為 abstract的,又被聲明為final的。將變量或方法聲明為final,可以保證它們在使用中不被改變。被聲明為final的變量必須在聲明時(shí)給定初值,而在以后的引用中只能讀取,不可修改。被聲明為final的方法也同樣只能使用,不能重載
finally?再異常處理時(shí)提供 finally 塊來執(zhí)行任何清除操作。如果拋出一個(gè)異常,那么相匹配的 catch 子句就會(huì)執(zhí)行,然后控制就會(huì)進(jìn)入 finally 塊(如果有的話)。
finalize?方法名。Java 技術(shù)允許使用 finalize() 方法在垃圾收集器將對象從內(nèi)存中清除出去之前做必要的清理工作。這個(gè)方法是由垃圾收集器在確定這個(gè)對象沒有被引用時(shí)對這個(gè)對象調(diào)用的。它是在 Object 類中定義的,因此所有的類都繼承了它。子類覆蓋 finalize() 方法以整理系統(tǒng)資源或者執(zhí)行其他清理工作。finalize() 方法是在垃圾收集器刪除對象之前對這個(gè)對象調(diào)用的。
第二,Anonymous Inner Class (匿名內(nèi)部類) 是否可以extends(繼承)其它類,是否可以implements(實(shí)現(xiàn))interface(接口)?
匿名的內(nèi)部類是沒有名字的內(nèi)部類。不能extends(繼承) 其它類,但一個(gè)內(nèi)部類可以作為一個(gè)接口,由另一個(gè)內(nèi)部類實(shí)現(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)建一個(gè)static內(nèi)部類的對象,不需要一個(gè)外部類對象,2不能從一個(gè)static內(nèi)部類的一個(gè)對象訪問一個(gè)外部類對象
第七,什么時(shí)候用assert。
斷言是一個(gè)包含布爾表達(dá)式的語句,在執(zhí)行這個(gè)語句時(shí)假定該表達(dá)式為 true。如果表達(dá)式計(jì)算為 false,那么系統(tǒng)會(huì)報(bào)告一個(gè) AssertionError。它用于調(diào)試目的:
assert(a > 0); // throws an AssertionError if a <= 0
斷言可以有兩種形式:
assert Expression1 ;
assert Expression1 : Expression2 ;
Expression1 應(yīng)該總是產(chǎn)生一個(gè)布爾值。
Expression2 可以是得出一個(gè)值的任意表達(dá)式。這個(gè)值用于生成顯示更多調(diào)試信息的 String 消息。
斷言在默認(rèn)情況下是禁用的。要在編譯時(shí)啟用斷言,需要使用 source 1.4 標(biāo)記:
javac -source 1.4 Test.java
要在運(yùn)行時(shí)啟用斷言,可使用 -enableassertions 或者 -ea 標(biāo)記。
要在運(yùn)行時(shí)選擇禁用斷言,可使用 -da 或者 -disableassertions 標(biāo)記。
要系統(tǒng)類中啟用斷言,可使用 -esa 或者 -dsa 標(biāo)記。還可以在包的基礎(chǔ)上啟用或者禁用斷言。
可以在預(yù)計(jì)正常情況下不會(huì)到達(dá)的任何位置上放置斷言。斷言可以用于驗(yàn)證傳遞給私有方法的參數(shù)。不過,斷言不應(yīng)該用于驗(yàn)證傳遞給公有方法的參數(shù),因?yàn)椴还苁欠駟⒂昧藬嘌裕蟹椒ǘ急仨殭z查其參數(shù)。不過,既可以在公有方法中,也可以在非公有方法中利用斷言測試后置條件。另外,斷言不應(yīng)該以任何方式改變程序的狀態(tài)。
第九,String s = new String("xyz");創(chuàng)建了幾個(gè)String Object?
兩個(gè)對象,一個(gè)是“xyx”,一個(gè)是指向“xyx”的引用對象s。
第十一,short s1 = 1; s1 = s1 + 1;有什么錯(cuò)? short s1 = 1; s1 += 1;有什么錯(cuò)?
short s1 = 1; s1 = s1 + 1;有錯(cuò),s1是short型,s1+1是int型,不能顯式轉(zhuǎn)化為short型??尚薷臑閟1 =(short)(s1 + 1) 。short s1 = 1; s1 += 1正確。
第十二,sleep() 和 wait() 有什么區(qū)別? 搞線程的最愛
sleep()方法是使線程停止一段時(shí)間的方法。在sleep 時(shí)間間隔期滿后,線程不一定立即恢復(fù)執(zhí)行。這是因?yàn)樵谀莻€(gè)時(shí)刻,其它線程可能正在運(yùn)行而且沒有被調(diào)度為放棄執(zhí)行,除非(a)“醒來”的線程具有更高的優(yōu)先級
(b)正在運(yùn)行的線程因?yàn)槠渌蚨枞?/p>
wait()是線程交互時(shí),如果線程對一個(gè)同步對象x 發(fā)出一個(gè)wait()調(diào)用,該線程會(huì)暫停執(zhí)行,被調(diào)對象進(jìn)入等待狀態(tài),直到被喚醒或等待時(shí)間到。
sleep是線程類(Thread)的方法,導(dǎo)致此線程暫停執(zhí)行指定時(shí)間,給執(zhí)行機(jī)會(huì)給其他線程,但是監(jiān)控狀態(tài)依然保持,到時(shí)后會(huì)自動(dòng)恢復(fù)。調(diào)用sleep不會(huì)釋放對象鎖。
wait是Object類的方法,對此對象調(diào)用wait方法導(dǎo)致本線程放棄對象鎖,進(jìn)入等待此對象的等待鎖定池,只有針對此對象發(fā)出notify方法(或notifyAll)后本線程才進(jìn)入對象鎖定池準(zhǔn)備獲得對象鎖進(jìn)入運(yùn)行狀態(tài)。
第十三,Java有沒有g(shù)oto?
Goto?java中的保留字,現(xiàn)在沒有在java中使用。
第十四,數(shù)組有沒有l(wèi)ength()這個(gè)方法? String有沒有l(wèi)ength()這個(gè)方法?
數(shù)組沒有l(wèi)ength()這個(gè)方法,有l(wèi)ength的屬性。
String有有l(wèi)ength()這個(gè)方法。
第二十一,abstract的method是否可同時(shí)是static,是否可同時(shí)是native,是否可同時(shí)是synchronized?
都不能