第一篇:Java面試題總結(jié)
二、Get和Post的區(qū)別
1.get是從服務(wù)器上獲取數(shù)據(jù),post是向服務(wù)器傳送數(shù)據(jù),2.get傳送的數(shù)據(jù)量較小,不能大于2KB。post傳送的數(shù)據(jù)量較大,一般被默認(rèn)為不受限制。
3.get安全性非常低,post安全性較高。但是執(zhí)行效率卻比Post方法好。4.在進(jìn)行文件上傳時(shí)只能使用post而不能是get。
四、StringBuffer StringBuilder String 區(qū)別
String 字符串常量 不可變 使用字符串拼接時(shí)是不同的2個(gè)空間 StringBuffer 字符串變量 可變 線程安全 字符串拼接直接在字符串后追加 StringBuilder 字符串變量 可變 非線程安全 字符串拼接直接在字符串后追加
1.StringBuilder執(zhí)行效率高于StringBuffer高于String.2.String是一個(gè)常量,是不可變的,所以對(duì)于每一次+=賦值都會(huì)創(chuàng)建一個(gè)新的對(duì)象,StringBuffer和StringBuilder都是可變的,當(dāng)進(jìn)行字符串拼接時(shí)采用append方
法,在原來(lái)的基礎(chǔ)上進(jìn)行追加,所以性能比String要高,又因?yàn)镾tringBuffer 是
線程安全的而StringBuilder是線程非安全的,所以StringBuilder的效率高于
StringBuffer.3.對(duì)于大數(shù)據(jù)量的字符串的拼接,采用StringBuffer,StringBuilder.七、Forword(請(qǐng)求轉(zhuǎn)發(fā))與Redirect(重定向)區(qū)別:
十四、List,Set,Collection,Collections 集合特點(diǎn)、框架
(寫在紙上)作業(yè) 總結(jié)錯(cuò)誤
總結(jié)中級(jí)知識(shí)點(diǎn)圖(用電腦鍵wend文件)
第二篇:JAVA面試題
1、面向?qū)ο蟮乃膫€(gè)特征:封裝、繼承、多態(tài)、抽象
封裝:
繼承:子類繼承父類,除private修飾以外的所以方法和屬性 多態(tài):一個(gè)對(duì)象多種狀態(tài),可以把子類對(duì)象當(dāng)作父類對(duì)象來(lái)看,一旦這樣做了,就只能
去調(diào)用父類中原有定義的屬性和方法,也就是子類中擴(kuò)展的方法或?qū)傩跃筒荒苷{(diào)用了。
抽象:
2、abstractclass 和interface的區(qū)別
聲明方法的存在而不去實(shí)現(xiàn)它的類被叫做抽象類(abstract class),它用于要?jiǎng)?chuàng)建一個(gè)體現(xiàn)某些基本行為的類,并為該類聲明方法,但不能在該類中實(shí)現(xiàn)該類的情況。不能創(chuàng)建abstract 類的實(shí)例。然而可以創(chuàng)建一個(gè)變量,其類型是一個(gè)抽象類,并讓它指向具體子類的一個(gè)實(shí)例。不能有抽象構(gòu)造函數(shù)或抽象靜態(tài)方法。Abstract 類的子類為它們父類中的所有抽象方法提供實(shí)現(xiàn),否則它們也是抽象類為。取而代之,在子類中實(shí)現(xiàn)該方法。知道其行為的其它類可以在類中實(shí)現(xiàn)這些方法。
接口(interface)是抽象類的變體。在接口中,所有方法都是抽象的。多繼承性可通過(guò)實(shí)現(xiàn)這樣的接口而獲得。接口中的所有方法都是抽象的,沒(méi)有一個(gè)有程序體。接口只可以定義static final成員變量。接口的實(shí)現(xiàn)與子類相似,除了該實(shí)現(xiàn)類不能從接口定義中繼承行為。當(dāng)類實(shí)現(xiàn)特殊接口時(shí),它定義(即將程序體給予)所有這種接口的方法。然后,它可以在實(shí)現(xiàn)了該接口的類的任何對(duì)象上調(diào)用接口的方法。由于有抽象類,它允許使用接口名作為引用變量的類型。通常的動(dòng)態(tài)聯(lián)編將生效。引用可以轉(zhuǎn)換到接口類型或從接口類型轉(zhuǎn)換,instanceof 運(yùn)算符可以用來(lái)決定某對(duì)象的類是否實(shí)現(xiàn)了接口。
3、final、finally、finalize的區(qū)別
final 用于聲明屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可繼承。finally是異常處理語(yǔ)句結(jié)構(gòu)的一部分,表示總是執(zhí)行。
finalize是Object類的一個(gè)方法,在垃圾收集器執(zhí)行的時(shí)候會(huì)調(diào)用被回收對(duì)象的此方法,可以覆蓋此方法提供垃圾收集時(shí)的其他資源回收,例如關(guān)閉文件等。
4、匿名內(nèi)部類是否可以作為父類被其他類繼承,或做為接口被實(shí)現(xiàn)?
匿名內(nèi)部類不被繼承也不能被實(shí)現(xiàn),因?yàn)樗鼪](méi)有名字,而一個(gè)內(nèi)部類只要有名字就可以作為父類被繼承,也可以作為借口被實(shí)現(xiàn)。
5、多線程有幾種實(shí)現(xiàn)方法,同步有幾種實(shí)現(xiàn)方法,都是什么?
多線程有兩種實(shí)現(xiàn)方法,分別繼承繼承Thread類與實(shí)現(xiàn)runnable借口。
同步的實(shí)現(xiàn)方法有兩種,分別是synchronized,wait與notify。
6、string 與 stringbuffer的區(qū)別?
String的長(zhǎng)度是不可變的,而stringbuffer的長(zhǎng)度是可變的。如果你對(duì)字符中的內(nèi)容經(jīng)常進(jìn)行操作,特別是內(nèi)容修改時(shí),那么就要使用stringbuffer,如果最后需要使用string,那么使用stringbuffer的tostring()方法。
7、解析XML文件的幾種方式和區(qū)別
DOM:處理大型文件時(shí)其性能下降的非常厲害
SAX:SAX是事件驅(qū)動(dòng)型的XML解析方式,它是順序讀取XML文件,不需要一次性全部裝載整個(gè)文件。
8、sleep()和wait()有什么區(qū)別?
sleep是線程類(Thread)的方法,導(dǎo)致此線程暫停執(zhí)行指定時(shí)間,給執(zhí)行機(jī)會(huì)給其他線程,但是監(jiān)控狀態(tài)依然保持,到時(shí)后會(huì)自動(dòng)恢復(fù)。調(diào)用sleep不會(huì)釋放對(duì)象鎖。
wait是Object類的方法,對(duì)此對(duì)象調(diào)用wait方法導(dǎo)致本線程放棄對(duì)象鎖,進(jìn)入等待此對(duì)象的等待鎖定池,只有針對(duì)此對(duì)象發(fā)出notify方法(或notifyAll)后本線程才進(jìn)入對(duì)象鎖定池準(zhǔn)備獲得對(duì)象鎖進(jìn)入運(yùn)行狀態(tài)。
9、數(shù)組有沒(méi)有l(wèi)ength這個(gè)方法?string有沒(méi)有l(wèi)ength這個(gè)方法?
數(shù)組沒(méi)有l(wèi)ength()這個(gè)方法,有l(wèi)ength這個(gè)屬性
String有l(wèi)ength()這個(gè)方法
10、LinkedList、ArrayList和Vector的區(qū)別? ArrayList和Vector是采用數(shù)組方式存儲(chǔ)數(shù)據(jù),此數(shù)組元素總數(shù)大于實(shí)際存儲(chǔ)的數(shù)據(jù)個(gè)數(shù)以便增加和插入元素,二者都允許直接序號(hào)索引元素,但是插入數(shù)據(jù)要移動(dòng)數(shù)組元素等內(nèi)存操作,所以它們索引數(shù)據(jù)快、插入數(shù)據(jù)慢。
Vector由于使用了synchronized同步方法(如add、insert、remove、set、equals、hashcode等操作),因此是線程安全,性能上比ArrayList要差。
LinkedList使用雙向鏈表實(shí)現(xiàn)存儲(chǔ),按序號(hào)索引數(shù)據(jù)需要進(jìn)行向前或向后遍歷,但是插入數(shù)據(jù)時(shí)只需要記錄本項(xiàng)的前后項(xiàng)即可,所以插入數(shù)度較快!LinkedList雙向鏈表,是指可以從first依次遍歷至last(從頭到尾),也可以從last遍歷至first(從尾到頭),但首尾沒(méi)有構(gòu)成環(huán),不同于雙向循環(huán)鏈表(注意區(qū)分):
11、hashmap與hashtable的區(qū)別?
都屬于Map接口的類,實(shí)現(xiàn)了將惟一鍵映射到特定的值上。
HashMap類沒(méi)有分類或者排序。它允許一個(gè)null鍵和多個(gè)null值。
Hashtable類似于HashMap,但是不允許null鍵和null值。它也比HashMap慢,因?yàn)樗峭降摹?/p>
12、Jsp有哪些內(nèi)置對(duì)象,作用分別是什么?(至少能說(shuō)出五個(gè))
request表示HttpServletRequest對(duì)象。它包含了有關(guān)瀏覽器請(qǐng)求的信息,并且提供了幾個(gè)用于獲取cookie, header, 和session數(shù)據(jù)的有用的方法。
response表示HttpServletResponse對(duì)象,并提供了幾個(gè)用于設(shè)置送回 瀏覽器的響應(yīng)的方法(如cookies,頭信息等)
out對(duì)象是javax.jsp.JspWriter的一個(gè)實(shí)例,并提供了幾個(gè)方法使你能用于向?yàn)g覽器回送輸出結(jié)果。
pageContext表示一個(gè)javax.servlet.jsp.PageContext對(duì)象。它是用于方便存取各種范圍的名字空間、servlet相關(guān)的對(duì)象的API,并且包裝了通用的servlet相關(guān)功能的方法。
session表示一個(gè)請(qǐng)求的javax.servlet.http.HttpSession對(duì)象。Session可以存貯用戶的狀態(tài)信息
applicaton 表示一個(gè)javax.servle.ServletContext對(duì)象。這有助于查找有關(guān)servlet引擎和servlet環(huán)境的信息
config表示一個(gè)javax.servlet.ServletConfig對(duì)象。該對(duì)象用于存取servlet實(shí)例的初始化參數(shù)。
page表示從該頁(yè)面產(chǎn)生的一個(gè)servlet實(shí)例
13、Javaservletapi中forward()與redirect()的區(qū)別?
前者僅是容器中控制權(quán)的轉(zhuǎn)向,在客戶端瀏覽器地址欄中不會(huì)顯示出轉(zhuǎn)向后的地址;后者則是完全的跳轉(zhuǎn),瀏覽器將會(huì)得到跳轉(zhuǎn)的地址,并重新發(fā)送請(qǐng)求鏈接。這樣,從瀏覽器的地址欄中可以看到跳轉(zhuǎn)后的鏈接地址。所以,前者更加高效,在前者可以滿足需要時(shí),盡量使用forward()方法,并且,這樣也有助于隱藏實(shí)際的鏈接。在有些情況下,比如,需要跳轉(zhuǎn)到一個(gè)其它服務(wù)器上的資源,則必須使用sendRedirect()方法。
14、重載(overload)與重寫(override)的區(qū)別?
Overload:方法名相同,參數(shù)不同,與返回值無(wú)關(guān)
Override:方法名相同,參數(shù)相同,相同的返回值,建立在繼承的基礎(chǔ)之上
15、什么是單例模式,在程序中如何使用?
單例模式確保一個(gè)類只有一個(gè)實(shí)例 餓漢式單例類
public class Singleton {
private Singleton(){}
private static Singleton instance = new Singleton();
public static Singleton getInstance(){
return instance;
}
}
懶漢式單例類
public class Singleton {
private static Singleton instance = null;
public static synchronized Singleton getInstance(){
if(instance==null)
instance=new Singleton();
return instance;
}
}
16、Servlet生命周期?
加載和實(shí)例化
初始化init()
請(qǐng)求處理service()
服務(wù)終止destroy()
17、spring中IOC與AOP的含義?
IOC:控制反轉(zhuǎn),是一種設(shè)計(jì)模式,一層含義控制權(quán)的轉(zhuǎn)移,由傳統(tǒng)的在程序中控制依賴轉(zhuǎn)移到由容器來(lái)控制,第二層是依賴注入將互相依賴的對(duì)象分離,在spring配置文件中描述它們的依賴關(guān)心,它們的依賴關(guān)系只是在使用的時(shí)候才建立
AOP:面向切面,是一種編程思想,oop的延續(xù),將系統(tǒng)中非核心的業(yè)務(wù)提取出來(lái),進(jìn)行單獨(dú)的處理,比如事務(wù)、日志和安全等
Spring的AOP和IOC都是為了解決系統(tǒng)代碼耦合度過(guò)高的問(wèn)題,使用代碼重用性高,易于維護(hù),不過(guò)AOP和IOC并不是spring中特有的,只是spring把它們應(yīng)用的更靈活方便。
18、hibernate與JDBC的區(qū)別?
相同點(diǎn):
1>兩者都是JAVA的數(shù)據(jù)庫(kù)操作中間件。
2>兩者對(duì)于數(shù)據(jù)庫(kù)進(jìn)行直接操作的對(duì)象都不是線程安全的,都需要及時(shí)關(guān)閉。
3>兩者都可以對(duì)數(shù)據(jù)庫(kù)的更新操作進(jìn)行顯式的事務(wù)處理。
不同點(diǎn):
1>使用的SQL語(yǔ)言不同:JDBC使用的是基于關(guān)系型數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)SQL語(yǔ)言,Hibernate使用的是HQL(Hibernate query language)語(yǔ)言
2>操作的對(duì)象不同:JDBC操作的是數(shù)據(jù),將數(shù)據(jù)通過(guò)SQL語(yǔ)句直接傳送到數(shù)據(jù)庫(kù)中執(zhí)行,Hibernate操作的是持久化對(duì)象,由底層持久化對(duì)象的數(shù)據(jù)更新到數(shù)據(jù)庫(kù)中。3>數(shù)據(jù)狀態(tài)不同:JDBC操作的數(shù)據(jù)是“瞬時(shí)”的,變量的值無(wú)法與數(shù)據(jù)庫(kù)中的值保持一致,而Hibernate操作的數(shù)據(jù)是可持久的,即持久化對(duì)象的數(shù)據(jù)屬性的值是可以跟數(shù)據(jù)庫(kù)中的值保持一致的。
19、struts中的標(biāo)簽庫(kù)有幾種,分別是?
有5種標(biāo)簽,分別是:bean標(biāo)簽庫(kù)、html標(biāo)簽庫(kù)、logic標(biāo)簽庫(kù)、tiles標(biāo)簽庫(kù)nested標(biāo)簽庫(kù)
20、Error與Exception有什么區(qū)別?
Error表示系統(tǒng)級(jí)的錯(cuò)誤和程序不必處理的異常,Exception表示需要捕捉或者需要程序進(jìn)行處理的異常。
21、Collection和Collections的區(qū)別。
Collection是集合類的上級(jí)接口,繼承與他的接口主要有Set 和List.Collections是針對(duì)集合類的一個(gè)幫助類,他提供一系列靜態(tài)方法實(shí)現(xiàn)對(duì)各種集合的搜索、排序、線程安全化等操作
22、GC是什么?為什么要有GC?(基礎(chǔ))。
GC是垃圾收集器。Java程序員不用擔(dān)心內(nèi)存管理,因?yàn)槔占鲿?huì)自動(dòng)進(jìn)行管理。
要請(qǐng)求垃圾收集,可以調(diào)用下面的方法之一:
System.gc()
Runtime.getRuntime().gc()
23、啟動(dòng)一個(gè)線程是用run()還是start()?
啟動(dòng)一個(gè)線程是調(diào)用start()方法,使線程所代表的虛擬處理機(jī)處于可運(yùn)行狀態(tài),這意味著它可以由JVM調(diào)度并執(zhí)行。這并不意味著線程就會(huì)立即運(yùn)行。run()方法可以產(chǎn)生必須退出的標(biāo)志來(lái)停止一個(gè)線程。
24、&和&&的區(qū)別。
&是位運(yùn)算符,表示按位與運(yùn)算,&&是邏輯運(yùn)算符,表示邏輯與(and)。
25、heap和stack有什么區(qū)別。
棧是一種線形集合,其添加和刪除元素的操作應(yīng)在同一段完成。棧按照后進(jìn)先出的方
式進(jìn)行處理。
堆是棧的一個(gè)組成元素
26、List, Set, Map是否繼承自Collection接口?
List,Set是,Map不是
27、MVC的各個(gè)部分都有那些技術(shù)來(lái)實(shí)現(xiàn)?如何實(shí)現(xiàn)?
MVC 是Model-View-Controller的簡(jiǎn)寫?!癕odel” 代表的是應(yīng)用的業(yè)務(wù)邏輯(通過(guò)JavaBean,EJB組件實(shí)現(xiàn)),“View” 是應(yīng)用的表示面(由JSP頁(yè)面產(chǎn)生),“Controller” 是提供應(yīng)用的處理過(guò)程控制(一般是一個(gè)Servlet),通過(guò)這種設(shè)計(jì)模型把應(yīng)用邏輯,處理過(guò)程和顯示邏輯分成不同的組件實(shí)現(xiàn)。這些組件可以進(jìn)行交互和重用。
28、Static Nested Class 和 Inner Class的不同。
Static Nested Class是被聲明為靜態(tài)(static)的內(nèi)部類,它可以不依賴于外部類實(shí)例被實(shí)例化。而通常的內(nèi)部類需要在外部類實(shí)例化后才能實(shí)例化。
29、接口是否可繼承接口? 抽象類是否可實(shí)現(xiàn)(implements)接口? 抽象類是否可繼承實(shí)體類
(concrete class)?
接口可以繼承接口。抽象類可以實(shí)現(xiàn)(implements)接口,抽象類是否可繼承實(shí)體類,但前提是實(shí)體類必須有明確的構(gòu)造函數(shù)
30、JSP和Servlet有哪些相同點(diǎn)和不同點(diǎn),他們之間的聯(lián)系是什么?
JSP 是Servlet技術(shù)的擴(kuò)展,本質(zhì)上是Servlet的簡(jiǎn)易方式,更強(qiáng)調(diào)應(yīng)用的外表表達(dá)。JSP編譯后是“類servlet”。Servlet和JSP最主要的不同點(diǎn)在于,Servlet的應(yīng)用邏輯是在Java文件中,并且完全從表示層中的HTML里分離開來(lái)。而JSP的情況是Java和HTML可以組合成一個(gè)擴(kuò)展名為.jsp的文件。JSP側(cè)重于視圖,Servlet主要用于控制邏輯
31、當(dāng)一個(gè)線程進(jìn)入一個(gè)對(duì)象的一個(gè)synchronized方法后,其它線程是否可進(jìn)入此對(duì)象的其它方法? 不能,一個(gè)對(duì)象的一個(gè)synchronized方法只能由一個(gè)線程訪問(wèn)。
32、運(yùn)行時(shí)異常與一般異常有何異同?
異常表示程序運(yùn)行過(guò)程中可能出現(xiàn)的非正常狀態(tài),運(yùn)行時(shí)異常表示虛擬機(jī)的通常操作中可能遇到的異常,是一種常見(jiàn)運(yùn)行錯(cuò)誤。java編譯器要求方法必須聲明拋出可能發(fā)生的非運(yùn)行時(shí)異常,但是并不要求必須聲明拋出未被捕獲的運(yùn)行時(shí)異常。
33、JSP中動(dòng)態(tài)INCLUDE與靜態(tài)INCLUDE的區(qū)別?
動(dòng)態(tài)INCLUDE用jsp:include動(dòng)作實(shí)現(xiàn)
靜態(tài)INCLUDE用include偽碼實(shí)現(xiàn),定不會(huì)檢查所含文件的變化,適用于包含靜態(tài)頁(yè)面<%@ include file=“included.htm” %>
第三篇:2016年10月份java面試題總結(jié)
2016年10月Java面試常見(jiàn)筆試題
1、有哪些XML解析方法?
2、頁(yè)面間的參數(shù)傳遞方法有哪一些?
3、Session有什么作用?
4、JSP有哪些動(dòng)作?作用分別是什么?
5、Ajax的基本原理是什么?
6、數(shù)據(jù)庫(kù)中存儲(chǔ)過(guò)程和函數(shù)的區(qū)別是什么?
7、用SQL實(shí)現(xiàn)分頁(yè)?
8、Hibernate的工作原理是什么?及為什么要用?
9、Public、private、protected和default的作用域是什么?
10、描述“重載”和“重寫”?
11、描述下“值傳遞”“引用傳遞”或他們的主要區(qū)別?
12、描述下set、list、Map各自的特點(diǎn)
13、String在Java里是固定的長(zhǎng)度嗎?為什么可以用“+”連接
14、描述下Spring對(duì)于事務(wù)的配置與處理方法?
15、JS:
如何獲取頁(yè)面上的元素(至少兩種)如何獲取頁(yè)面上的元素?cái)?shù)組
如何給該元素賦值
16、string 類是否可以被繼承?
17、String和StringBuffer的區(qū)別?
18、==與equals的區(qū)別
19、如何將“我愛(ài)你”變成“你愛(ài)我”
20、在你經(jīng)歷的項(xiàng)目中,是如何定義常量的?又是如何取值的?
21、開發(fā)當(dāng)中如何輸出一個(gè)某種編碼的字符串?
22、Spring是什么?在你的實(shí)際項(xiàng)目中如何應(yīng)用?
23、Struts 在你的項(xiàng)目中是如何運(yùn)用的?
24、兩個(gè)項(xiàng)目之間如何實(shí)現(xiàn)數(shù)據(jù)共享?
25、Windows下tomcat如何部署工程?
26、Windows下啟動(dòng)、關(guān)閉tomcat命令?
27、請(qǐng)寫出JSP的內(nèi)置對(duì)象,以及每個(gè)對(duì)象的常見(jiàn)使用場(chǎng)景(對(duì)象知道幾個(gè)寫幾個(gè),場(chǎng)景每個(gè)對(duì)象寫一個(gè))
28、請(qǐng)寫出Object類的方法以及方法作用
29、五大框架分別是什么?
30、九大隱士對(duì)象其中四個(gè)作用是什么?
31、常見(jiàn)的異常有哪些?
32、session cookie 的意義?
33、請(qǐng)描述session的原理
34、hibernate的五大接口是什么? 10月25日筆試題
1、請(qǐng)寫出JSP的內(nèi)置對(duì)象,以及每個(gè)對(duì)象的常見(jiàn)使用場(chǎng)景(對(duì)象知道幾個(gè)寫幾個(gè),場(chǎng)景每個(gè)對(duì)象寫一個(gè))
2、請(qǐng)寫出Object類的方法以及方法作用
3、五大框架分別是什么?
4、JSP九大內(nèi)置對(duì)象及四個(gè)作用域是什么?
5、常見(jiàn)的異常有哪些?
6、session cookie 的意義?
7、請(qǐng)描述session的原理
8、hibernate的五大接口是什么?
9、寫出一個(gè)冒泡排序算法的例子
10、用JavaScript寫一個(gè)功能,判斷頁(yè)面上,“Name”和“Age”兩個(gè)輸入框都必須填入內(nèi)容才能提交Form
11、Overload和Override的區(qū)別,Overloaded的方法是否可以改變返回值的類型?
12、Hibernate的緩存等級(jí)及其特點(diǎn)
13、什么是MVC?分析一下Struts是如何實(shí)現(xiàn)mvc的?
14、用簡(jiǎn)短的代碼實(shí)現(xiàn)字符“s tr in g”到“s tr in g”轉(zhuǎn)換,即將多個(gè)空格轉(zhuǎn)換為一個(gè)空格
15、Hashtable和Hashmap的區(qū)別是什么?
16、簡(jiǎn)單描述下面向?qū)ο蟮奶卣鳎⑴e例說(shuō)明你對(duì)面向?qū)ο蟮睦斫猓?/p>
17、請(qǐng)說(shuō)出你知道的線程同步方法
18、ArrayList和Hsahset的區(qū)別
19、什么是Ajax,簡(jiǎn)單描述Ajax的工作過(guò)程和機(jī)制 20、Hibernate 延時(shí)加載的意義是什么?
21、Servlet的生命周期是什么?
22、Doget 和Dopost的區(qū)別是什么?
23、Hibernate的優(yōu)缺點(diǎn)是什么?
24、一級(jí)緩存和二級(jí)緩存各是如何用的?
25、Error和Exception有什么區(qū)別?
26、垃圾回收機(jī)制的原理?
27、多線程有幾種實(shí)現(xiàn)方法?同步有幾種實(shí)現(xiàn)方法?
28、Spring的工作原理是什么?
29、AOP是什么?
30、Set怎樣實(shí)現(xiàn)數(shù)據(jù)不重復(fù)?
31、集合有哪幾種,他們各自的區(qū)別是什么?
32、Hibernate與JDBC的區(qū)別是什么?
33、JSP與servlet的區(qū)別是什么?
34、用C標(biāo)簽輸出1到100中5的倍數(shù)的數(shù)
35、Singleton的作用
36、接口與抽象類的區(qū)別
37、數(shù)據(jù)庫(kù)中刪除相同記錄的SQL語(yǔ)句是什么?
38、談?wù)勀銓?duì)Struts 2的理解
第四篇:Java面試題個(gè)人總結(jié) + 答案
本人最近參加了大大小小很多公司的面試,在這里我把自己面試遇到的問(wèn)題給大家說(shuō)一下
JAVA基礎(chǔ)篇
1、在java類加載器中,系統(tǒng)類加載器和用戶自定義加載器那個(gè)先加載?(遇到這個(gè)問(wèn)題時(shí)感覺(jué)很意外,沒(méi)有想到會(huì)問(wèn)這樣的問(wèn)題)
先加載系統(tǒng)類加載器
Java類加載器加載類順序依次為:
JVM類加載器:這個(gè)模式會(huì)加載JAVA_HOME/lib下的jar包
擴(kuò)展類加載器:會(huì)加載JAVA_HOME/lib/ext下的jar包
系統(tǒng)類加載器:這個(gè)會(huì)去加載指定了classpath參數(shù)指定的jar文件
用戶自定義類加載器:sun提供的ClassLoader是可以被繼承的,允許用戶自己實(shí)現(xiàn)類加載器
2、堆和棧分別存放什么?
棧:基本數(shù)據(jù)類型和對(duì)象的引用
堆:對(duì)象和數(shù)組
3、String、StringBuffer、StringBuilder的區(qū)別
(1)String是不可變對(duì)象,也就是說(shuō)每次修改String都是新建了一個(gè)對(duì)象并賦值(2)StringBuffer是字符緩沖區(qū),修改它不會(huì)新建對(duì)象,可以使用append()方法和delete()方法修改StringBuffer的值
(3)StringBuilder可以替代StringBuffer,它是一個(gè)單線程使用的類,和StringBuffer比速度快、效率高,但是是非安全的
(4)三者都是被final修飾的(這一點(diǎn)面試官的問(wèn)我的時(shí)候一直在說(shuō),你確定嗎?搞得我有點(diǎn)虛)
4、Java的異常和錯(cuò)誤有什么區(qū)別?
(1)Error Error是JVM的錯(cuò)誤,這種錯(cuò)誤會(huì)嚴(yán)重影響程序的運(yùn)行,設(shè)計(jì)者不會(huì)設(shè)計(jì)程序代碼去捕捉這種錯(cuò)誤,因?yàn)榧词共蹲降揭矡o(wú)法給予適當(dāng)?shù)奶幚?,比如?nèi)存溢出。(2)Exception Exception包含了一般性的異常,這些異常同在在捕捉到之后便可做妥善的處理,以確保程序繼續(xù)運(yùn)行。Exception有很多種分類,從Exception產(chǎn)生的時(shí)機(jī)上我們可以把Exception分為
①運(yùn)行時(shí)異常
運(yùn)行時(shí)異常是指程序運(yùn)行過(guò)程中可能出現(xiàn)的非正常狀態(tài) ②非運(yùn)行時(shí)異常
非運(yùn)行時(shí)異常是指方法聲明時(shí)throws的異常
5、&和&&的區(qū)別
&是位運(yùn)算符,表示按位與運(yùn)算。&&是邏輯運(yùn)算符,表示邏輯與。在條件判斷的時(shí)候&必須逐一檢查各個(gè)條件,&&具有短路功能,只要一個(gè)條件為false則不會(huì)進(jìn)行后續(xù)的判斷。
6、abstract class和interface的區(qū)別
(1)abstract class是抽象類,聲明方法的存在而不去實(shí)現(xiàn)它的類叫做抽象類,它用于創(chuàng)建一個(gè)體現(xiàn)某些基本行為的類。抽象類中不能有構(gòu)造方法、不能有靜態(tài)方法,抽象類不能被實(shí)例化。抽象類中可以有變量、可以有普通方法、可以有抽象方法,在繼承抽象方法后,必須實(shí)現(xiàn)它的所有抽象方法。
(2)interface是接口,接口中的變量必須是靜態(tài)常量(static final),接口中的方法必須都是抽象方法(abstract),不過(guò)由于接口中所有變量、方法修飾符都一致,因可以不寫。接口的實(shí)現(xiàn)必須實(shí)現(xiàn)接口中所有的方法。
7、final、finally、finalize的區(qū)別
(1)final是用來(lái)描述變量、方法、類的關(guān)鍵字,表示變量值不可變、方法不可被重寫、類不可被繼承
(2)finally是異常處理的關(guān)鍵字,表示finally塊里面的代碼一定會(huì)被運(yùn)行到(3)finalize是Object類中的protected方法,垃圾回收器執(zhí)行的時(shí)候會(huì)調(diào)用被回收的類的此方法。
8、接口是否可以繼承接口?抽象類是否可以實(shí)現(xiàn)接口?抽象類是否可以實(shí)現(xiàn)實(shí)體類?
(1)接口可以繼承接口
(2)抽象類里可以有普通方法,因此抽象類可以實(shí)現(xiàn)接口,只需要實(shí)現(xiàn)接口內(nèi)所有方法就可以了
(3)抽象類里可以有普通方法,變量也不需要是常量,因此抽象類可以實(shí)現(xiàn)實(shí)體類
9、一個(gè)”.java”源文件中是否可以包含多個(gè)類(非內(nèi)部類)?有什么限制?
可以。必須只有一個(gè)類名與文件名相同且該類以public修飾
10、java是怎么通過(guò)包名.類名來(lái)獲得該類的實(shí)例的?
通過(guò)Class.forName()方法
11、介紹一下集合?
①Collection:是最基本的集合接口,一個(gè)collection代表一組Object,即collection的元素。
②List:是collection的擴(kuò)展,作用是收集對(duì)象,并以索引方式保留收集對(duì)象的順序。其元素有放入順序,元素可重復(fù)。
1)ArrayList:利用類似于數(shù)組的形式來(lái)存儲(chǔ)數(shù)據(jù),它的隨機(jī)訪問(wèn)速度極快。
2)LinkedList:內(nèi)部實(shí)現(xiàn)是鏈表,它適合于在鏈表中間需要頻繁的插入和刪除操作。
3)Vector:與ArrayList相似,但是兩者不同,Vector主要用在事先不知道數(shù)組的大小,或者只是需要一個(gè)可以改變大小的數(shù)組的情況。
4)ArrayList與Vector的區(qū)別:
ArrayList是非線程安全的,效率高
Vector是基于線程安全的,效率低。
③Set:也是collection的擴(kuò)展,在Set中的元素對(duì)象要求不能重復(fù)(注意:元素雖然無(wú)放入順序,但是元素在set中的位置是有該元素的HashCode決定的,其位置其實(shí)是固定的)。常用實(shí)現(xiàn)類有HashSet和TreeSet。
1)HashSet:其核心是HashMap,HashSet中存放的值為HashMap中的key,這也就是HashSet不允許重復(fù)的原因。
2)TreeSet:底層由平衡二叉樹實(shí)現(xiàn),它會(huì)將投入其中的元素自動(dòng)排序,這就要求投入其中的元素是可排序的,也就是說(shuō),存放的必須是同一種數(shù)據(jù)類型。其實(shí)現(xiàn)自動(dòng)排序的實(shí)質(zhì)是compareable
public int compareTo(Object obj){ if(equals(obj)){
return 0;}else{ Return 1;} }
這個(gè)方法稱為比較器,可以比較兩個(gè)對(duì)象,如果對(duì)象都一致相等,則返回0 ④Map:沒(méi)有繼承collection接口,提供key到value的映射,也就是說(shuō),它是一種把鍵對(duì)象和值對(duì)象進(jìn)行關(guān)聯(lián)的容器。
1)HashMap:key不允許重復(fù),如果后面的key重復(fù),則會(huì)覆蓋前面的值,key允許為null,但是只能有一個(gè)。
2)TreeMap:key如果是一個(gè)對(duì)象的話,這個(gè)對(duì)象所在的類一定要實(shí)現(xiàn)compareable接口,并且重寫compareTo方法。3)HashMap與HashTable比較:
HashMap:非線程安全,高效率,支持null HashTable:線程安全,低效率,不支持null
12、list、set和map的遍歷方法比較:
List:可以用for循環(huán)、for each循環(huán)和Iterator迭代。
Set:可以用for each循環(huán)和Iterator迭代。
Map:HashMap只能用Iterator迭代。
13、寫一個(gè)單例設(shè)計(jì)模式: Public class Apple{ Private static Apple apple;Private Apple(){ } Public static Apple getApple(){ If(null == apple){ apple = new Apple();return apple;}else{ return apple;} } }
14、說(shuō)說(shuō)static關(guān)鍵字:
Static表示“全局”或“靜態(tài)”的意思,可以用來(lái)修飾成員變量和成員方法,也可以形成靜態(tài)代碼塊,還可以用來(lái)修飾類,但只能修飾內(nèi)部類。
①static變量:被static修飾的變量叫靜態(tài)變量或者類變量;沒(méi)有被static修飾的變量叫實(shí)例變量。二者的區(qū)別是:
靜態(tài)變量:在內(nèi)存中只有一個(gè)拷貝(節(jié)省內(nèi)存),jvm只會(huì)為靜態(tài)分配一次內(nèi)存,而且在加載類的過(guò)程中就完成靜態(tài)變量的內(nèi)存分配??捎妙惷苯釉L問(wèn)(方便),也可以用對(duì)象來(lái)訪問(wèn)(不推薦)。靜態(tài)變量一般用于對(duì)象之間需要共享值時(shí)。
實(shí)例變量:每創(chuàng)建一個(gè)實(shí)例,就會(huì)為實(shí)例分配一次內(nèi)存,實(shí)例變量在內(nèi)存中可以有多個(gè)拷貝,互不影響(靈活)。
②靜態(tài)方法:它可以直接通過(guò)“類名.靜態(tài)方法”來(lái)訪問(wèn),任何的實(shí)例亦可以調(diào)用。靜態(tài)方法中不能用this和super關(guān)鍵字。不能直接訪問(wèn)所屬類的實(shí)例變量和實(shí)例方法,只能訪問(wèn)所屬類的靜態(tài)變量和成員方法。
③static代碼塊:static代碼塊也叫靜態(tài)代碼塊,是在類中獨(dú)立于類成員的static語(yǔ)句塊,可以有多個(gè),位置也可以隨便放,它不在任何的方法體內(nèi),jvm在加載類時(shí)會(huì)執(zhí)行這些靜態(tài)代碼塊,如果有多個(gè),則會(huì)按照他們?cè)陬愔谐霈F(xiàn)的先后順序一次執(zhí)行它們,而且每個(gè)代碼塊只會(huì)執(zhí)行一次。
15、Servlet的生命周期:
①加載和實(shí)例化:在Servlet容器檢測(cè)到需要這個(gè)Servlet來(lái)響應(yīng)第一個(gè)請(qǐng)求時(shí),創(chuàng)建Servlet實(shí)例。
②初始化:在Servlet實(shí)例化后,容器將調(diào)用Servlet的init()方法初始化這個(gè)對(duì)象。
③請(qǐng)求處理:Servlet容器將調(diào)用Servlet的service()方法對(duì)請(qǐng)求進(jìn)行處理。
④服務(wù)終止:當(dāng)容器檢測(cè)到一個(gè)Servlet的實(shí)例應(yīng)該從服務(wù)中被移除的時(shí)候,容器就會(huì)調(diào)用實(shí)例的destroy()方法
16、jsp九大內(nèi)置對(duì)象范圍比較:
排序?yàn)椋篈pplication > Session > Request > Page = Response = out = PageContext = config = exception。
Application:服務(wù)器啟動(dòng)到停止這段時(shí)間。
Session:Http會(huì)話開始到結(jié)束這段時(shí)間(瀏覽器打開到關(guān)閉)
Request:Http請(qǐng)求開始到結(jié)束這段時(shí)間,即一個(gè)jsp頁(yè)面發(fā)出請(qǐng)求到另一個(gè)jsp頁(yè)面之間。
Page:頁(yè)面執(zhí)行,當(dāng)前頁(yè)面從打開到關(guān)閉這段時(shí)間,它只能在同一個(gè)頁(yè)面中有效
Response:頁(yè)面執(zhí)行,包含了客戶請(qǐng)求的有關(guān)信息,但jsp中很少用到它。
Out:頁(yè)面執(zhí)行,向客戶端輸入內(nèi)容時(shí)常用的對(duì)象
PageContext:頁(yè)面執(zhí)行,取得任何范圍的參數(shù),通過(guò)它可以獲得out、Requset、Response、Session、application等對(duì)象。
Config:頁(yè)面執(zhí)行,取得服務(wù)器的配置信息。
Exception:僅在錯(cuò)誤處理頁(yè)面
17、jsp和servlet的區(qū)別與聯(lián)系:
①JSP第一次運(yùn)行的時(shí)候會(huì)編譯成Servlet,駐留在內(nèi)存中以供調(diào)用
②JSP是web開發(fā)技術(shù),Servlet是服務(wù)器端運(yùn)用的小程序 ③JSP更多的是進(jìn)行頁(yè)面顯示,Servlet更多的是處理業(yè)務(wù),即JSP是頁(yè)面,Servlet是實(shí)現(xiàn)JSP方法
④開發(fā)界面是JSP時(shí),可以直接編寫:
out.println(“
18、final關(guān)鍵字的作用
(1)final修飾的基本數(shù)據(jù)類型的值不可被改變,final修飾的引用類型的引用不可變而引用的值還是可以變的
(2)final修飾的方法不可被重寫(3)final修飾的類不可被繼承
(4)final修飾的基本數(shù)據(jù)類型的形參在方法體內(nèi)不可以被重新賦值,final修飾的引用類型的形參不可以被賦予一個(gè)新的引用
數(shù)據(jù)庫(kù)方面
1、問(wèn)你怎么同時(shí)更新一個(gè)表中的兩個(gè)字段?(假設(shè)表名為A,要更新的字段分別為name、age)
update A set name = ‘ 姚明’ , age = 35 where id = 10;
2、給student添加一個(gè)來(lái)自classes的外鍵:(這個(gè)很容易被我們自己忽視)
alter table student add constraint fk_stu_cls foreign key(cid)references classes(cid);
3、數(shù)據(jù)庫(kù)三范式:屬性唯
一、記錄唯
一、表唯一
4、查詢結(jié)果按tid排序(降序):select * from test order by tid desc;(默認(rèn)是按升序的)
5、oracle的左外連接
Select * from dept d left outer join emp e on d.deptno = e.deptno
order by d.deptno,e.ename;
SSH框架
1、hibernate和JDBC相比有什么優(yōu)勢(shì)?
1.對(duì)JDBC訪問(wèn)數(shù)據(jù)庫(kù)的代碼做了封裝,大大簡(jiǎn)化了數(shù)據(jù)訪問(wèn)層繁瑣的重復(fù)性代碼。2.Hibernate是一個(gè)基于JDBC的主流持久化框架,是一個(gè)優(yōu)秀的ORM實(shí)現(xiàn)。他很大程度的簡(jiǎn)化DAO層的編碼工作
3.hibernate使用Java反射機(jī)制,而不是字節(jié)碼增強(qiáng)程序來(lái)實(shí)現(xiàn)透明性。
4.hibernate的性能非常好,因?yàn)樗莻€(gè)輕量級(jí)框架。映射的靈活性很出色。它支持各種關(guān)系數(shù)據(jù)庫(kù),從一對(duì)一到多對(duì)多的各種復(fù)雜關(guān)系。
2、為什么要用struts?
JSP、Servlet、JavaBean技術(shù)的出現(xiàn)給我們構(gòu)建強(qiáng)大的企業(yè)應(yīng)用系統(tǒng)提供了可能。但用這些技術(shù)構(gòu)建的系統(tǒng)非常的繁亂,所以在此之上,我們需要一個(gè)規(guī)則、一個(gè)把這些技術(shù)組織起來(lái)的規(guī)則,這就是框架,Struts便應(yīng)運(yùn)而生。
3、為什么要用spring?
AOP 讓開發(fā)人員可以創(chuàng)建非行為性的關(guān)注點(diǎn),稱為橫切關(guān)注點(diǎn),并將它們插入到應(yīng)用程序代碼中。使用 AOP 后,公共服務(wù)(比如日志、持久性、事務(wù)等)就可以分解成方面并應(yīng)用到域?qū)ο笊希瑫r(shí)不會(huì)增加域?qū)ο蟮膶?duì)象模型的復(fù)雜性。
IOC 允許創(chuàng)建一個(gè)可以構(gòu)造對(duì)象的應(yīng)用環(huán)境,然后向這些對(duì)象傳遞它們的協(xié)作對(duì)象。正如單詞倒置所表明的,IOC 就像反過(guò)來(lái)的 JNDI。沒(méi)有使用一堆抽象工廠、服務(wù)定位器、單元素(singleton)和直接構(gòu)造(straight construction),每一個(gè)對(duì)象都是用其協(xié)作對(duì)象構(gòu)造的。因此是由容器管理協(xié)作對(duì)象(collaborator)。
Spring即使一個(gè)AOP框架,也是一IOC容器。Spring 最好的地方是它有助于您替換對(duì)象。有了 Spring,只要用 JavaBean 屬性和配置文件加入依賴性(協(xié)作對(duì)象)。然后可以很容易地在需要時(shí)替換具有類似接口的協(xié)作對(duì)象。
4、什么是MVC模式?有什么作用?
MVC全名Model View Controller,即模型-視圖-控制器,是一種非常經(jīng)典的軟件架構(gòu)模 式。從設(shè)計(jì)角度看,它將多個(gè)設(shè)計(jì)模式在一種解決方案中結(jié)合起來(lái),用來(lái)解決許多設(shè)計(jì)問(wèn)題。MVC模式把用戶界面交互分拆到不同的三個(gè)角色中,即:
(1)模型:持有所有的數(shù)據(jù)、狀態(tài)和程序邏輯,獨(dú)立于視圖和控制器。
(2)視圖:用來(lái)呈現(xiàn)模型。視圖通常直接從模型中取得它要顯示的狀態(tài)和數(shù)據(jù)。對(duì)于相同 的信息可以有多個(gè)不同的顯示形式或視圖。(3)控制器:位于視圖和模型中間,負(fù)責(zé)接收用戶的輸入,將輸入進(jìn)行解析并反饋給模型,通常有一個(gè)模型具有一個(gè)控制器。
5、hibernate的三種狀態(tài):
瞬時(shí)狀態(tài)
持久狀態(tài)
游離狀態(tài)
6、C/S和B/S的區(qū)別:
優(yōu)點(diǎn):
C/S:占用網(wǎng)速小,對(duì)于一些網(wǎng)速比較慢的電腦有明顯的優(yōu)勢(shì)。
B/S:不需要安裝客戶端,只需要瀏覽器就能打開。缺點(diǎn):
C/S:需要安裝客戶端,有時(shí)候需要更新。
B/S:對(duì)網(wǎng)速的需求大,對(duì)于一些網(wǎng)速慢的電腦不適合。
7、struts2 的核心是什么?它與struts1有什么關(guān)系?
struts2的核心是WebWork,與struts1沒(méi)關(guān)系
8、列舉五個(gè)struts2中的攔截器: ①alias:實(shí)現(xiàn)在不同請(qǐng)求中相似參數(shù)別名的轉(zhuǎn)換。②autowiring:自動(dòng)裝配的攔截器,主要用于當(dāng)struts2和spring整合時(shí),struts2可以使用自動(dòng)裝配的方式來(lái)訪問(wèn)spring容器中的bean。
③createSession:該攔截器負(fù)責(zé)創(chuàng)建一個(gè)httpSession對(duì)象,主要用于那些需要有httpSession對(duì)象才能正常工作的攔截器。
④debugging:當(dāng)使用struts2的開發(fā)模式時(shí),這個(gè)攔截器會(huì)提供更多的調(diào)試信息。
⑤exception:這個(gè)攔截器負(fù)責(zé)處理異常,它將異常映射為結(jié)果。
⑥fileUpload:這個(gè)攔截器主要用于文件上傳,它負(fù)責(zé)解析表單文件域中的內(nèi)容。
⑦i18n:支持國(guó)際化的攔截器,它負(fù)責(zé)把所選的語(yǔ)言、區(qū)域放入用戶session中。
⑧params:這是一個(gè)最基本的攔截器,它負(fù)責(zé)解析HTTP請(qǐng)求中的參數(shù),并將參數(shù)值設(shè)置成對(duì)應(yīng)的Action屬性值。⑨t(yī)oken:防止重復(fù)提交,它檢查傳到Action中的token,從而防止多次提交。⑩validation:通過(guò)執(zhí)行XXXAction-validation.xml中定義的校驗(yàn)器,從而完成數(shù)據(jù)校驗(yàn)。
9、Spring注入方法:
①設(shè)值注入:通過(guò)setter訪問(wèn)容器實(shí)現(xiàn)
②構(gòu)造注入:通過(guò)構(gòu)造函數(shù)實(shí)現(xiàn)
③P命名空間注入
10、spring實(shí)現(xiàn)注解的配置:
第五篇:java程序員面試題
1、你怎樣理解Struts,又那些配置文件,以及作用? 理解:http://ruixin.iteye.com/blog/899289 配置文件:struts.xml 作用:struts 框架mvc 實(shí)現(xiàn)低耦合,便于程序的維護(hù)~ 配置文件控制流程的轉(zhuǎn)向 很清晰~ 主要負(fù)責(zé)具體業(yè)務(wù)的實(shí)現(xiàn)和頁(yè)面的轉(zhuǎn)向~
2、怎么樣來(lái)捕獲數(shù)據(jù)庫(kù)中的異常?
3、如何處理網(wǎng)頁(yè)中的驗(yàn)證信息,如何友好的進(jìn)行處理?
4、用javaScript實(shí)現(xiàn)java中的監(jiān)聽(tīng)器功能?
5、你對(duì)對(duì)日外包的看法?
6、數(shù)據(jù)庫(kù)連接方式由哪幾種?
Jdbc、連接池、hibernate
7、你清楚哪幾種設(shè)計(jì)模式,談?wù)劯鞣N設(shè)計(jì)模式的類結(jié)構(gòu)。
8、談?wù)刯sp和sevlet的區(qū)別,以及它們性能上的區(qū)別。
jsp是servlet的一種簡(jiǎn)化,jsp編譯后是“類servlet”。servlet 主要是用來(lái)處理業(yè)務(wù)層;
jsp 則是主要負(fù)責(zé) 表現(xiàn)層。
servlet完全是java程序代碼構(gòu)成,擅長(zhǎng)于流程控制和事務(wù)處理,而通過(guò)servlet來(lái)生成動(dòng)態(tài)網(wǎng)頁(yè)很不直觀; 對(duì)于靜態(tài)的html標(biāo)簽,servlet都必須使用頁(yè)面輸出流逐行輸出。Servlet中沒(méi)有內(nèi)置對(duì)象。Jsp由html代碼和jsp標(biāo)簽構(gòu)成可以方便地編寫動(dòng)態(tài)網(wǎng)頁(yè),在struts框架中,jsp位于MVC設(shè)計(jì)模式的視圖層,而servlet位于控制層。
總之,使用jsp只需要完成程序員需要輸出到客戶端的內(nèi)容,至于jsp中的java腳本如果鑲嵌到一個(gè)類中,由jsp容器完成,而servlet則是個(gè)完整的java類,這個(gè)類的service方法用于生成對(duì)客戶端的響應(yīng)
9、如何來(lái)編寫存儲(chǔ)過(guò)程,如何優(yōu)化存儲(chǔ)過(guò)程,以及存儲(chǔ)過(guò)程和TSQL的區(qū)別。
10、提供的培訓(xùn),CMM-5軟件開發(fā)流程培訓(xùn)、代碼編寫規(guī)范和業(yè)務(wù)流程培訓(xùn)、對(duì)日語(yǔ)的培訓(xùn)。
1、為什么要選擇這個(gè)行業(yè),和計(jì)算機(jī)專業(yè)的相比有什么優(yōu)勢(shì)?
2、Servlet是什么,以及生命周期?
Servlet被服務(wù)器實(shí)例化后,容器運(yùn)行其init方法,請(qǐng)求到達(dá)時(shí)運(yùn)行其service方法,service方法自動(dòng)派遣運(yùn)行與請(qǐng)求對(duì)應(yīng)的doXXX方法(doGet,doPost)等,當(dāng)服務(wù)器決定將實(shí)例銷毀的時(shí)候調(diào)用其destroy方法。
與cgi的區(qū)別在于servlet處于服務(wù)器進(jìn)程中,它通過(guò)多線程方式運(yùn)行其service方法,一個(gè)實(shí)例可以服務(wù)于多個(gè)請(qǐng)求,并且其實(shí)例一般不會(huì)銷毀,而CGI對(duì)每個(gè)請(qǐng)求都產(chǎn)生新的進(jìn)程,服務(wù)完成后就銷毀,所以效率上低于servlet。
3、怎么理解事務(wù)?
4、怎么理解MVC?
自己做自己的事情,主要強(qiáng)調(diào)分層,5、同時(shí)插入大量數(shù)據(jù),使用何種方法優(yōu)化?Batch
6、多個(gè)有關(guān)系得怎么樣操作?
7、你認(rèn)為你還有什么優(yōu)點(diǎn)在前面沒(méi)有提到?
8、對(duì)加班的看法?
9、與上級(jí)意見(jiàn)不一致時(shí)怎么樣處理?10、11、12、13、14、15、16、17、18、19、20、21、22、23、你如何理解團(tuán)隊(duì)精神?
你怎樣處理學(xué)習(xí)新技術(shù)和項(xiàng)目開發(fā)之間的矛盾? 怎樣去學(xué)習(xí)新技術(shù)?
作為一個(gè)初級(jí)程序員怎么樣彌補(bǔ)與有經(jīng)驗(yàn)程序員之間的差距? 你對(duì)索引的理解,索引有幾種,什么時(shí)候用索引? 對(duì)Oracle理解?
怎樣優(yōu)化復(fù)雜的查詢語(yǔ)句? 你對(duì)Jdbc理解?
對(duì)Finally塊的理解和應(yīng)用? 游標(biāo)的理解? ResultSet 重載,重寫? 簽名
EJB的事務(wù),Hibernate的事務(wù)? Struts的標(biāo)簽? 重定向和跳轉(zhuǎn)? A、
a.地址欄不改變跳轉(zhuǎn)——服務(wù)器端跳轉(zhuǎn),服務(wù)器之間內(nèi)部轉(zhuǎn),相同的request,可傳參;
b.執(zhí)行到跳轉(zhuǎn)語(yǔ)句后無(wú)條件立刻跳轉(zhuǎn)——之后的代碼不再被執(zhí)行;
注意:如果使用forward跳轉(zhuǎn),則一定要在跳轉(zhuǎn)之前釋放掉全部的資源;
c.使用forward時(shí),request設(shè)置的屬性依然能保留在下一個(gè)頁(yè)面(setAttribute);d.通過(guò)
e.地址中的”/”代表是:http://localhost:8080/Test B、response.sendRedirect(“地址”):效率低,速度慢
a.地址欄改變跳轉(zhuǎn)——客戶端跳轉(zhuǎn)(其中地址可以是任意的)
b.所有代碼執(zhí)行完畢之后再跳轉(zhuǎn),跳轉(zhuǎn)語(yǔ)句后面的代碼還是會(huì)執(zhí)行,除非在其后面加上return(return)需復(fù)雜一些。
<% Response.sendRedirect(“aa.jsp”);boolean b = true;
if(b){ Return;} System.out.println(“aaaaaaaaaa”);%>
c.不能保存request屬性——地址改變了,客戶端跳轉(zhuǎn),不同的request d.通過(guò)對(duì)URL地址的重寫傳遞參數(shù):
response.sendRedirect(“responseDemo04.jsp?id=mldn”);
e.地址中的”/”代表是:http://localhost:8080/
下面是兩種比較重要的跳轉(zhuǎn),我還是與上次的一次,把我做的筆記貼出來(lái):24、25、Hibernate的左聯(lián)結(jié)和右連接,緩存,數(shù)據(jù)加載? 面向?qū)ο笕绾卫斫?
26、EJB中CMP和BMP,SessionBean的機(jī)制?27、28、29、對(duì)日外包是否有抵觸情緒? 如何減少Servlet的請(qǐng)求? 對(duì)設(shè)計(jì)模式了解多少?作過(guò)的項(xiàng)目中用過(guò)那些設(shè)計(jì)模式? 30、31、32、33、34、35、36、37、38、39、40、41、42、43、44、45、怎樣看待團(tuán)隊(duì)合作,在團(tuán)隊(duì)合作中你扮演什么樣的角色,遇到技術(shù)難題時(shí)怎么解決? Exception的層次結(jié)構(gòu)? EJB對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)機(jī)制? Struts中是否有事務(wù)處理? Hibernate的其它功能(除了ORM)? 如何提高數(shù)據(jù)庫(kù)中的數(shù)據(jù)查詢效率? 作為項(xiàng)目經(jīng)理如何對(duì)組內(nèi)成員分工? 描述一下你做過(guò)項(xiàng)目的流程。
加班到12點(diǎn),突然有人來(lái)問(wèn)你技術(shù)上的難題,你會(huì)如何處理? Oracle的冷備份、熱備份 Strurs中怎樣實(shí)現(xiàn) Hibernate怎樣實(shí)現(xiàn)ORM Spring 的事務(wù)處理機(jī)制
Strurs的驗(yàn)證方式,Javascript的驗(yàn)證的方式
一個(gè)是服務(wù)器端驗(yàn)證,一個(gè)是客戶端驗(yàn)證
Struts的工作機(jī)制 Delete/trancate的區(qū)別
trancate與delete都是刪除數(shù)據(jù),不同的是trancate是將表的所有數(shù)據(jù)都刪除,而delete可以有選擇地刪除數(shù)據(jù); delete刪除數(shù)據(jù)是記錄在日志中的,可以通過(guò)其將數(shù)據(jù)恢復(fù),而trancate則是將整個(gè)表截?cái)?,其操作是不記錄在日志里的?6、47、48、作為項(xiàng)目組長(zhǎng),你遇到的最大問(wèn)題是什么?如何解決?
Ajax/內(nèi)嵌框架實(shí)現(xiàn)局部刷新,有什么差別?
Exception/Error的區(qū)別,在什么情況下可以拋出RuntimeException 父類不同
知道異常和錯(cuò)誤最本質(zhì)的區(qū)別就是異常能被開發(fā)人員處理而錯(cuò)誤時(shí)系統(tǒng)本來(lái)自帶的,一般無(wú)法處理也不需要我們程序員來(lái)處理。
在程序運(yùn)行時(shí)候出錯(cuò)而又不是系統(tǒng)原因差生的,一般是由于程序原因產(chǎn)生,比如程序?qū)懙牟粔驀?yán)謹(jǐn)、完善
典型的RuntimeException
有
ArithmeticException、ClassCastException、IndexOutOfBoundsException、NullPointerException、UnsupportedOperationException 等.49、50、51、52、53、54、55、56、57、58、59、Orcale 物化視圖(MV)
業(yè)務(wù)處理模塊中,是如何處理事務(wù)? Sql語(yǔ)句如何優(yōu)化 數(shù)據(jù)庫(kù)右連接
JDBC的連接關(guān)閉在哪?
Finally語(yǔ)句塊內(nèi)
錯(cuò)誤處理模塊是放在哪個(gè)層的。接口能否繼承接口。
接口可以繼承接口..但是要使用extends~而不是用implements 抽象類能否繼承實(shí)體類。
抽象類是可以繼承實(shí)體類,但前提是實(shí)體類必須有明確的構(gòu)造函數(shù) 答案很明確,可以繼承。
項(xiàng)目中查詢時(shí)怎么樣實(shí)現(xiàn)的?
作為項(xiàng)目負(fù)責(zé)人你是管理這個(gè)團(tuán)隊(duì)的?
在你做項(xiàng)目過(guò)程中遇到些什么問(wèn)題,是怎么樣解決的?
Jquery中的幾種選擇器:
Javascript如何進(jìn)行數(shù)字和字符串之間的轉(zhuǎn)換?
數(shù)字類型轉(zhuǎn)換成String類型用 對(duì)象=對(duì)象.toString()方法,字符串轉(zhuǎn)換成數(shù)字類型則是對(duì)象=Number(對(duì)象);