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