- 相關推薦
Java框架面試題
無論是在學校還是在社會中,我們都要用到試題,試題可以幫助參考者清楚地認識自己的知識掌握程度。什么樣的試題才是好試題呢?以下是小編為大家收集的Java框架面試題,歡迎閱讀,希望大家能夠喜歡。
Java框架面試題 1
1. 請簡述STRUTS架構
Struts是采用Java Servlet/JavaServer Pages技術,開發(fā)Web應用程序的開放源碼的framework。 采用Struts能開發(fā)出基于MVC(Model-View-Controller)設計模式的應用構架。 Struts有如下的主要功能: 一.包含一個controller servlet,能將用戶的請求發(fā)送到相應的Action對象。 二.JSP自由tag庫,并且在controller servlet中提供關聯(lián)支持,幫助開發(fā)員創(chuàng)建交互式表單應用。 三.提供了一系列實用對象:XML處理、通過Java reflection APIs自動處理JavaBeans屬性、國際化的提示和消息。
2. 在Spring框架中,如何解決Web頁面亂碼問題?
可以采用Spring框架自帶的過濾器CharacterEncodingFilter,配置方式如下:
在web.xml文件中filter的位置加上如下內容:
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding UTF-8
forceEncoding true
encodingFilter
3. 在Struts中,如何實現(xiàn)防止表單的重復提交操作?
Struts的Token(令牌)機制能夠很好的解決表單重復提交的問題,基本原理是:服務器端在處理到達的請求之前,會將請求中包含的令牌值與保存在當前用戶會話中的令牌值進行比較,看是否匹配。在處理完該請求后,且在答復發(fā)送給客戶端之前,將會產(chǎn)生一個新的令牌,該令牌除傳給客戶端以外,也會將用戶會話中保存的舊的令牌進行替換。這樣如果用戶回退到剛才的提交頁面并再次提交的話,客戶端傳過來的令牌就和服務器端的令牌不一致,從而有效地防止了重復提交的發(fā)生。
4. Struts的入口類?
答:ActionServlet是Struts的入口類,所有的struts請求都經(jīng)由該類轉發(fā)處理
5. 關于hibernate:
1)在hibernate中,在配置文件呈標題一對多,多對多的'標簽是什么;
2)Hibernate的二級緩存是什么;
3)Hibernate是如何處理事務的;
答:1)一對多的標簽為: ;多對多的標簽為:;
2)sessionFactory的緩存為hibernate的二級緩存;
3)Hibernate的事務實際上是底層的JDBC Transaction的封裝或者是JTA Transaction的封裝;默認情況下使用JDBCTransaction。
6. 寫出你熟悉的開源框架以及各自的作用。
答:框架:hibernate,spring,struts.
Hibernate主要用于數(shù)據(jù)持久化;
Spring 的控制反轉能起到解耦合的作用;
Struts 主要用于流程控制;
服務器類:Apache Tomcat Jboss等
7. 請寫出spring中I0C的三種實現(xiàn)機制。(Spring)
答:三種機制為:通過setter方法注入、通過構造方法注入和接口注入。
Java框架面試題 2
1、Collection 和 Collections的區(qū)別?
Collection是集合的根接口,其下有set及l(fā)ist
Collections是集合的算法。
2、Set里的元素是不能重復的,那么用什么方法來區(qū)分重復與否呢? 是用==還是equals? 它們有何區(qū)別?用contains來區(qū)分是否有重復的對象。還是都不用?
在比較時先調用hashCode方法,如果不相同,證明不相等。
如果相同,再調用equals方法,如果equals方法相同,證明相等,不相同,證明不相等。
==:主要用在基本數(shù)據(jù)類型及引用
equals:主要是對象或對象引用的比較。
集合中是否包含某一個元素用contains來判斷。
3、List,Set,Map是否繼承自Collection接口?
List,set繼承于Collection
Map沒有繼承于Collection,其相對是獨立的。
屬于Collection類型的對象,可以通過構造函數(shù)將一個集合構造成另外一個集合。
4、面向對象的特征有哪些方面?
1.抽象:
找共性,將共有的屬性、方法放到父類中
2.繼承:
子類繼承于父類,具有父類的所有屬性與方法,可以重用,也可以覆蓋。
3.封裝:
一個類包括多個屬性及方法。
4. 多態(tài)性:
5、String是最基本的數(shù)據(jù)類型嗎?
基本數(shù)據(jù)類型包括byte、int、char、long、float、double、boolean和short。
java.lang.String類是final類型的,因此不可以繼承這個類、不能修改這個類。為了提高效率節(jié)省空間,我們應該用StringBuffer類
6、int 和 Integer 有什么區(qū)別?
int 是基本數(shù)據(jù)類型,不是對象,占一個內存空間,沒有方法。與其同類的有l(wèi)ong,char,doble
Integer是封裝類,具有方法及屬性。與其同類的有Long,Double.Float
7、運行時異常與一般異常有何異同?
運行時異常:JVM拋出的異常,代碼中不用處理。
一般異常:用戶拋出的異常,如果用throws 聲明了,調用這個方法的代碼必須對其處理。
8、&和&&的區(qū)別?
&:與: 左邊若為false右邊還執(zhí)行。
&&:短路與,左邊若為false右邊不執(zhí)行。
9、final,finally,finalize的區(qū)別?
final 用于聲明屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可繼承。
finally是異常處理語句結構的一部分,表示總是執(zhí)行。
finalize是Object類的一個方法,在垃圾收集器執(zhí)行的時候會調用被回收對象的此方法,可以覆蓋此方法提供垃圾收集時的其他資源回收,例如關閉文件等。
10、heap和stack有什么區(qū)別?
棧是一種線形集合,其添加和刪除元素的操作應在同一段完成。棧按照后進先出的方式進行處理。堆是棧的一個組成元素
11、Static Nested Class 和 Inner Class的不同?
Static Nested Class是被聲明為靜態(tài)(static)的內部類,它可以不依賴于外部類實例被實例化。而通常的內部類需要在外部類實例化后才能實例化。
12、GC是什么? 為什么要有GC?
GC是垃圾收集的意思(Gabage Collection),內存處理是編程人員容易出現(xiàn)問題的地方,忘記或者錯誤的內存回收會導致程序或系統(tǒng)的.不穩(wěn)定甚至崩潰,Java提供的GC功能可以自動監(jiān)測對象是否超過作用域從而達到自動回收內存的目的,Java語言沒有提供釋放已分配內存的顯示操作方法。
13、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;(可以正確編譯)
14、Math.round(11.5)等于多少? Math.round(-11.5)等于多少?
Math.round(11.5)==12
Math.round(-11.5)==-11
round方法返回與參數(shù)最接近的長整數(shù),參數(shù)加1/2后求其floor.
15、Java有沒有goto?
java中的保留字,現(xiàn)在沒有在java中使用。
16、給出一個你最常見到的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
一般異常:
IOException
FileNotFoundException
SqlException
17、構造器Constructor是否可被override?
構造器Constructor不能被繼承,因此不能重寫Overriding,但可以被重載Overloading。
18、是否可以繼承String類?
String類是final類故不可以繼承。
19、swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
switch(expr1)中,expr1是一個整數(shù)表達式。因此傳遞給 switch 和 case 語句的參數(shù)應該是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。
20、try {}里有一個return語句,那么緊跟在這個try后的finally {}里的code會不會被執(zhí)行,什么時候被執(zhí)行,在return前還是后?
會執(zhí)行,在return前執(zhí)行。
21、兩個對象值相同(x.equals(y) == true),但卻可有不同的hash code,這句話對不對?
不對,有相同的 hash code
這是java語言的定義:
1) 對象相等則hashCode一定相等;
2) hashCode相等對象未必相等
22、四種會話跟蹤技術?
Cookie
Session
Hidden
url 重寫
23、Java中的異常處理機制的簡單原理和應用。
原理: 有錯直接轉到異常處理部分或向上拋出。
應用:JAVA的異常就是錯誤,有兩種,一種是運行時,編碼可以不用捕捉。一種是一般異常,如果throws聲明了,必須進行處理。
24、描述一下JVM加載class文件的原理機制?
JVM中類的裝載是由ClassLoader和它的子類來實現(xiàn)的,Java ClassLoader 是一個重要的Java運行時系統(tǒng)組件。它負責在運行時查找和裝入類文件的類。
【Java框架面試題】相關文章:
Java經(jīng)典面試題12-29
Java面試題09-27
JAVA經(jīng)典算法面試題04-16
瞬聯(lián)java面試題03-26
2016高薪Java面試題02-20
java線程面試題匯總02-22
2016年Java開發(fā)崗位面試題02-20
20個高級Java面試題匯總02-18
如何打好簡歷框架02-16
硅谷面試題精選02-03