Java 常考面試題及答案(吐血總結)持續更新...
1、解釋Java面向物件的特徵: 抽象、封裝、繼承、多型。
2、面向物件的好處是什麼?
3、Java常用的關鍵字、修飾符的使用
4、Java中的引數傳遞(值傳遞、引用傳遞)
5、簡述內部類、靜態內部類、匿名內部類的區別
6、try catch finally的使用
7、String 是最基本的資料型別嗎?
8、float f=3.4;是否正確?
9、解釋記憶體中的棧(stack)、堆(heap)和靜態儲存區的用法。
10、簡述while語句和do-while語句的特點與區別
11、swtich 是否能作用在byte 上,是否能作用在long 上,是否能作用在String上?
12、陣列有沒有length()方法?String 有沒有length()方法?
13、在Java 中,如何跳出當前的多重巢狀迴圈?
14、構造器(constructor)是否可被重寫(override)?
15、兩個物件值相同(x.equals(y) == true),但卻可有不同的hash code,這句話對不對?
16、是否可以繼承String 類?
17、當一個物件被當作引數傳遞到一個方法後,此方法可改變這個物件的屬性,並可返回變化後的結果,那麼這裡到底是值傳遞還是引用傳遞?
18、抽象的(abstract)方法是否可同時是靜態的(static),是否可同時是本地方法(native),是否可同時被synchronized修飾?
19、靜態變數和例項變數的區別?
20、是否可以從一個靜態(static)方法內部發出對非靜態(non-static)方法的呼叫?
21、如何實現物件克隆?
22、Anonymous Inner Class(匿名內部類)是否可以繼承其它類?是否可以實現介面?
23、Java 中的final關鍵字有哪些用法?
24、資料型別之間的轉換:
25、如何實現字串的反轉及替換?
26、怎樣將GB2312編碼的字串轉換為ISO-8859-1編碼的字串?
27、日期和時間:
28、列印昨天的當前時刻。
29、比較一下Java 和JavaSciprt。
30、什麼時候用assert?
31、Error 和Exception 有什麼區別?
32、詳解a++和++a的區別
33、a+=b 和a=a+b的區別
34.,Java中的泛型是什麼 ? 使用泛型的好處是什麼?
35,Java的泛型是如何工作的 ? 什麼是型別擦除 ?如何工作?
36,你可以把List傳遞給一個接受List引數的方法嗎?
37,如何阻止Java中的型別未檢查的警告?
38,Java中List和原始型別List之間的區別?
39,編寫一段泛型程式來實現LRU快取?
40,Array中可以用泛型嗎?
41,如何編寫一個泛型方法,讓它能接受泛型引數並返回泛型型別?
42,C++模板和java泛型之間有何不同?
1、一個".java"原始檔中是否可以包括多個類(不是內部類)?有什麼限制?
2、Java有沒有goto?
3、說說&和&&的區別。
4、在JAVA中如何跳出當前的多重巢狀迴圈?
5、switch語句能否作用在byte上,能否作用在long上,能否作用在String上?
6、short s1= 1; s1 = (s1+1是int型別,而等號左邊的是short型別,所以需要強轉)1 + 1;有什麼錯? short s1 = 1; s1 += 1;有什麼錯?(沒有錯)
7、char型變數中能不能存貯一箇中文漢字?為什麼?
8、用最有效率的方法算出2乘以8等於幾?
9、使用final關鍵字修飾一個變數時,是引用不能變,還是引用的物件不能變?
10,靜態變數和例項變數的區別?
11、是否可以從一個static方法內部發出對非static方法的呼叫?
12、Integer與int的區別
13、Math.round(11.5)等於多少?Math.round(-11.5)等於多少?
14、Overload和Override的區別?Overloaded的方法是否可以改變返回值的型別?
15、介面是否可繼承介面?抽象類是否可實現(implements)介面?抽象類是否可繼承具體類(concreteclass)?抽象類中是否可以有靜態的main方法?
16、Java中實現多型的機制是什麼?
17、abstractclass和interface語法上有什麼區別?
18、abstract的method是否可同時是static,是否可同時是native,是否可同時是synchronized?
19、內部類可以引用它的包含類的成員嗎?有沒有什麼限制?
20、String s = “Hello”;s = s + “world!”;這兩行程式碼執行後,原始的String物件中的內容到底變了沒有?
21、String s = new String(“xyz”);建立了幾個StringObject?是否可以繼承String類?
22、String、Stringbufer、StringBuilder區別
23、下面這條語句一共建立了多少個物件:String s=“a”+“b”+“c”+“d”;
24、try {}裡有一個return語句,那麼緊跟在這個try後的finally{}裡的code會不會被執行,什麼時候被執行,在return前還是後?
25、final, finally, finalize的區別。
26、執行時異常與一般異常有何異同?
27、error和exception有什麼區別?
28、簡單說說Java中的異常處理機制的簡單原理和應用。
29、Java 中堆和棧有什麼區別?
30、能將 int 強制轉換為 byte 型別的變數嗎?如果該值大於 byte 型別的範圍,將會出現什麼現象?
31、a.hashCode() 有什麼用?與 a.equals(b) 有什麼關係?
32、位元組流與字元流的區別
33、什麼是java序列化,如何實現java序列化?或者請解釋Serializable介面的作用。
34、描述一下JVM載入class檔案的原理機制?
35、heap和stack有什麼區別。
36、GC是什麼?為什麼要有GC?
37、垃圾回收的優點和原理。並考慮2種回收機制。
38、垃圾回收器的基本原理是什麼?垃圾回收器可以馬上回收記憶體嗎?有什麼辦法主動通知虛擬機器進行垃圾回收?
39、Java 中,throw 和 throws 有什麼區別
40,java中會存在記憶體洩漏嗎,請簡單描述。
1、ArrayList和Vector的區別
2、HashMap和Hashtable的區別
3、List和 Map區別?
4、List,Set, Map是否繼承自Collection介面?
5、List、Map、Set三個介面,存取元素時,各有什麼特點?
6、說出ArrayList,Vector,LinkedList的儲存效能和特性
7、去掉一個Vector集合中重複的元素
8、Collection和Collections的區別。
9、Set裡的元素是不能重複的,那麼用什麼方法來區分重複與否呢?是用==還是equals()?它們有何區別?
10、你所知道的集合類都有哪些?主要方法?
11、Java集合框架是什麼?說出一些集合框架的長處?
12、集合框架中的泛型有什麼長處?
13、Java集合框架的基礎介面有哪些?
14、為何Collection不從Cloneable和Serializable介面繼承?
15、為何Map介面不繼承Collection介面?
16、Iterator是什麼?
17、Enumeration和Iterator介面的差別?
18、為何沒有像Iterator.add()這種方法。向集合中加入元素?
19、為何迭代器沒有一個方法能夠直接獲取下一個元素。而不須要移動遊標?
20、Iterater和ListIterator之間有什麼差別?
21、遍歷一個List有哪些不同的方式?
22、通過迭代器fail-fast屬性,你明確了什麼?
23、fail-fast與fail-safe有什麼差別?
24、在迭代一個集合的時候,怎樣避免ConcurrentModificationException?
25、為何Iterator介面沒有詳細的實現?
26、UnsupportedOperationException是什麼?
27、在Java中,HashMap是怎樣工作的?
28、hashCode()和equals()方法有何重要性?
29、我們能否使用不論什麼類作為Map的key?
30、Map介面提供了哪些不同的集合檢視?
31、HashMap和HashTable有何不同?
32、怎樣決定選用HashMap還是TreeMap?
33、ArrayList和Vector有何異同點?
34、Array和ArrayList有何差別?什麼時候更適合用Array?
35、ArrayList和LinkedList有何差別?
36、哪些集合類提供對元素的隨機訪問?
37、EnumSet是什麼?
38、哪些集合類是執行緒安全的?
39、併發集合類是什麼?
40、BlockingQueue是什麼?
41、佇列和棧是什麼,列出它們的差別?
42、Collections類是什麼?
43、Comparable和Comparator介面是什麼?
44、Comparable和Comparator介面有何差別?
45、我們怎樣對一組物件進行排序?
46、當一個集合被作為引數傳遞給一個函式時,怎樣才幹夠確保函式不能改動它?
47、我們怎樣從給定集合那裡建立一個synchronized的集合?
48、集合框架裡實現的通用演算法有哪些?
49、大寫的O是什麼?舉幾個樣例?
50、與Java集合框架相關的有哪些最好的實踐?
1,什麼是執行緒?
2,執行緒和程序有什麼區別?
3,如何在Java中實現執行緒?
4,Java 關鍵字volatile 與 synchronized 作用與區別?
5,有哪些不同的執行緒生命週期?
6,你對執行緒優先順序的理解是什麼?
7,什麼是死鎖(Deadlock)?如何分析和避免死鎖?
8,什麼是執行緒安全?Vector是一個執行緒安全類嗎?
9,Java中如何停止一個執行緒?
10,什麼是ThreadLocal?
11,Sleep()、suspend()和wait()之間有什麼區別?
12,什麼是執行緒餓死,什麼是活鎖?
13,什麼是Java Timer類?如何建立一個有特定時間間隔的任務?
14,Java中的同步集合與併發集合有什麼區別?
15,同步方法和同步塊,哪個是更好的選擇?
16,什麼是執行緒池? 為什麼要使用它?
17,Java中invokeAndWait 和 invokeLater有什麼區別?
18,多執行緒中的忙迴圈是什麼?
1, 什麼是執行緒?
2,執行緒和程序有什麼區別?
3, 如何在Java中實現執行緒?
4,用Runnable還是Thread?
5,Thread 類中的start() 和 run() 方法有什麼區別?
6,Java中Runnable和Callable有什麼不同?
7,Java中CyclicBarrier 和 CountDownLatch有什麼不同?
8, Java記憶體模型是什麼?
9, Java中的volatile 變數是什麼?
10,什麼是執行緒安全?Vector是一個執行緒安全類嗎?
11,Java中什麼是競態條件? 舉個例子說明。
12,Java中如何停止一個執行緒?
13,一個執行緒執行時發生異常會怎樣?
14, 如何在兩個執行緒間共享資料?
15,Java中notify 和 notifyAll有什麼區別?
16,為什麼wait, notify 和 notifyAll這些方法不在thread類裡面?
17,什麼是ThreadLocal變數?
18, 什麼是FutureTask?
19,Java中interrupted 和 isInterruptedd方法的區別?
20, 為什麼wait和notify方法要在同步塊中呼叫?
21,為什麼你應該在迴圈中檢查等待條件?
22,Java中的同步集合與併發集合有什麼區別?
23, Java中堆和棧有什麼不同?
24,什麼是執行緒池? 為什麼要使用它?
25,如何寫程式碼來解決生產者消費者問題?
26, 如何避免死鎖?
27,Java中活鎖和死鎖有什麼區別?
28,怎麼檢測一個執行緒是否擁有鎖?
29,你如何在Java中獲取執行緒堆疊?
30, JVM中哪個引數是用來控制執行緒的棧堆疊小的
31, Java中synchronized 和 ReentrantLock 有什麼不同?
32,有三個執行緒T1,T2,T3,怎麼確保它們按順序執行?
33,Thread類中的yield方法有什麼作用?
34, Java中ConcurrentHashMap的併發度是什麼?
35, Java中Semaphore是什麼?
36,如果你提交任務時,執行緒池佇列已滿。會時發會生什麼?
37,Java執行緒池中submit() 和 execute()方法有什麼區別?
38,什麼是阻塞式方法?
39, Swing是執行緒安全的嗎? 為什麼?
40, Java中invokeAndWait 和 invokeLater有什麼區別?
41,Swing API中那些方法是執行緒安全的?
42, 如何在Java中建立Immutable物件?
43,Java中的ReadWriteLock是什麼?
44,多執行緒中的忙迴圈是什麼?
45,volatile 變數和 atomic 變數有什麼不同?
46,如果同步塊內的執行緒丟擲異常會發生什麼?
47, 單例模式的雙檢鎖是什麼?
48,如何在Java中建立執行緒安全的Singleton?
49,寫出3條你遵循的多執行緒最佳實踐
50,如何強制啟動一個執行緒?
51,Java中的fork join框架是什麼?
52, Java多執行緒中呼叫wait() 和 sleep()方法有什麼不同?
1、說一說Servlet的生命週期?
2、Servlet API中forward()與redirect()的區別?
3、request.getAttribute()和 request.getParameter()有何區別?
4,jsp靜態包含和動態包含的區別
5,MVC的各個部分都有那些技術來實現?如何實現?
6,jsp有哪些內建物件?作用分別是什麼?
7,Http中,get和post方法的區別
8,什麼是cookie?Session和cookie有什麼區別?
9,jsp和servlet的區別、共同點、各自應用的範圍?
10,tomcat容器是如何建立servlet類例項?用到了什麼原理?
11,AJAX有哪些有點和缺點?
12,AJAX應用和傳統Web應用有什麼不同?
13,Ajax的實現流程是怎樣的?
14,簡單說一下資料庫的三正規化?
15,Java集合框架是什麼?說出一些集合框架的優點?
16,Java集合框架的基礎介面有哪些?
17,集合框架中的泛型有什麼優點?
18,Enumeration和Iterator介面的區別?
19,Iterater和ListIterator之間有什麼區別?
20,我們如何對一組物件進行排序?
21,與Java集合框架相關的有哪些最好的實踐?
22,什麼是事務?
23,說說你開發中遇到過什麼難題啊?怎麼解決的?
1,談談你對Struts的理解。
2、談談你對Hibernate的理解。
3,談談你對Spring的理解。
4,談談Struts的優缺點
5,iBatis與Hibernate有什麼不同?
6,在hibernate進行多表查詢每個表中各取幾個欄位,也就是說查詢出來的結果集沒有一個實體類與之對應如何解決?
7,介紹一下Hibernate的二級快取
8,JDO是什麼?
9,Hibernate的一對多和多對一雙向關聯的區別??
10,Hibernate是如何延遲載入?
11,使用Spring框架的好處是什麼?
12,ApplicationContext通常的實現是什麼?
13,什麼是Spring的依賴注入?有哪些方法進行依賴注入
14,什麼是Spring beans?
15,解釋Spring支援的幾種bean的作用域。
16,解釋Spring框架中bean的生命週期。
17,在 Spring中如何注入一個java集合?
18,解釋不同方式的自動裝配 。
19,Spring框架的事務管理有哪些優點?
20.什麼是基於Java的Spring註解配置? 給一些註解的例子?
21,什麼是ORM?
22,Hibernate中SessionFactory是執行緒安全的嗎?Session是執行緒安全的嗎(兩個執行緒能夠共享同一個Session嗎)?
23,Session的save()、update()、merge()、lock()、saveOrUpdate()和persist()方法分別是做什麼的?有什麼區別?
24,闡述Session載入實體物件的過程。
25,MyBatis中使用#和$書寫佔位符有什麼區別?
26,解釋一下MyBatis中名稱空間(namespace)的作用。
27、MyBatis中的動態SQL是什麼意思?
28,JDBC程式設計有哪些不足之處,MyBatis是如何解決這些問題的?
29,MyBatis與Hibernate有哪些不同?
30,簡單的說一下MyBatis的一級快取和二級快取?
1,JDBC訪問資料庫的基本步驟是什麼?
2,說說preparedStatement和Statement的區別
3,說說事務的概念,在JDBC程式設計中處理事務的步驟。
4,資料庫連線池的原理。為什麼要使用連線池。
5,JDBC的髒讀是什麼?哪種資料庫隔離級別能防止髒讀?
6,什麼是幻讀,哪種隔離級別可以防止幻讀?
7,JDBC的DriverManager是用來做什麼的?
8,execute,executeQuery,executeUpdate的區別是什麼?
9,SQL查詢出來的結果分頁展示一般怎麼做?
10,JDBC的ResultSet是什麼?
11,查詢課程1的成績比課程2的成績高的所有學生的學號
12,查詢平均成績大於60分的同學的學號和平均成績
13,查詢所有同學的學號、姓名、選課數、總成績
14,查詢姓“張”的老師的個數
15,查詢沒學過“張三”老師課的同學的學號、姓名
16,查詢同時學過課程1和課程2的同學的學號、姓名
17,查詢學過“李四”老師所教所有課程的所有同學的學號、姓名
18,查詢課程編號1的成績比課程編號2的成績高的所有同學的學號、姓名
19,查詢所有課程成績小於60分的同學的學號、姓名
20,查詢至少有一門課程與學號為1的同學所學課程相同的同學的學號和姓名
21、把“sc”表中“王五”所教課的成績都更改為此課程的平均成績
22、查詢和編號為2的同學學習的課程完全相同的其他同學學號和姓名
23、刪除學習“王五”老師課的sc表記錄
24、向sc表中插入一些記錄,這些記錄要求符合以下條件:
將沒有課程3成績同學的該成績補齊, 其成績取所有學生的課程2的平均成績
25、按平平均分從高到低顯示所有學生的如下統計報表:
– 學號,企業管理,馬克思,UML,資料庫,物理,課程數,平均分
26、查詢各科成績最高分和最低分:以如下形式顯示:課程號,最高分,最低分
27、按各科平均成績從低到高和及格率的百分數從高到低順序
28、查詢如下課程平均成績和及格率的百分數(用"1行"顯示):
企業管理(001),馬克思(002),UML (003),資料庫(004)
29、查詢不同老師所教不同課程平均分, 從高到低顯示
30、查詢如下課程成績均在第3名到第6名之間的學生的成績:
– [學生ID],[學生姓名],企業管理,馬克思,UML,資料庫,平均成績