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