![Java程序員面試題大全_第1頁](http://file1.renrendoc.com/fileroot_temp2/2021-2/16/a2ced48d-674d-4662-9bb6-05cef77cfd26/a2ced48d-674d-4662-9bb6-05cef77cfd261.gif)
![Java程序員面試題大全_第2頁](http://file1.renrendoc.com/fileroot_temp2/2021-2/16/a2ced48d-674d-4662-9bb6-05cef77cfd26/a2ced48d-674d-4662-9bb6-05cef77cfd262.gif)
![Java程序員面試題大全_第3頁](http://file1.renrendoc.com/fileroot_temp2/2021-2/16/a2ced48d-674d-4662-9bb6-05cef77cfd26/a2ced48d-674d-4662-9bb6-05cef77cfd263.gif)
![Java程序員面試題大全_第4頁](http://file1.renrendoc.com/fileroot_temp2/2021-2/16/a2ced48d-674d-4662-9bb6-05cef77cfd26/a2ced48d-674d-4662-9bb6-05cef77cfd264.gif)
![Java程序員面試題大全_第5頁](http://file1.renrendoc.com/fileroot_temp2/2021-2/16/a2ced48d-674d-4662-9bb6-05cef77cfd26/a2ced48d-674d-4662-9bb6-05cef77cfd265.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、1. hibernate中離線查詢?nèi)コ貜?fù)項(xiàng)怎么加條件?dc.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);2. http協(xié)議及端口,smtp協(xié)議及端口http:超文本傳輸協(xié)議端口 80 smtp:簡單郵件傳輸協(xié)議 端口253. 編寫程序,完成文件復(fù)制功能 4. Servlet創(chuàng)建過程及生命周期Servlet 在容器中運(yùn)行時,其實(shí)例的創(chuàng)建及銷毀等是由容器進(jìn)行控制。 Servlet 的創(chuàng)建有兩種方法。 1). 客戶端請求對應(yīng)的 Servlet 時,創(chuàng)建 Servlet 實(shí)例;大部分Servlet 都是這種 Servlet 。 2). 通過
2、在web.xml 中設(shè)置load-on-startup來創(chuàng)建servlet實(shí)例,這種實(shí)例在Web 應(yīng)用啟動時,立即創(chuàng)建Servlet 實(shí)例 Servlet 的運(yùn)行都遵循如下生命周期: 1). 創(chuàng)建 Servlet 實(shí)例。 2). Web 容器調(diào)用 Servlet 的 init() 方法,對Servlet 進(jìn)行初始化。 3). Servlet 初始化后,將一直存在于容器中,用于響應(yīng)客戶端請求。根據(jù)客戶端的請求方式通過Servlet中service()方法去相應(yīng)的doXXX()方法; 4). Web 容器銷毀Servlet 時,調(diào)用 Servlet 的 destroy() 方法,通常在關(guān)閉Web容
3、器之時銷毀Servlet。 5. 用sql語句分頁: Mysql數(shù)據(jù)庫: SELECTTOP 頁大小* FROMtable1 WHEREidNOTIN (SELECTTOP頁大小*(頁數(shù)-1)idFROMtable1ORDERBYid) ORDERBYid Oracle數(shù)據(jù)庫: 在ORACLE大數(shù)據(jù)量下的分頁解決方法。一般用截取ID方法,還有是三層嵌套方法。截取ID的方法select * from emp a, (select empno,rownum as num from emp)b where a.empno=b.empno and b.num between 5 and 7;三層嵌套S
4、ELECT * FROM ( SELECT A.*, rownum r FROM ( SELECT * FROM emp ) A WHERE rownum 5;6. list.map.set的存儲特點(diǎn)?List 以特定次序來持有元素,可有重復(fù)元素.Set 無法擁有重復(fù)元素,內(nèi)部排序.Map 保存key-value值,value可多值7. final,finally,finaliz的區(qū)別 final修飾符(關(guān)鍵字)如果一個類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被繼承。因此一個類不能既被聲明為 abstract的,又被聲 明為final的。將變量或方法聲明為final,可
5、以保證它們在使用中不被改變。被聲明為final的變量必須在聲明時給定初值,而在以后的引用中只能讀取,不可修改 被聲明為final的方法也同樣只能使用,不能重載。 finally再異常處理時提供 finally 塊來執(zhí)行任何清除操作。如果拋出一個異常 ,那么相匹配的 catch 子句就會執(zhí)行,然后控制就會進(jìn)入 finally 塊(如果有的話)。 finalize方法名。Java 技術(shù)允許使用 finalize() 方法在垃圾收集器將對象從內(nèi)存中清除出去之前做必要的清理工作。這個方法是由垃圾收集器在確定這個對象沒有被引用時對這個對象調(diào)用的。它是在 Object 類中定義的,因此所有的類都繼承了它。
6、子類覆蓋 ;finalize() 方法以整理系統(tǒng)資源或者執(zhí)行其他清理工作 finalize() 方法是在垃圾收集器刪除對象之前對這個對象調(diào)用的。8. arraylist和vector的區(qū)別?1).同步性:Vector是線程安全的,也就是說是同步的,而ArrayList是線程不安全的,不是同步的2).數(shù)據(jù)增長:當(dāng)需要增長時,Vector默認(rèn)增長為原來一培,而ArrayList卻是原來的一半9. 說出ArrayList,Vector, LinkedList的存儲性能和特性?1). ArrayList 采用的是數(shù)組形式來保存對象的,這種方式將對象放在連續(xù)的位置中,所以最大的缺點(diǎn)就是插入刪除時非常麻煩
7、 LinkedList 采用的將對象存放在獨(dú)立的空間中,而且在每個空間中還保存下一個鏈接的索引 但是缺點(diǎn)就是查找非常麻煩 要叢第一個索引開始2). ArrayList和Vector都是用數(shù)組方式存儲數(shù)據(jù),此數(shù)組元素數(shù)要大于實(shí)際的存儲空間以便進(jìn)行元素增加和插入操作,他們都允許直接用序號索引元素,但是插入數(shù)據(jù)元素涉及到元素移動等內(nèi)存操作,所以索引數(shù)據(jù)快而插入數(shù)據(jù)慢.3). Vector使用了sychronized方法(線程安全),所以在性能上比ArrayList要差些.4). LinkedList使用雙向鏈表方式存儲數(shù)據(jù),按序號索引數(shù)據(jù)需要前向或后向遍歷數(shù)據(jù),所以索引數(shù)據(jù)慢,是插入數(shù)據(jù)時只需要記錄
8、前后項(xiàng)即可,所以插入的速度快.10. haSHMAP,HASHTABLE區(qū)別1.Hashtable是Dictionary的子類,HashMap是Map接口的一個實(shí)現(xiàn)類;2.Hashtable中的方法是同步的,而HashMap中的方法在缺省情況下是非同步的。3.在HashMap中,null可以作為鍵,這樣的鍵只有一個;可以有一個或多個鍵所對應(yīng)的值為null。11. .描述Cookie和Session的作用,區(qū)別和各自的應(yīng)用范圍,Session工作原理Session用于保存每個用戶的專用信息. 每個客戶端用戶訪問時,服務(wù)器都為每個用戶分配一個唯一的會話ID(Session ID) . 她的生存期是
9、用戶持續(xù)請求時間再加上一段時間(一般是20分鐘左右).Session中的信息保存在Web服務(wù)器內(nèi)容中,保存的數(shù)據(jù)量可大可小.當(dāng) Session超時或被關(guān)閉時將自動釋放保存的數(shù)據(jù)信息.由于用戶停止使用應(yīng)用程序后它仍然在內(nèi)存中保持一段時間,因此使用Session對象使保存用戶數(shù)據(jù)的方法效率很低.對于小量的數(shù)據(jù),使用Session對象保存還是一個不錯的選擇Cookie 用于保存客戶瀏覽器請求服務(wù)器頁面的請求信息,程序員也可以用它存放非敏感性的用戶信息,信息保存的時間可以根據(jù)需要設(shè)置.如果沒有設(shè)置Cookie失效日期,它們僅保存到關(guān)閉瀏覽器程序?yàn)橹?如果將Cookie對象的Expires屬性設(shè)置為Mi
10、nvalue,則表示Cookie永遠(yuǎn)不會過期.Cookie存儲的數(shù)據(jù)量很受限制,大多數(shù)瀏覽器支持最大容量為4K,因此不要用來保存數(shù)據(jù)集及其他大量數(shù)據(jù).由于并非所有的瀏覽器都支持Cookie,并且數(shù)據(jù)信息是以明文文本的形式保存在客戶端的計(jì)算機(jī)中,因此最好不要保存敏感的,未加密的數(shù)據(jù),否則會影響網(wǎng)站的安全性session工作原理(1)當(dāng)有Session啟動時,服務(wù)器生成一個唯一值,稱為Session ID(好像是通過取進(jìn)程ID的方式取得的)。(2)然后,服務(wù)器開辟一塊內(nèi)存,對應(yīng)于該Session ID。(3)服務(wù)器再將該Session ID寫入瀏覽器的cookie。(4)服務(wù)器內(nèi)有一進(jìn)程,監(jiān)視所有
11、Session的活動狀況,如果有Session超時或是主動關(guān)閉,服務(wù)器就釋放改內(nèi)存塊。(5)當(dāng)瀏覽器連入IIS時并請求的ASP內(nèi)用到Session時,IIS就讀瀏覽器Cookie中的Session ID。(6)然后,服務(wù)檢查該Session ID所對應(yīng)的內(nèi)存是否有效。(7)如果有效,就讀出內(nèi)存中的值。(8)如果無效,就建立新的Session。12. String和stringbuffer進(jìn)行字符串連接時的區(qū)別?String對項(xiàng)內(nèi)容是不可改變的,StringBuffer是可以改變的,且高效;13. 什么叫項(xiàng)目? 用有限的資源、有限的時間為特定客戶完成特定目標(biāo)的一次性工作14. .J2EE J是什
12、么意思? 2是什么意思 EE是什么意思? Struts的攔截器你是怎么做的,是獨(dú)立開發(fā)的,能夠獨(dú)立開發(fā)的到。然后問有哪幾種攔截? Java 2 Platform,Enterprise Edition 繼承AbstractInterceptor類,覆蓋intercept()方法有struts自己的攔截器 如timer ,i18n,scop,servletconfig,token還有自定義攔截器15. 簡單介紹下java?Spring的AOP,IOC的講述 對struts2的了解,1,2的比較 xml的了解 J2ee的webserviced的協(xié)議?Spring AOP:代理機(jī)制 Spring提供的
13、自動代理機(jī)制Spring的IoC來實(shí)組件之間的依賴關(guān)系注入, 使控制層與業(yè)務(wù)實(shí)現(xiàn)分離,即客戶通過調(diào)用業(yè)務(wù)委托接口來調(diào)用具體的業(yè)務(wù)組件的實(shí)例,避免控制層與業(yè)務(wù)層的藕合帶來的維護(hù)或升級困難。由Spring為DAO生成代理對象來為DAO添加事務(wù)服務(wù),由IoC容器DAO的代理實(shí)例注入到業(yè)務(wù)組件中,業(yè)務(wù)組件通過DAO的委托接口調(diào)用DAO對象,使得上層組件不直接依賴于DAO的實(shí)現(xiàn)類,使得持久層更換或修改不影響上層組件。16. Collections,collection的區(qū)別Collection是個java.util下的接口,它是各種集合結(jié)構(gòu)的父接口。Collections是個java.util下的普通類
14、,它包含有各種有關(guān)集合操作的靜態(tài)方法。Collections是針對集合類的一個幫助類,它提供一系列的靜態(tài)方法實(shí)現(xiàn)對各種集合的搜索,排序,線程安全化等操作17. 如何釋放過度使用的undo表空間1. 啟動SQLPLUS,并用sys登陸到數(shù)據(jù)庫。 2. 查找數(shù)據(jù)庫的UNDO表空間名3. 確認(rèn)UNDO表空間;SQL select name from v$tablespace; 4. 檢查數(shù)據(jù)庫UNDO表空間占用空間情況以及數(shù)據(jù)文件存放位置; 5. 查看回滾段的使用情況,哪個用戶正在使用回滾段的資源,如果有用戶最好更換時間 6. 檢查UNDO Segment狀態(tài)18. 數(shù)據(jù)庫里面游標(biāo),索引是怎么用的?
15、 在oracle數(shù)據(jù)庫中,用get 和load方法 這2個方法來查沒有的數(shù)據(jù) 那么分別會反饋什么樣的結(jié)果?declare cur cursor keyset for get返回null,load classnotfoundException19. .在Oracle中數(shù)據(jù)庫中的一個表中,這個表沒有主鍵id也沒有特定標(biāo)示來查數(shù)據(jù),怎么查?rowid20. 簡述private、proteced、public、internal修飾符的訪問權(quán)限 同一個類同一個包不同包的子類不同包非子類private*default*protected *public* * * 21. 概述反射和序列化Reflectio
16、n是Java被視為動態(tài)(或準(zhǔn)動態(tài))語言的一個關(guān)鍵性質(zhì)。這個機(jī)制允許程序在運(yùn)行時透過ReflectionAPIs取得任何一個已知名稱的class的內(nèi)部信息,包括其modifiers(諸如public,static等等)、superclass(例如Object)、實(shí)現(xiàn)之interfaces(例如Cloneable),也包括fields和methods的所有信息,并可于運(yùn)行時改變fields內(nèi)容或喚起methods。本文借由實(shí)例,大面積示范ReflectionAPIs。22. 序列化就是一種用來處理對象流的機(jī)制,所謂對象流也就是將對象的內(nèi)容進(jìn)行流化??梢詫α骰蟮膶ο筮M(jìn)行讀寫操作,也可將流化后的對象
17、傳輸于網(wǎng)絡(luò)之間。序列化是為了解決在對對象流進(jìn)行讀寫操作時所引發(fā)的問題。序列化的實(shí)現(xiàn):將需要被序列化的類實(shí)現(xiàn)Serializable接口,該接口沒有需要實(shí)現(xiàn)的方法,implementsSerializable只是為了標(biāo)注該對象是可被序列化的,然后使用一個輸出流(如:FileOutputStream)來構(gòu)造一個ObjectOutputStream(對象流)對象,接著,使用ObjectOutputStream對象的writeObject(Objectobj)方法就可以將參數(shù)為obj的對象寫出(即保存其狀態(tài)),要恢復(fù)的話則用輸入流23. ORACLE中not和and和or優(yōu)先級由高到低?not and
18、 or24. java 是如何進(jìn)行異常處理的Java通過面向?qū)ο蟮姆椒ㄟM(jìn)行異常處理,把各種不同的異常進(jìn)行分類,并提供了良好的接口。在Java中,每個異常都是一個對象,它是Throwable類或其它子類的實(shí)例。當(dāng)一個方法出現(xiàn)異常后便拋出一個異常對象,該對象中包含有異常信息,調(diào)用這個對象的方法可以捕獲到這個異常并進(jìn)行處理。Java的異常處理是通過5個關(guān)鍵詞來實(shí)現(xiàn)的:try、catch、throw、throws和finally。一般情況下是用try來執(zhí)行一段程序,如果出現(xiàn)異常,系統(tǒng)會拋出(throws)一個異常,這時候你可以通過它的類型來捕捉(catch)它,或最后(finally)由缺省處理器來處
19、理25. struts2 必備包c(diǎn)ommons-fileupload-1.2.1.jarfreemarker-2.3.13.jarognl-2.6.11.jarstruts2-core-2.1.6.jarxwork-2.1.2.jar26. dao 是什么及作用dao 是數(shù)據(jù)訪問對象 DAO負(fù)責(zé)管理與數(shù)據(jù)源的連接來獲取和儲存其中的數(shù)據(jù)27. ibatis 中的#與$的區(qū)別在Ibatis中我們使用SqlMap進(jìn)行Sql查詢時需要引用參數(shù),在參數(shù)引用中遇到的符號#和$之間的區(qū)分為,#可以進(jìn)行與編譯,進(jìn)行類型匹配,而$不進(jìn)行數(shù)據(jù)類型匹配,例如: select * from table where i
20、d = #id# ,其中如果字段id為字符型,那么#id#表示的就是id類型,如果id為整型,那么#id#就是id類型。 select * from table where id = $id$ ,如果字段id為整型,Sql語句就不會出錯,但是如果字段id為字符型,那么Sql語句應(yīng)該寫成 select * from table where id = $id$28. struts的實(shí)現(xiàn)原理1、客戶端初始化一個指向Servlet容器(例如Tomcat)的請求2、這個請求經(jīng)過一系列的過濾器(Filter)(這些過濾器中有一個叫做ActionContextCleanUp的可選過濾器,這個過濾器對于Str
21、uts2和其他框架的集成很有幫助,例如:SiteMesh Plugin);3、接著FilterDispatcher被調(diào)用,F(xiàn)ilterDispatcher詢問ActionMapper來決定這個請求是否需要調(diào)用某個Action;4、如果ActionMapper決定需要調(diào)用某個Action,F(xiàn)ilterDispatcher把請求的處理交給ActionProxy;5、ActionProxy通過Configuration Manager詢問框架的配置文件,找到需要調(diào)用的Action類;6、ActionProxy創(chuàng)建一個ActionInvocation的實(shí)例。7、ActionInvocation實(shí)例使用
22、命名模式來調(diào)用,在調(diào)用Action的過程前后,涉及到相關(guān)攔截器(Intercepter)的調(diào)用。8、一旦Action執(zhí)行完畢,ActionInvocation負(fù)責(zé)根據(jù)struts.xml中的配置找到對應(yīng)的返回結(jié)果。返回結(jié)果通常是(但不總是,也可能是另外的一個Action鏈)一個需要被表示的JSP或者FreeMarker的模版。在表示的過程中可以使用Struts2框架中繼承的標(biāo)簽。在這個過程中需要涉及到ActionMapper29. 簡述spring 的事務(wù)傳播行為和 隔離級別 spring 的事務(wù)傳播行為: Spring在TransactionDefinition接口中規(guī)定了7種類型的事務(wù)傳播
23、行為,它們規(guī)定了事務(wù)方法和事務(wù)方法發(fā)生嵌套調(diào)用時事務(wù)如何進(jìn)行傳播:PROPAGATION_REQUIRED:如果當(dāng)前沒有事務(wù),就新建一個事務(wù),如果已經(jīng)存在一個事務(wù)中,加入到這個事務(wù)中。這是最常見的選擇。PROPAGATION_SUPPORTS:支持當(dāng)前事務(wù),如果當(dāng)前沒有事務(wù),就以非事務(wù)方式執(zhí)行。PROPAGATION_MANDATORY:使用當(dāng)前的事務(wù),如果當(dāng)前沒有事務(wù),就拋出異常。PROPAGATION_REQUIRES_NEW:新建事務(wù),如果當(dāng)前存在事務(wù),把當(dāng)前事務(wù)掛起。PROPAGATION_NOT_SUPPORTED:以非事務(wù)方式執(zhí)行操作,如果當(dāng)前存在事務(wù),就把當(dāng)前事務(wù)掛起。PROPA
24、GATION_NEVER:以非事務(wù)方式執(zhí)行,如果當(dāng)前存在事務(wù),則拋出異常。PROPAGATION_NESTED:如果當(dāng)前存在事務(wù),則在嵌套事務(wù)內(nèi)執(zhí)行。如果當(dāng)前沒有事務(wù),則執(zhí)行與PROPAGATION_REQUIRED類似的操作。Spring 的隔離級別1、Serializable:最嚴(yán)格的級別,事務(wù)串行執(zhí)行,資源消耗最大; 2、REPEATABLE READ:保證了一個事務(wù)不會修改已經(jīng)由另一個事務(wù)讀取但未提交(回滾)的數(shù)據(jù)。避免了“臟讀取”和“不可重復(fù)讀取”的情況,但是帶來了更多的性能損失。 3、READ COMMITTED:大多數(shù)主流數(shù)據(jù)庫的默認(rèn)事務(wù)等級,保證了一個事務(wù)不會讀到另一個并行事務(wù)
25、已修改但未提交的數(shù)據(jù),避免了“臟讀取”。該級別適用于大多數(shù)系統(tǒng)。 4、Read Uncommitted:保證了讀取過程中不會讀取到非法數(shù)據(jù)。30. 寫一段把本地文件formfile拷貝到本地文件tofile的程序public class ChangeJtdToJava public static void main(String args) File dir = new File(f:/jtd);/ 得到d:/jtd 下的所有文件對象File files = dir.listFiles();for (File file : files) String fileName = file.getNa
26、me(); / 得到文件名int index = fileName.indexOf(.);/ .的索引位置String fileName2 = fileName.substring(0, index); / 不帶后綴名的文件名String houZui = fileName.substrinxg(index);if (houZui.equals(.jtd) / f:/java/ + fileName2 + .java/ 要移到的地方file.renameTo(new File(f:/java/ + fileName2 + .java);31. 寫出刪除表中重復(fù)記錄的語句 oracledelet
27、e from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) 1) and rowid not in (select min(rowid) from people group by32. java 類實(shí)現(xiàn)序列化的方法(二種)?如在collection框架中,要實(shí)現(xiàn)什么樣的接口 java.io.Serializable接口 Collection框架中實(shí)現(xiàn)比較要實(shí)現(xiàn)Comparable 接口和 Comparator 接口 33. Struts2實(shí)現(xiàn)攔截器的原
28、理?實(shí)現(xiàn)原理:Struts2攔截器是在訪問某個Action或Action的某個方法、字段之前或之后實(shí)施攔截,并且Struts2攔截器是可插拔的,攔截器是的一種實(shí)現(xiàn)。當(dāng)請求struts2的action時,Struts 2會查找配置文件,并根據(jù)其配置實(shí)例化相對的攔截器對象,然后串成一個列表,最后一個一個地調(diào)用列表中的攔截器。34. sleep()和wait()區(qū)別sleep() 方法:線程主動放棄CPU,使得線程在指定的時間內(nèi)進(jìn)入阻塞狀態(tài),不能得到CPU 時間,指定的時間一過,線程重新進(jìn)入可執(zhí)行狀態(tài)。典型地,sleep() 被用在等待某個資源就緒的情形:測試發(fā)現(xiàn)條件不滿足后,讓線程阻塞一段時間后重
29、新測試,直到條件滿足為止。wait( ) :與notify()配套使用,wait()使得線程進(jìn)入阻塞狀態(tài),它有兩種形式,一種允許指定以毫秒為單位的一段時間作為參數(shù),另一種沒有參數(shù),當(dāng)指定時間參數(shù)時對應(yīng)的 notify() 被調(diào)用或者超出指定時間時線程重新進(jìn)入可執(zhí)行狀態(tài),后者則必須對應(yīng)的 notify() 被調(diào)用35. Servlet的生命周期分為3個階段:? 和CGI的區(qū)別?Servlet的生命周期主要由3個過程組成。 (1)init()方法:服務(wù)器初始化servlet。 (2)service()方法:初始化完畢,servlet對象調(diào)用該方法響應(yīng)客戶的請求。 (3)destroy()方法:調(diào)用
30、該方法消滅servlet對象。 其中,init()方法只在servlet第一次被請求加載的時候被調(diào)用一次,當(dāng)有客戶再請求servlet服務(wù)時,web服務(wù)器將啟動一個新的線程,在該線程中,調(diào)用service方法響應(yīng)客戶的請求。與cgi的區(qū)別在于servlet處于服務(wù)器進(jìn)程中,它通過多線程方式運(yùn)行其service方法,一個實(shí)例可以服務(wù)于多個請求,并且其實(shí)例一般不會銷毀,而CGI對每個請求都產(chǎn)生新的進(jìn)程,服務(wù)完成后就銷毀,所以效率上低于servlet。36. forward與redirect 的區(qū)別?有哪些方式實(shí)現(xiàn)1). 重定向后url地址欄地址不變還是原來的地址;而response.sendRed
31、irect()重定向后url地址欄地址顯示的請求后的新地址。2). 重定向的時候可以保存回話信息,因此可以使用request來進(jìn)行參數(shù)傳遞,在新頁面可以使用request.getAttribute ()來得到參數(shù)。而response.sendRedirect()不支持此通過request進(jìn)行參數(shù)傳遞。它唯一的傳值方式為response.sendRedirect(“example.jsp?aa=123”),在新的頁面通過request.getParameter(“aa”)來得到參數(shù)值37. 多線程、同步實(shí)現(xiàn)方法? 1)實(shí)現(xiàn)線程有兩種方法: 繼承Thread類或者實(shí)現(xiàn)Runnable接口2) 實(shí)現(xiàn)
32、同步也有兩種,一種是用同步方法,一種是用同步塊. 同步方法就是在方法返回類型后面加上synchronized, 比如:public void synchronized add().同步塊就是直接寫:synchronized (這里寫需要同步的對象).38. 集合類有哪些?有哪些方法?集合類 ArrayList LinkedList HashSet HashMap方法:add(),remove(),put(),addAll(),removeAll()39. java中實(shí)現(xiàn)多態(tài)的機(jī)制是什么重寫,重載方法的重寫Overriding和重載Overloading是Java多態(tài)性的不同表現(xiàn)。重寫Overr
33、iding是父類與子類之間多態(tài)性的一種表現(xiàn),重載Overloading是一個類中多態(tài)性的一種表現(xiàn)。如果在子類中定義某方法與其父類有相同的名稱和參數(shù),我們說該方法被重寫 (Overriding)。子類的對象使用這個方法時,將調(diào)用子類中的定義,對它而言,父類中的定義如同被“屏蔽”了。果在一個類中定義了多個同名的方法,它們或有不同的參數(shù)個數(shù)或有不同的參數(shù)類型,則稱為方法的重載(Overloading)。Overloaded的方法是可以改變返回值的類型。40. 靜態(tài)的多態(tài)和動態(tài)的多態(tài)的區(qū)別靜態(tài)的多態(tài): 即為重載 ;方法名相同,參數(shù)個數(shù)或類型不相同。(overloading)動態(tài)的多態(tài): 即為重寫;子類
34、覆蓋父類的方法,將子類的實(shí)例傳與父類的引用調(diào)用的是子類的方法 實(shí)現(xiàn)接口的實(shí)例傳與接口的引用調(diào)用的實(shí)現(xiàn)類的方法。41. 作用域Public,private,protected.以及不寫時的區(qū)別public整個java程序中都可以訪問 protected在其他包中不可以訪問friendly只有當(dāng)前包或當(dāng)前內(nèi)可以訪問,其他都不行 private只有當(dāng)前內(nèi)可以訪問不寫的話默認(rèn)是protected42. extends和implement的不同extends是繼承父類,只要那個類不是聲明為final或者那個類定義為abstract的就能繼承,JAVA中不支持多重繼承,但是可以用接口來實(shí)現(xiàn),這樣就要用到i
35、mplements,繼承只能繼承一個類,但implements可以實(shí)現(xiàn)多個接口,用逗號分開就行了 比如 class A extends B implements C,D,E 43. join與left join的區(qū)別:inner join(等值連接) 只返回兩個表中聯(lián)結(jié)字段相等的行 left join(左聯(lián)接) 返回包括左表中的所有記錄和右表中聯(lián)結(jié)字段相等的記錄 right join(右聯(lián)接) 返回包括右表中的所有記錄和左表中聯(lián)結(jié)字段相等的記錄44. DAO設(shè)計(jì)模式與DELEGATE模式 DAO(Data Access Object)模式實(shí)際上是兩個模式的組合,即Data Accessor 模
36、式和 Active Domain Object 模式,其中 Data Accessor 模式實(shí)現(xiàn)了數(shù)據(jù)訪問和業(yè)務(wù)邏輯的分離,而Active Domain Object 模式實(shí)現(xiàn)了業(yè)務(wù)數(shù)據(jù)的對象化封裝,一般我們將這兩個模式組合使用。 DAO 模式通過對底層數(shù)據(jù)的封裝,為業(yè)務(wù)層提供一個面向?qū)ο蟮慕涌?,使得業(yè)務(wù)邏輯開發(fā)員可以面向業(yè)務(wù)中的實(shí)體進(jìn)行編碼。通過引入DAO模式,業(yè)務(wù)邏輯更加清晰,且富于形象性和描述性,這將為日后的維護(hù)帶來極大的便利。試想,在業(yè)務(wù)曾通過Customer.getName方法獲得客戶姓名,相對于直接通過SQL語句訪問數(shù)據(jù)庫表并從ResultSet中獲得某個字符型字段而言,哪種方式更
37、加易于業(yè)務(wù)邏輯的形象化和簡潔化?Business Delegate起到客戶端業(yè)務(wù)抽象化的作用。它抽象化,進(jìn)而隱藏業(yè)務(wù)服務(wù)的實(shí)現(xiàn)。使用Business Delegate,可以降低表示層客戶端和系統(tǒng)的業(yè)務(wù)服務(wù)之間的耦合程度。根據(jù)實(shí)現(xiàn)策略不同,Business Delegate可以在業(yè)務(wù)服務(wù)API的實(shí)現(xiàn)中,保護(hù)客戶端不受可能的變動性影響。這樣,在業(yè)務(wù)服務(wù)API或其底層實(shí)現(xiàn)變化時,可以潛在地減少必須修改表示層客戶端代碼的次數(shù)。45. 適配器模式與橋梁模式的區(qū)別適配器模式把一個類的接口變換成客戶端所期待的另一種接口,從而使原本因接口不匹配而無法在一起工作的兩個類能夠在一起工作。又稱為轉(zhuǎn)換器模式、變壓器模
38、式、包裝模式(把已有的一些類包裝起來,使之能有滿足需要的接口)。適配器模式的用意是將接口不同而功能相同或者相近的兩個接口加以轉(zhuǎn)換,包括適配器角色補(bǔ)充一些源角色沒有但目標(biāo)接口需要的方法。就像生活中電器插頭是三相的,而電源插座是兩相的,這時需要一個三相變兩相的轉(zhuǎn)換器來滿足。比如,在Java I/O庫中使用了適配器模式,象FileInputStream是一個適配器類,其繼承了InputStrem類型,同時持有一個對FileDiscriptor的引用。這是將一個FileDiscriptor對象適配成InputStrem類型的對象形式的適配器模式。StringReader是一個適配器類,其繼承了Read
39、er類型,持有一個對String對象的引用。它將String的接口適配成Reader類型的接口。等等。橋梁模式的用意是要把實(shí)現(xiàn)和它的接口分開,以便它們可以獨(dú)立地變化。橋梁模式并不是用來把一個已有的對象接到不相匹配的接口上的。當(dāng)一個客戶端只知道一個特定的接口,但是又必須與具有不同接口的類打交道時,就應(yīng)該使用橋梁模式。比如,JDBC驅(qū)動器就是一個橋梁模式的應(yīng)用,使用驅(qū)動程序的應(yīng)用系統(tǒng)就是抽象化角色,而驅(qū)動器本身扮演實(shí)現(xiàn)化角色。應(yīng)用系統(tǒng)和JDBC驅(qū)動器是相對獨(dú)立的。應(yīng)用系統(tǒng)動態(tài)地選擇一個合適的驅(qū)動器,然后通過驅(qū)動器向數(shù)據(jù)庫引擎發(fā)出指令就可以訪問數(shù)據(jù)庫中的數(shù)據(jù)。工廠模式 工廠模式:工廠模式是一種經(jīng)常被
40、使用到的模式,根據(jù)工廠模式實(shí)現(xiàn)的類可以根據(jù)提供的數(shù)據(jù)生成一組類中某一個類的實(shí)例,通常這一組類有一個公共的抽象父類并且實(shí)現(xiàn)了相同的方法,但是這些方法針對不同的數(shù)據(jù)進(jìn)行了不同的操作。首先需要定義一個基類,該類的子類通過不同的方法實(shí)現(xiàn)了基類中的方法。然后需要定義一個工廠類,工廠類可以根據(jù)條件生成不同的子類實(shí)例。當(dāng)?shù)玫阶宇惖膶?shí)例后,開發(fā)人員可以調(diào)用基類中的方法而不必考慮到底返回的是哪一個子類的實(shí)例。46. 開發(fā)中都用到了那些設(shè)計(jì)模式?用在什么場合?每個模式都描述了一個在我們的環(huán)境中不斷出現(xiàn)的問題,然后描述了該問題的解決方案的核心。通過這種方式,你可以無數(shù)次地使用那些已有的解決方案,無需在重復(fù)相同的工作
41、。(1) MVC模式,在J2EE項(xiàng)目開發(fā)中主要用在表示層框架中,很好解決視圖和流程控制。在項(xiàng)目中采用的Struts、WebWork等框架。(2) DAO模式,在項(xiàng)目開發(fā)中主要用在數(shù)據(jù)層,封裝數(shù)據(jù)的訪問操作,為業(yè)務(wù)層提供數(shù)據(jù)服務(wù)。(3) IoC模式,在項(xiàng)目開發(fā)中業(yè)務(wù)層有大量對象,他們之間存在依賴關(guān)系,可以使用IoC模式減少他們之間的代碼耦合,提高系統(tǒng)的可擴(kuò)展性。實(shí)際項(xiàng)目中使用的Spring框架來實(shí)現(xiàn)業(yè)務(wù)組件的裝配。(4) Observer模式,在Servlet的監(jiān)聽器中應(yīng)用到了觀察者模式。(5) singleton單例模式和Factory工廠模式結(jié)合使用在項(xiàng)目中無需使用者了解過多的細(xì)節(jié)就可獲取有
42、關(guān)的對象實(shí)例。比如Hibernate項(xiàng)目中通過SessionFactory來獲取Session。(6) bridge模式,在項(xiàng)目中使用JDBC驅(qū)動訪問數(shù)據(jù)庫。47. Hibernate中離線查詢與在線查詢的區(qū)別Criteria 和 DetachedCriteria 的主要區(qū)別在于創(chuàng)建的形式不一樣, Criteria 是在線的,所以它是由 Hibernate Session 進(jìn)行創(chuàng)建的;而 DetachedCriteria 是離線的,創(chuàng)建時無需 Session,DetachedCriteria 提供了 2 個靜態(tài)方法 forClass(Class) 或 forEntityName(Name) 進(jìn)
43、行DetachedCriteria 實(shí)例的創(chuàng)建。48. C#數(shù)據(jù)類型有哪些 ? int 整型double 雙精度型string 字符串型 char 字符型 bool 布爾型 49. 抽象類能否被實(shí)例化 ?抽象類的作用是什么?抽象類一般不能被實(shí)例化;抽象類通常不是由程序員定義的,而是由項(xiàng)目經(jīng)理或模塊設(shè)計(jì)人 設(shè)計(jì)抽象類的原因通常是為了規(guī)范方法名 抽象類必須要繼承,不然沒法用,作為模塊設(shè)計(jì)者,可以把讓底層程序員直接用得方法直接調(diào)用,而一些需要讓程序員覆蓋后自己做得方法則定義稱抽象方法50. ASP.NET頁面?zhèn)鬟f值的方式有哪些1 通過URL鏈接地址傳遞 2 通過post方式。 3 通過session
44、 4通過Application5 通過Server.Transfersend.aspx: 51. 如何定義一個MDI(.NET技術(shù))定義MDI父窗口應(yīng)該是設(shè)置窗體的MdiParent屬性= true52. WCF是什么? Windows Communication Foundation (WCF) 是由微軟發(fā)展的一組數(shù)據(jù)通信的應(yīng)用程序開發(fā)接口,它是.NET框架的一部分,由 .NET Framework 3.0 開始引入,與 Windows Presentation Foundation 及 Windows Workflow Foundation 并行為新一代 Windows 操作系統(tǒng)以及 Wi
45、nFX 的三個重大應(yīng)用程序開發(fā)類庫53. 常用的包,類,接口,各舉5個。類String Integer Long File Date 包 java.lang.*;java.io.*;java.util.*;java.swt.*;java.math.*;接口: Comparable ,Connection,Map,List,Runable,54. 網(wǎng)上購物系統(tǒng)的類圖,用例圖。用例圖:類圖:55. 給你一個整數(shù)類型的數(shù)組,按從小到大的順序進(jìn)行排列!public static void fun(int a,int c)for(int i=0;ia.length-1;i+)for(int j=i;ja
46、.length-1;j+)if(aiaj)t=ai;ai=aj;aj=t;System.out.print(ai+ );56. 查詢出M 頁的N行數(shù)據(jù)(分頁的實(shí)現(xiàn),求第M也的記錄數(shù))Select top N from table where id not in (select top (M-1)*N id from table )57. Linkedlist arraylist內(nèi)部是如何實(shí)現(xiàn)的(更深入的問了LinkedList與ArrayList的區(qū)別) ArrayList的內(nèi)部實(shí)現(xiàn)是基于內(nèi)部數(shù)組Object,所以從概念上講,它更像數(shù)組,但LinkedList的內(nèi)部實(shí)現(xiàn)是基于一組連接的記錄,所
47、以,它更像一個鏈表結(jié)構(gòu),所以,它們在性能上有很大的差別。在ArrayList的前面或中間插入數(shù)據(jù)時,必須將其后的所有數(shù)據(jù)相應(yīng)的后移,這樣必然要花費(fèi)較多時間,所以,當(dāng)你的操作是在一列數(shù)據(jù)的后面添加數(shù)據(jù)而不是在前面或中間,并且需要隨機(jī)地訪問其中的元素時,使用ArrayList會提供比較好的性能;而訪問鏈表中的某個元素時,就必須從鏈表的一端開始沿著連接方向一個一個元素地去查找,直到找到所需的元素為止,所以,當(dāng)你的操作是在一列數(shù)據(jù)的前面或中間添加或刪除數(shù)據(jù),并且按照順序訪問其中的元素時,就應(yīng)該使用LinkedList了。如果在編程中,兩種情形交替出現(xiàn),這時,可以考慮使用List這樣的通用接口,而不用關(guān)
48、心具體的實(shí)現(xiàn),在具體的情形下,它的性能由具體的實(shí)現(xiàn)來保證58. new ArrayList(10)含義 在內(nèi)存中連續(xù)分配了用來存在Object對象的數(shù)組;59. 面向?qū)ο笾饕獌?nèi)容? 有什么作用?就分析設(shè)計(jì)層面來說,面向?qū)ο蠹夹g(shù)提供了更高級的抽象能力以及更多的方法和工具,如設(shè)計(jì)模式; 就實(shí)現(xiàn)維護(hù)層面來說,面向?qū)ο蠹夹g(shù)使代碼重用更容易,且使代碼具有可擴(kuò)展性,便于軟件的維護(hù)和升級更新。 60. 如何移動一個數(shù) 使62-63=1成立 62-63=1如何移動 2的6次方等于64 2的6次方-63=1 把2移動到6的左下方61. 遞歸實(shí)現(xiàn)1,1,2,3,5,8,.第30個數(shù)是多少?publicstatic
49、intFoo(inti)if(i0&i 1) and rowid not in (select min(rowid) from people group 64. 用什么方法使服務(wù)器關(guān)閉之后,session所保存的信息不會丟失?使用cookie65. 如果頁面沒有標(biāo)簽,會出現(xiàn)什么錯誤代碼?沒有什么變化66. 抽象類是否可以沒有抽象方法?為什么?可以在java中用abstract關(guān)鍵字來修飾一個類時,這個類叫做抽象類。抽象類中不一定要包含abstract方法,但一個類中包含了abstract方法,則這個類必須聲明為abstract類。67. servlet中的init方法什么時候被調(diào)用?容器首次創(chuàng)
50、建實(shí)例的時候68. 用4 個0,用你所知道的數(shù)學(xué)方法計(jì)算出240的階乘等于1 即 0!那么個0就是了又4的階乘為 !69. linux中進(jìn)程的查看和調(diào)度分別用什么命令? ps -A 查看 renice top70. 集合類有哪些?有哪些方法?集合類 ArrayList LinkedList HashSet HashMap方法:add(),remove(),put(),addAll(),removeAll()71. OSI七層模型tcp四層模型是什么樣的OSI七層參考模型 :物理層 、數(shù)據(jù)鏈路層 、網(wǎng)絡(luò)層 、傳輸層、應(yīng)用層、會話層、表示層TCP/IP:第一層網(wǎng)絡(luò)接口層第二層 第二層?網(wǎng)間層 第三
51、層?傳輸層 第四層?應(yīng)用層72. JAVA測試模式(ZZ):模式(一) Main 模式 模式(二) toString 模式模式(三) Equal 模式模式(四) Internal Tester Class 模式 模式(五) Extern Tester Class 模式 73. 一學(xué)生表!有班及id,學(xué)號!成績!一求平均成績!二求比平均成績高的學(xué)生的所有信息select id,avg(成績) from table group by idselect * from table where 成績 (select 成績 from (select id,avg(成績) 成績 from table gro
52、up by id)as a )74. jdk的新特性“JDK1.5”的一個重要主題就是通過新增一些特性來簡化開發(fā),這些特性包括泛型,for-each循環(huán),自動裝包/拆包,枚舉,可變參數(shù),靜態(tài)導(dǎo)入。使用這些特性有助于我們編寫更加清晰,精悍,安全的代碼。75. j2ee的規(guī)范?SUN公司定義的一個開發(fā)分布式企業(yè)級應(yīng)用的規(guī)范。它提供了一個多層次的分布式應(yīng)用模型和一系列開發(fā)技術(shù)規(guī)范。多層次分布式應(yīng)用模型是指根據(jù)功能把應(yīng)用邏輯分成多個層次,每個層次支持相應(yīng)的服務(wù)器和組件,組件在分布式服務(wù)器的組件容器中運(yùn)行(如Servlet組件在Servlet容器上運(yùn)行,EJB組件在EJB容器上運(yùn)行),容器間通過相關(guān)的協(xié)
53、議進(jìn)行通訊,實(shí)現(xiàn)組件間的相互調(diào)用 J2EE規(guī)范定義了以下四個層次。 1.客戶端層(Client Tier) 2.Web層 3.業(yè)務(wù)層(Business Tier) 4.企業(yè)信息系統(tǒng)層76. ajax的工作原理?Ajax 基本上就是把 JavaScript 技術(shù)和 XMLHttpRequest 對象放在 Web 表單和服務(wù)器之間。當(dāng)用戶填寫表單時,數(shù)據(jù)發(fā)送給一些 JavaScript 代碼而不是 直接發(fā)送給服務(wù)器。相反,JavaScript 代碼捕獲表單數(shù)據(jù)并向服務(wù)器發(fā)送請求。同時用戶屏幕上的表單也不會閃爍、消失或延遲。換句話說,JavaScript 代碼在幕后發(fā)送請求,用戶甚至不知道請求的發(fā)出。更好的是,請求是異步發(fā)送的,就是說 JavaScript 代碼(和用戶)不用等待服務(wù)器的響應(yīng)。因此用戶可以繼續(xù)輸入數(shù)據(jù)、滾動屏幕和使用應(yīng)用程序。 然后,服務(wù)器將數(shù)據(jù)返回 JavaScript 代碼(仍然在 W
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版美團(tuán)外賣商家綠色包裝與環(huán)保承諾合同4篇
- 二零二五版貓咪寵物行業(yè)投資與融資協(xié)議4篇
- 2024資格考試綜合服務(wù)項(xiàng)目協(xié)議版B版
- 二零二四年度住宅小區(qū)地下車庫租賃協(xié)議3篇
- 二零二五年度住宅小區(qū)車位租賃及增值服務(wù)合同11篇
- 二零二五版體育設(shè)施建設(shè)項(xiàng)目貸款合同樣本2篇
- 二零二五年度房地產(chǎn)開發(fā)項(xiàng)目合作投資協(xié)議書4篇
- 二零二五版跨境電商搬運(yùn)物流合同2篇
- 二零二五年度文化演藝中心工程承包協(xié)議4篇
- 二零二五版高端茶樹品種購銷合同典范3篇
- 保險反洗錢培訓(xùn)
- 普通高中生物新課程標(biāo)準(zhǔn)
- 茉莉花-附指法鋼琴譜五線譜
- 結(jié)婚函調(diào)報告表
- SYT 6968-2021 油氣輸送管道工程水平定向鉆穿越設(shè)計(jì)規(guī)范-PDF解密
- 冷庫制冷負(fù)荷計(jì)算表
- 肩袖損傷護(hù)理查房
- 設(shè)備運(yùn)維管理安全規(guī)范標(biāo)準(zhǔn)
- 辦文辦會辦事實(shí)務(wù)課件
- 大學(xué)宿舍人際關(guān)系
- 2023光明小升初(語文)試卷
評論
0/150
提交評論