java(軟件)工程師面試題大全-100%公司筆試題你都能碰到幾個_第1頁
java(軟件)工程師面試題大全-100%公司筆試題你都能碰到幾個_第2頁
java(軟件)工程師面試題大全-100%公司筆試題你都能碰到幾個_第3頁
java(軟件)工程師面試題大全-100%公司筆試題你都能碰到幾個_第4頁
java(軟件)工程師面試題大全-100%公司筆試題你都能碰到幾個_第5頁
已閱讀5頁,還剩78頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1.hibernate中離線查詢?nèi)コ貜?fù)項怎么加條件?

dc.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);

2.http協(xié)議及端口,smtp協(xié)議及端口

http:超文本傳輸協(xié)議端口80

smtp:簡單郵件傳輸協(xié)議端口25

3.編寫程序,完成文件復(fù)制功能

4.Servlet創(chuàng)建過程及生命周期Servlet在容器中運行時,其實例的創(chuàng)建及銷毀等是由容器進(jìn)行控制。

Servlet的創(chuàng)建有兩種方法。

1).客戶端請求對應(yīng)的Servlet時,創(chuàng)建Servlet實例;大部分Servlet都是這種Servlet。

2).通過在web.xml中設(shè)置load-on-startup來創(chuàng)建servlet實例,這種實例在Web應(yīng)用啟動時,立即

創(chuàng)建Servlet實例

Servlet的運行都遵循如下生命周期:

1).創(chuàng)建Servlet實例。

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容器之時銷毀

Servlet。

5.用sql語句分頁:

Mysql數(shù)據(jù)庫:

SELECTTOP頁大小*FROMtable1WHEREidNOTIN(

SELECTTOP頁大小*(頁數(shù)-1)idFROMtable1ORDERBYid

)ORDERBYid

Oracle數(shù)據(jù)庫:

在ORACLE大數(shù)據(jù)量下的分頁解決方法。一般用截取ID方法,還有是三層嵌套方法。

截取ID的方法

select*fromempa,(selectempno,rownumasnumfromemp)bwherea.empno=b.empnoandb.numbetween5and7;

三層嵌套

SELECT*FROM(SELECTA.*,rownumrFROM(SELECT*FROMemp)AWHERErownum<=7)BWHEREr>5;

6.list.map.set的存儲特點?

List以特定次序來持有元素,可有重復(fù)元素.

Set無法擁有重復(fù)元素,明為final的。將變量或方法聲明為final,可以保證它們在使用中不被改變。被聲明為final的變量必須在聲明時給定初值,而在以后的引用中只能讀取,不可修改被聲明為final的方法也同樣只能使用,不能重載。

finally—再異常處理時提供finally塊來執(zhí)行任何清除操作。如果拋出一個異常,那么相匹配的catch子句就會執(zhí)行,然后控制就會進(jìn)入finally塊(如果有的話)。

finalize—方法名。Java技術(shù)允許使用finalize()方法在垃圾收集器將對象從LinkedList采用的將對象存放在獨立的空間中,而且在每個空間中還保存下一個鏈接的索引但是缺點就是查找非常麻煩要叢第一個索引開始

2).ArrayList和Vector都是用數(shù)組方式存儲數(shù)據(jù),此數(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ù)時只需要記錄前后項即可,所以插入的速度快.

10.HASHMAP,HASHTABLE區(qū)別

1.Hashtable是Dictionary的子類,HashMap是Map接口的一個實現(xiàn)類;

2.Hashtable中的方法是同步的,而HashMap中的方法在缺省情況下是非同步的。

3.在HashMap中,null可以作為鍵,這樣的鍵只有一個;可以有一個或多個鍵所對應(yīng)的值為null。

11..描述Cookie和Session的作用,區(qū)別和各自的應(yīng)用范圍,Session工作原理

Session用于保存每個用戶的專用信息.每個客戶端用戶訪問時,服務(wù)器都為每個用戶分配一個唯一的會話ID(SessionID).她的生存期是用戶持續(xù)請求時間再加上一段時間(一般是20分鐘左右).Session

中的信息保存在Web服務(wù)器EE是什么意思?Struts的攔截器你是怎么做的,是獨立開發(fā)的,能

夠獨立開發(fā)的到。然后問有哪幾種攔截?

Java2Platform,EnterpriseEdition

繼承AbstractInterceptor類,覆蓋intercept()方法

有struts自己的攔截器如timer,i18n,scop,servletconfig,token

還有自定義攔截器

15.簡單介紹下java?Spring的AOP,IOC的講述對struts2的了解,1,2的比較xml的了解J2ee的

webserviced的協(xié)議?

SpringAOP:代理機(jī)制Spring提供的自動代理機(jī)制

Spring的IoC來實組件之間的依賴關(guān)系注入,使控制層與業(yè)務(wù)實現(xiàn)分離,即客戶通過

調(diào)用業(yè)務(wù)委托接口來調(diào)用具體的業(yè)務(wù)組件的實例,避免控制層與業(yè)務(wù)層的藕合帶來的維護(hù)

或升級困難。由Spring為DAO生成代理對象來為DAO添加事務(wù)服務(wù),由IoC容器DAO的代理實例注入到業(yè)務(wù)組件中,業(yè)務(wù)組件通過DAO的委托接口調(diào)用DAO對象,使得上層組件不直接依賴于DAO的實現(xiàn)類,使得持久層更換或修改不影響上層組件。

16.Collections,collection的區(qū)別

Collection是個java.util下的接口,它是各種集合結(jié)構(gòu)的父接口。Collections是個java.util下的普通類,它包含有各種有關(guān)集合操作的靜態(tài)方法。Collections是針對集合類的一個幫助類,它提供一系列的靜態(tài)方法實現(xiàn)對各種集合的搜索,排序,線程安全化等操作

17.如何釋放過度使用的undo表空間

1.啟動SQLPLUS,并用sys登陸到數(shù)據(jù)庫。2.查找數(shù)據(jù)庫的UNDO表空間名3.確認(rèn)UNDO表空間;SQL>selectnamefromv$tablespace;4.檢查數(shù)據(jù)庫UNDO表空間占用空間情況以及數(shù)據(jù)文件存放位置;5.查

看回滾段的使用情況,哪個用戶正在使用回滾段的資源,如果有用戶最好更換時間6.檢查UNDOSegment狀態(tài)

18.數(shù)據(jù)庫里面游標(biāo),索引是怎么用的?在oracle數(shù)據(jù)庫中,用get和load方法這2個方法來查沒有的數(shù)

據(jù)那么分別會反饋什么樣的結(jié)果?

declarecurcursorkeysetfor

get返回null,loadclassnotfoundException

19..在Oracle中數(shù)據(jù)庫中的一個表中,這個表沒有主鍵id也沒有特定標(biāo)示來查數(shù)據(jù),怎么查?

rowid

20.簡述private、proteced、public、internal修飾符的訪問權(quán)限

同一個類同一個包不同包的子類不同包非子類

private*

default**

protected***

public****

21.概述反射和序列化

Reflection是Java被視為動態(tài)(或準(zhǔn)動態(tài))語言的一個關(guān)鍵性質(zhì)。這個機(jī)制允許程序在運行時透過ReflectionAPIs取得任何一個已知名稱的class的序列化就是一種用來處理對象流的機(jī)制,所謂對象流也就是將對象的ORACLE中not和and和or優(yōu)先級由高到低?

notandor

24.java是如何進(jìn)行異常處理的

Java通過面向?qū)ο蟮姆椒ㄟM(jìn)行異常處理,把各種不同的異常進(jìn)行分類,并提供了良好的接口。在Java中,每個異常都是一個對象,它是Throwable類或其它子類的實例。當(dāng)一個方法出現(xiàn)異常后便拋出一個異常對象,該對象中包含有異常信息,調(diào)用這個對象的方法可以捕獲到這個異常并進(jìn)行處理。Java的異常處理是通過5個關(guān)鍵詞來實現(xiàn)的:try、catch、throw、throws和finally。一般情況下是用try來執(zhí)行一段程序,如果出現(xiàn)異常,系統(tǒng)會拋出(throws)一個異常,這時候你可以通過它的類型來捕捉(catch)它,或最后(finally)由缺省處理器來處理

25.struts2必備包

commons-fileupload-1.2.1.jar

freemarker-2.3.13.jar

ognl-2.6.11.jar

struts2-core-2.1.6.jar

xwork-2.1.2.jar

26.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*fromtablewhereid=#id#,其中如果字段id為字符型,那么#id#表示的就是’id’類型,如果id為整型,那么#id#就是id類型。

select*fromtablewhereid=$id$,如果字段id為整型,Sql語句就不會出錯,但是如果字段id為字符型,那么Sql語句應(yīng)該寫成select*fromtablewhereid=‘$id$’

28.struts2的實現(xiàn)原理

1、客戶端初始化一個指向Servlet容器(例如Tomcat)的請求

2、這個請求經(jīng)過一系列的過濾器(Filter)(這些過濾器中有一個叫做ActionContextCleanUp的可選過濾器,這個過濾器對于Struts2和其他框架的集成很有幫助,例如:SiteMeshPlugin);

3、接著FilterDispatcher被調(diào)用,F(xiàn)ilterDispatcher詢問ActionMapper來決定這個請求是否需要調(diào)用某個Action;

4、如果ActionMapper決定需要調(diào)用某個Action,F(xiàn)ilterDispatcher把請求的處理交給ActionProxy;

5、ActionProxy通過ConfigurationManager詢問框架的配置文件,找到需要調(diào)用的Action類;

6、ActionProxy創(chuàng)建一個ActionInvocation的實例。

7、ActionInvocation實例使用命名模式來調(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)簽。在這個過程中需要涉及到ActionMapper

29.簡述spring的事務(wù)傳播行為和隔離級別

spring的事務(wù)傳播行為:Spring在TransactionDefinition接口中規(guī)定了7種類型的事務(wù)傳播行為,它們規(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ù)掛起。PROPAGATION_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、REPEATABLEREAD:保證了一個事務(wù)不會修改已經(jīng)由另一個事務(wù)讀取但未提交(回滾)的數(shù)據(jù)。避免了“臟讀取”和“不可重復(fù)讀取”的情況,但是帶來了更多的性能損失。

3、READCOMMITTED:大多數(shù)主流數(shù)據(jù)庫的默認(rèn)事務(wù)等級,保證了一個事務(wù)不會讀到另一個并行事務(wù)已修改但未提交的數(shù)據(jù),避免了“臟讀取”。該級別適用于大多數(shù)系統(tǒng)。

4、ReadUncommitted:保證了讀取過程中不會讀取到非法數(shù)據(jù)。

30.寫一段把本地文件formfile拷貝到本地文件tofile的程序

publicclassChangeJtdToJava{

publicstaticvoidmain(String[]args){

Filedir=newFile("f:/jtd");

//得到d:/jtd下的所有文件對象

File[]files=dir.listFiles();

for(Filefile:files){

StringfileName=file.getName();//得到文件名

intindex=fileName.indexOf(".");//.的索引位置

StringfileName2=fileName.substring(0,index);//不帶后綴名的文件名

StringhouZui=fileName.substrinxg(index);

if(houZui.equals(".jtd")){

//"f:/java/"+fileName2+".java"

//要移到的地方

file.renameTo(newFile("f:/java/"+fileName2+".java"));

}

}

}

}

31.寫出刪除表中重復(fù)記錄的語句oracle

deletefrompeople

wherepeopleIdin(selectpeopleIdfrompeoplegroupbypeopleIdhavingcount(peopleId)>1)androwidnotin(selectmin(rowid)frompeoplegroupby

32.java類實現(xiàn)序列化的方法(二種)?如在collection框架中,要實現(xiàn)什么樣的接口

java.io.Serializable接口

Collection框架中實現(xiàn)比較要實現(xiàn)Comparable接口和Comparator接口

33.Struts2實現(xiàn)攔截器的原理?

實現(xiàn)原理:Struts2攔截器是在訪問某個Action或Action的某個方法、字段之前或之后實施攔截,并且Struts2攔截器是可插拔的,攔截器是AOP的一種實現(xiàn)。當(dāng)請求struts2的action時,Struts2會查找配置文件,并根據(jù)其配置實例化相對的攔截器對象,然后串成一個列表,最后一個一個地調(diào)用列表中的攔截器。

34.sleep()和wait()區(qū)別

sleep()方法:線程主動放棄CPU,使得線程在指定的時間和CGI的區(qū)別?

Servlet的生命周期主要由3個過程組成。

(1)init()方法:服務(wù)器初始化servlet。

(2)service()方法:初始化完畢,servlet對象調(diào)用該方法響應(yīng)客戶的請求。(3)destroy()方法:調(diào)用該方法消滅servlet對象。

其中,init()方法只在servlet第一次被請求加載的時候被調(diào)用一次,當(dāng)有客戶再請求servlet服務(wù)時,web服務(wù)器將啟動一個新的線程,在該線程中,調(diào)用service方法響應(yīng)客戶的請求。

與cgi的區(qū)別在于servlet處于服務(wù)器進(jìn)程中,它通過多線程方式運行其service方法,一個實例可以服務(wù)于多個請求,并且其實例一般不會銷毀,而CGI對每個請求都產(chǎn)生新的進(jìn)程,服務(wù)完成后就銷毀,所以效率上低于servlet。

36.forward與redirect的區(qū)別?有哪些方式實現(xiàn)

1).<jsp:forward>重定向后url地址欄地址不變還是原來的地址;而response.sendRedirect()重定向后

url地址欄地址顯示的請求后的新地址。

2).<jsp:forward>重定向的時候可以保存回話信息,因此可以使用request來進(jìn)行參數(shù)傳遞,在新頁面

可以使用request.getAttribute()來得到參數(shù)。而response.sendRedirect()不支持此通過request進(jìn)行參數(shù)傳遞。它唯一的傳值方式為response.sendRedirect(“example.jsp?aa=123”),在新的頁面通過request.getParameter(“aa”)來得到參數(shù)值

37.多線程、同步實現(xiàn)方法?

1)實現(xiàn)線程有兩種方法:繼承Thread類或者實現(xiàn)Runnable接口

2)實現(xiàn)同步也有兩種,一種是用同步方法,一種是用同步塊..同步方法就是在方法返回類型后面加上synchronized,比如:

publicvoidsynchronizedadd(){...}

同步塊就是直接寫:synchronized(這里寫需要同步的對象){...}

38.集合類有哪些?有哪些方法?

集合類ArrayListLinkedListHashSetHashMap

方法:add(),remove(),put(),addAll(),removeAll()

39.java中實現(xiàn)多態(tài)的機(jī)制是什么

重寫,重載

方法的重寫Overriding和重載Overloading是Java多態(tài)性的不同表現(xiàn)。

重寫Overriding是父類與子類之間多態(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):即為重寫;子類覆蓋父類的方法,將子類的實例傳與父類的引用調(diào)用的是子類的方法實現(xiàn)接口的實例傳與接口的引用調(diào)用的實現(xiàn)類的方法。

41.作用域Public,private,protected.以及不寫時的區(qū)別

public整個java程序中都可以訪問

protected在其他包中不可以訪問

friendly只有當(dāng)前包或當(dāng)前比如classAextendsBimplementsC,D,E

43.join與leftjoin的區(qū)別:innerjoin(等值連接)只返回兩個表中聯(lián)結(jié)字段相等的行

leftjoin(左聯(lián)接)返回包括左表中的所有記錄和右表中聯(lián)結(jié)字段相等的記錄

rightjoin(右聯(lián)接)返回包括右表中的所有記錄和左表中聯(lián)結(jié)字段相等的記錄

44.DAO設(shè)計模式與DELEGATE模式

DAO(DataAccessObject)模式實際上是兩個模式的組合,即DataAccessor模式和ActiveDomainObject模式,其中DataAccessor模式實現(xiàn)了數(shù)據(jù)訪問和業(yè)務(wù)邏輯的分離,而ActiveDomainObject模式實現(xiàn)了業(yè)務(wù)數(shù)據(jù)的對象化封裝,一般我們將這兩個模式組合使用。

DAO模式通過對底層數(shù)據(jù)的封裝,為業(yè)務(wù)層提供一個面向?qū)ο蟮慕涌冢沟脴I(yè)務(wù)邏輯開發(fā)員可以面向業(yè)務(wù)中的實體進(jìn)行編碼。通過引入DAO模式,業(yè)務(wù)邏輯更加清晰,且富于形象性和描述性,這將為日后的維護(hù)帶來極大的便利。試想,在業(yè)務(wù)曾通過Customer.getName方法獲得客戶姓名,相對于直接通過SQL語句訪問數(shù)據(jù)庫表并從ResultSet中獲得某個字符型字段而言,哪種方式更加易于業(yè)務(wù)邏輯的形象化和簡潔化?

BusinessDelegate起到客戶端業(yè)務(wù)抽象化的作用。它抽象化,進(jìn)而隱藏業(yè)務(wù)服務(wù)的實現(xiàn)。使用BusinessDelegate,可以降低表示層客戶端和系統(tǒng)的業(yè)務(wù)服務(wù)之間的耦合程度。根據(jù)實現(xiàn)策略不同,BusinessDelegate可以在業(yè)務(wù)服務(wù)API的實現(xiàn)中,保護(hù)客戶端不受可能的變動性影響。這樣,在業(yè)務(wù)服務(wù)API或其底層實現(xiàn)變化時,可以潛在地減少必須修改表示層客戶端代碼的次數(shù)。

45.適配器模式與橋梁模式的區(qū)別

適配器模式把一個類的接口變換成客戶端所期待的另一種接口,從而使原本因接口不匹配而無法在一起工作的兩個類能夠在一起工作。又稱為轉(zhuǎn)換器模式、變壓器模式、包裝模式(把已有的一些類包裝起來,使之能有滿足需要的接口)。適配器模式的用意是將接口不同而功能相同或者相近的兩個接口加以轉(zhuǎn)換,包括適配器角色補充一些源角色沒有但目標(biāo)接口需要的方法。就像生活中電器插頭是三相的,而電源插座是兩相的,這時需要一個三相變兩相的轉(zhuǎn)換器來滿足。

比如,在JavaI/O庫中使用了適配器模式,象FileInputStream是一個適配器類,其繼承了InputStrem類型,同時持有一個對FileDiscriptor的引用。這是將一個FileDiscriptor對象適配成InputStrem類型的對象形式的適配器模式。StringReader是一個適配器類,其繼承了Reader類型,持有一個對String對象的引用。它將String的接口適配成Reader類型的接口。等等。

橋梁模式的用意是要把實現(xiàn)和它的接口分開,以便它們可以獨立地變化。橋梁模式并不是用來把一個已有的對象接到不相匹配的接口上的。當(dāng)一個客戶端只知道一個特定的接口,但是又必須與具有不同接口的類打交道時,就應(yīng)該使用橋梁模式。

比如,JDBC驅(qū)動器就是一個橋梁模式的應(yīng)用,使用驅(qū)動程序的應(yīng)用系統(tǒng)就是抽象化角色,而驅(qū)動器本身扮演實現(xiàn)化角色。應(yīng)用系統(tǒng)和JDBC驅(qū)動器是相對獨立的。應(yīng)用系統(tǒng)動態(tài)地選擇一個合適的驅(qū)動器,然后通過驅(qū)動器向數(shù)據(jù)庫引擎發(fā)出指令就可以訪問數(shù)據(jù)庫中的數(shù)據(jù)。

工廠模式

工廠模式:工廠模式是一種經(jīng)常被使用到的模式,根據(jù)工廠模式實現(xiàn)的類可以根據(jù)提供的數(shù)據(jù)生成一組類中某一個類的實例,通常這一組類有一個公共的抽象父類并且實現(xiàn)了相同的方法,但是這些方法針對不同的數(shù)據(jù)進(jìn)行了不同的操作。首先需要定義一個基類,該類的子類通過不同的方法實現(xiàn)了基類中的方法。然后需要定義一個工廠類,工廠類可以根據(jù)條件生成不同的子類實例。當(dāng)?shù)玫阶宇惖膶嵗螅_發(fā)人員可以調(diào)用基類中的方法而不必考慮到底返回的是哪一個子類的實例。

46.開發(fā)中都用到了那些設(shè)計模式?用在什么場合?

每個模式都描述了一個在我們的環(huán)境中不斷出現(xiàn)的問題,然后描述了該問題的解決方案的核心。通過這種方式,你可以無數(shù)次地使用那些已有的解決方案,無需在重復(fù)相同的工作。

(1)MVC模式,在J2EE項目開發(fā)中主要用在表示層框架中,很好解決視圖和流程控制。在項目中采用的Struts、WebWork等框架。

(2)DAO模式,在項目開發(fā)中主要用在數(shù)據(jù)層,封裝數(shù)據(jù)的訪問操作,為業(yè)務(wù)層提供數(shù)據(jù)服務(wù)。

(3)IoC模式,在項目開發(fā)中業(yè)務(wù)層有大量對象,他們之間存在依賴關(guān)系,可以使用IoC模式減少他們之間的代碼耦合,提高系統(tǒng)的可擴(kuò)展性。實際項目中使用的Spring框架來實現(xiàn)業(yè)務(wù)組件的裝配。

(4)Observer模式,在Servlet的監(jiān)聽器中應(yīng)用到了觀察者模式。

(5)singleton單例模式和Factory工廠模式結(jié)合使用在項目中無需使用者了解過多的細(xì)節(jié)就可獲取有關(guān)的對象實例。比如Hibernate項目中通過SessionFactory來獲取Session。

(6)bridge模式,在項目中使用JDBC驅(qū)動訪問數(shù)據(jù)庫。

47.Hibernate中離線查詢與在線查詢的區(qū)別

Criteria和DetachedCriteria的主要區(qū)別在于創(chuàng)建的形式不一樣,Criteria是在線的,所以它是由HibernateSession進(jìn)行創(chuàng)建的;而DetachedCriteria是離線的,創(chuàng)建時無需Session,DetachedCriteria提供了2個靜態(tài)方法forClass(Class)或forEntityName(Name)進(jìn)行DetachedCriteria實例的創(chuàng)建。

48.C#數(shù)據(jù)類型有哪些?

int整型double雙精度型string字符串型char字符型bool布爾型

49.抽象類能否被實例化?抽象類的作用是什么?

抽象類一般不能被實例化;

抽象類通常不是由程序員定義的,而是由項目經(jīng)理或模塊設(shè)計人設(shè)計抽象類的原因通常是為了規(guī)范方法名抽象類必須要繼承,不然沒法用,作為模塊設(shè)計者,可以把讓底層程序員直接用得方法直接調(diào)用,而一些需要讓程序員覆蓋后自己做得方法則定義稱抽象方法

50.ASP.NET頁面?zhèn)鬟f值的方式有哪些

1通過URL鏈接地址傳遞2通過post方式。3通過session4通過Application

5通過Server.Transfersend.aspx:

51.如何定義一個MDI(.NET技術(shù))

定義MDI父窗口應(yīng)該是設(shè)置窗體的MdiParent屬性=true

52.WCF是什么?

WindowsCommunicationFoundation(WCF)是由微軟發(fā)展的一組數(shù)據(jù)通信的應(yīng)用程序開發(fā)接口,它是.NET框架的一部分,由.NETFramework3.0開始引入,與WindowsPresentationFoundation及WindowsWorkflowFoundation并行為新一代Windows操作系統(tǒng)以及WinFX的三個重大應(yīng)用程序開發(fā)類庫

53.常用的包,類,接口,各舉5個。

類StringIntegerLongFileDate

包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)行排列!publicstaticvoidfun(int[]a,intc){

for(inti=0;i<a.length-1;i++){

for(intj=i;j<a.length-1;j++){if(a[i]<a[j]){

t=a[i];

a[i]=a[j];

a[j]=t;

}

}

System.out.print(a[i]+"");

}

}

56.查詢出M頁的N行數(shù)據(jù)(分頁的實現(xiàn),求第M也的記錄數(shù))

SelecttopNfromtablewhereidnotin(selecttop(M-1)*Nidfromtable)

57.Linkedlistarraylist有什么作用?

就分析設(shè)計層面來說,面向?qū)ο蠹夹g(shù)提供了更高級的抽象能力以及更多的方法和工具,如設(shè)計模式;就實現(xiàn)維護(hù)層面來說,面向?qū)ο蠹夹g(shù)使代碼重用更容易,且使代碼具有可擴(kuò)展性,便于軟件的維護(hù)和升級更新。

60.如何移動一個數(shù)使62-63=1成立

62-63=1如何移動2的6次方等于642的6次方-63=1把2移動到6的左下方

61.遞歸實現(xiàn)1,1,2,3,5,8,?.第30個數(shù)是多少?

publicstaticintFoo(inti)

{

if(i<=0)

return0;

elseif(i>0&&i<=2)

return1;

elsereturnFoo(i-1)+Foo(i-2);

}

inti=Foo(30);

System.out.println(i);

62.JAVA實現(xiàn)向數(shù)據(jù)庫添加一列

Connectioncon=null;

ResultSetrs=null;

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

Stringurl="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_name";

Connectioncon=DriverManager.getConnection(url,"","");

StateManagersm=con.createStateMent();

Stringsql="altertablestudentaddageint;";

rs=sm.excute(sql);

63.寫出刪除表中重復(fù)記錄的語句oracle

deletefrompeople

wherepeopleIdin(selectpeopleIdfrompeoplegroupbypeopleIdhavingcount(peopleId)>1)androwidnotin(selectmin(rowid)frompeoplegroup

64.用什么方法使服務(wù)器關(guān)閉之后,session所保存的信息不會丟失?

使用cookie

65.如果頁面沒有<html></html>標(biāo)簽,會出現(xiàn)什么錯誤代碼?

沒有什么變化

66.抽象類是否可以沒有抽象方法?為什么?

可以在java中用abstract關(guān)鍵字來修飾一個類時,這個類叫做抽象類。

抽象類中不一定要包含abstract方法,但一個類中包含了abstract方法,則這個類必須聲明為abstract類。

67.servlet中的init方法什么時候被調(diào)用?

容器首次創(chuàng)建實例的時候

68.用4個0,用你所知道的數(shù)學(xué)方法計算出24

0的階乘等于1即0?。剑蹦敲矗磦€0就是4了

又4的階乘為244?。剑玻?/p>

69.linux中進(jìn)程的查看和調(diào)度分別用什么命令?

ps-A查看renicetop

70.集合類有哪些?有哪些方法?

集合類ArrayListLinkedListHashSetHashMap

方法:add(),remove(),put(),addAll(),removeAll()

71.OSI七層模型tcp四層模型是什么樣的

OSI七層參考模型:物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、應(yīng)用層、會話層、表示層

TCP/IP:第一層網(wǎng)絡(luò)接口層第二層第二層??網(wǎng)間層第三層??傳輸層第四層??應(yīng)用層

72.JAVA測試模式(ZZ):

模式(一)Main模式

模式(二)toString模式

模式(三)Equal模式

模式(四)InternalTesterClass模式

模式(五)ExternTesterClass模式

73.一學(xué)生表!有班及id,學(xué)號!成績!一求平均成績!二求比平均成績高的學(xué)生的所有信息

selectid,avg(成績)fromtablegroupbyid

select*fromtablewhere成績>(select成績from(selectid,avg(成績)成績fromtablegroupbyid)asa)

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ù)器的組件容器中運行(如Servlet組件在Servlet容器上運行,EJB組件在EJB容器上運行),容器間通過相關(guān)的協(xié)議進(jìn)行通訊,實現(xiàn)組件間的相互調(diào)用J2EE規(guī)范定義了以下四個層次。1.客戶端層(ClientTier)

2.Web層3.業(yè)務(wù)層(BusinessTier)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代碼(仍然在Web表單中),后者決定如何處理這些數(shù)據(jù)。它可以迅速更新表單數(shù)據(jù),讓人感覺應(yīng)用程序是立即完成的,表單沒有提交或刷新而用戶得到了新數(shù)據(jù)。JavaScript代碼甚至可以對收到的數(shù)據(jù)執(zhí)行某種計算,再發(fā)送另一個請求,完全不需要用戶干預(yù)!這就是XMLHttpRequest的強(qiáng)大之處。它可以根據(jù)需要自行與服務(wù)器進(jìn)行交互,用戶甚至可以完全不知道幕后發(fā)生的一切。結(jié)果就是類似于桌面應(yīng)用程序的動態(tài)、快速響應(yīng)、高交互性的體驗,但是背后又擁有互聯(lián)網(wǎng)的全部強(qiáng)大力量。

77..Xml特點?

XML是一種可擴(kuò)展標(biāo)記語言(XML)是Web上的數(shù)據(jù)通用語言。它使開發(fā)人員能夠?qū)⒔Y(jié)構(gòu)化數(shù)據(jù),從許多不同的應(yīng)用程序傳遞到桌面,進(jìn)行本地計算和演示。XML允許為特定應(yīng)用程序創(chuàng)建唯一的數(shù)據(jù)格式。它還是在服務(wù)器之間傳輸結(jié)構(gòu)化數(shù)據(jù)的理想格式。

XML主要具有以下幾個特點:

①簡潔有效

XML是一個精簡的SGML,它將SGML的豐富功能與HTML的易用性結(jié)合到Web應(yīng)用種,它保留了SGML的可擴(kuò)展功能,這使得XML從根本上有區(qū)別于HTML。并且XML種還包括可擴(kuò)展格式語言XSL(ExtensibleStyleLanguage)和可擴(kuò)展鏈接語言XLL(ExtensibleLinkingLanguage)使得XML的顯示和解析更加方便快捷。②易學(xué)易用

XML對SGML進(jìn)行了精簡,它拋棄了SGML中不常用的部分,方便用戶編寫Web頁面同時也給設(shè)計人員實現(xiàn)XML瀏覽器降低了困難。

③開放的國際化標(biāo)準(zhǔn)

XML是W3C正式批準(zhǔn)的,它完全可用于Web和工具的開發(fā)。XML具有標(biāo)準(zhǔn)的名域說明方法,支持文檔對象模型標(biāo)準(zhǔn)、可擴(kuò)展類型語言標(biāo)準(zhǔn)、可擴(kuò)展鏈接語言標(biāo)準(zhǔn)和XML指針語言標(biāo)準(zhǔn)。使用XML可以在不同的計算機(jī)系統(tǒng)間交換信息,而且還可以跨越國界和超越不同文化疆界交換信息。

④高效可擴(kuò)充

XML支持復(fù)用文檔片斷,使用者可以發(fā)明和使用自己的標(biāo)簽,也可以與他人共享,可延伸性大。在XML中,可定義一組無限量的標(biāo)準(zhǔn),可以有效地進(jìn)行XML文件的擴(kuò)充。

78.oracle中除了數(shù)據(jù)庫備份,還有什么方法備份?

Oracle數(shù)據(jù)庫有三種標(biāo)準(zhǔn)的備份方法,它們分別是導(dǎo)出/導(dǎo)入(EXP/IMP)、熱備份和冷備份。導(dǎo)出備份是一種邏輯備份,冷備份和熱備份是物理備份。

79.j2ee的常用設(shè)計模式

Factory(工廠模式),Builder(建造模式)fFactoryMethod(工廠方法模式),Prototype(原始模型模式),Singleton(單例模式),F(xiàn)acade(門面模式),Adapter(適配器模式),Bridge(橋梁模式)

80.由aaa字符串得到1000個a寫個程序

StringBuildersBuilder=newStringBuilder();

for(inti=0;i<333;i++){

sBuilder.Append("aaa");

}

sBuilder.Append("aaa".subString(0,1));

81.servlet與cgi的區(qū)別

CGI應(yīng)用開發(fā)比較困難,因為它要求程序員有處理參數(shù)傳遞的知識,這不是一種通用的技能。CGI不可移植,為某一特定平臺編寫的CGI應(yīng)用只能運行于這一環(huán)境中。每一個CGI應(yīng)用存在于一個由客戶端請求激活的進(jìn)程中,并且在請求被服務(wù)后被卸載。這種模式將引起很高的Servlet提供了Java應(yīng)用程序的所有優(yōu)勢——可移植、穩(wěn)健、易開發(fā)。使用ServletTag技術(shù),Servlet能夠生成嵌于靜態(tài)HTML頁面中的動態(tài)truncate會將高水線復(fù)位(回到最開始).

4.速度,一般來說:drop>truncate>delete

5.安全性:小心使用drop和truncate,尤其沒有備份的時候.否則哭都來不及

使用上,想刪除部分?jǐn)?shù)據(jù)行用delete,注意帶上where子句.回滾段要足夠大.

想刪除表,當(dāng)然用drop

想保留表而將所有數(shù)據(jù)刪除.如果和事務(wù)無關(guān),用truncate即可.如果和事務(wù)有關(guān),或者想觸發(fā)trigger,還是用delete.

85.xml有哪些解析技術(shù),及區(qū)別?

有DOM,SAX,STAX等

DOM:處理大型文件時其性能下降的非常厲害。這個問題是由DOM的樹結(jié)構(gòu)所造成的,這種結(jié)構(gòu)占用的內(nèi)存較多,而且DOM必須在解析文件之前把整個文檔裝入內(nèi)存,適合對XML的隨機(jī)訪問SAX:不現(xiàn)于DOM,SAX是事件驅(qū)動型的XML解析方式。它順序讀取XML文件,不需要一次全部裝載整個文件。當(dāng)遇到像文件開頭,文檔結(jié)束,或者標(biāo)簽開頭與標(biāo)簽結(jié)束時,它會觸發(fā)一個事件,用戶通過在其回調(diào)事件中寫入處理代碼來處理XML文件,適合對XML的順序訪問

86.文件和目錄(i/o)操作,怎么列出某目錄下所有文件?某目錄下所有子目錄,怎么判斷文件或目錄是否存在?

如何讀寫文件?

列出某目錄下所有文件:調(diào)用listFile(),然后判斷每個File對象是否是文件可以調(diào)用isFile(),判斷是否是文件夾可以調(diào)用isDirectory(),判斷文件或目錄是否存在:調(diào)用exists()方法,讀寫文件使用FileReader和FileWriter兩個類即可

87.怎么用java反射得到一個類的私有方法?

packagetest;

publicclassTestClass{

privateStringtestMethod(Stringvalue){

return"test:"+value;

}

}

簡單工廠模式能夠根據(jù)外界給定的信息,決定究竟應(yīng)該創(chuàng)建哪個具體類的對象。通過它,外界可以從直接創(chuàng)建具體產(chǎn)品對象的尷尬局面中擺脫出來。外界與具體類隔離開來,偶合性低。明確區(qū)分了各自的職責(zé)和權(quán)力,有利于整個軟件體系結(jié)構(gòu)的優(yōu)化。

缺點:工廠類集中了所有實例的創(chuàng)建邏輯,容易違反GRASPR的高雖然簡單工廠模式能夠適應(yīng)一定的變化,但是它所能解決的問題是遠(yuǎn)遠(yuǎn)有限的。它所能創(chuàng)建的類只能是事先教考慮到的,如果需要添加新的類,則就需要改變工廠類了。(這個問題在工廠方法模式將得到很好的解決)

應(yīng)用情景工廠類負(fù)責(zé)創(chuàng)建的對象比較少客戶只知道傳入了工廠類的參數(shù),對于始何創(chuàng)建對象(邏輯)不關(guān)心

89.JVM加載class文件原理?

所謂裝載就是尋找一個類或是一個接口的二進(jìn)制形式并用該二進(jìn)制形式來構(gòu)造代表這個類或是這個接口的class對象的過程.

在Java中,類裝載器把一個類裝入Java虛擬機(jī)中,要經(jīng)過三個步驟來完成:裝載、鏈接和初始化,其中鏈接又可以分成校驗、準(zhǔn)備、解析

裝載:查找和導(dǎo)入類或接口的二進(jìn)制數(shù)據(jù);

鏈接:執(zhí)行下面的校驗、準(zhǔn)備和解析步驟,其中解析步驟是可以選擇的;

校驗:檢查導(dǎo)入類或接口的二進(jìn)制數(shù)據(jù)的正確性;

準(zhǔn)備:給類的靜態(tài)變量分配并初始化存儲空間;

解析:將符號引用轉(zhuǎn)成直接引用;

初始化:激活類的靜態(tài)變量的初始化Java代碼和靜態(tài)Java代碼塊

JVM中類的裝載是由ClassLoader和它的子類來實現(xiàn)的,JavaClassLoader是一個重要的Java運行時系統(tǒng)組件。它負(fù)責(zé)在運行時查找和裝入類文件的類

一個Java應(yīng)用程序使用兩種類型的類裝載器:根裝載器(bootstrap)和用戶定義的裝載器(user-defined)。根裝載器以某種默認(rèn)的方式將類裝入,包括那些JavaAPI的類。在運行期間一個Java程序能安裝用戶自己定義的類裝載器。根裝載器是虛擬機(jī)固有的一部分,而用戶定義的類裝載器則不是,它是用Java語言寫的,被編譯成class文件之后然后再被裝入到虛擬機(jī),并像其它的任何對象一樣可以被實例化。Java類裝載器的體系結(jié)構(gòu)如下所示:

Bootstrap(根裝載器)

|

Extension(擴(kuò)展裝載器)

|

System

|

UserDefine1

/\

UserDefine2UserDefine3

|

UserDefine4

Java的類裝載模型是一種代理(delegation)模型。當(dāng)JVM要求類裝載器CL(ClassLoader)裝載一個類時,CL首先將這個類裝載請求轉(zhuǎn)發(fā)給他的父裝載器。只有當(dāng)父裝載器沒有裝載并無法裝載這個類時,CL才獲得裝載這個類的機(jī)會。這樣,所有類裝載器的代理關(guān)系構(gòu)成了一種樹狀的關(guān)系。樹的根是類的根裝載器(bootstrapClassLoader),在JVM中它以"null"表示。除根裝載器以外的類裝載器有且僅有一個父裝載器。在創(chuàng)建一個裝載器時,如果沒有顯式地給出父裝載器,那么JVM將默認(rèn)系統(tǒng)裝載器為其父裝載器

下面針對各種類裝載器分別進(jìn)行詳細(xì)的說明:

根(Bootstrap)裝載器:該裝載器沒有父裝載器,它是JVM實現(xiàn)的一部分,從sun.boot.class.path裝載運行時庫的核心代碼。

擴(kuò)展(Extension)裝載器:繼承的父裝載器為根裝載器,不像根裝載器可能與運行時的操作系統(tǒng)有關(guān),這個類裝載器是用純Java代碼實現(xiàn)的,它從java.ext.dirs(擴(kuò)展目錄)中裝載代碼。

系統(tǒng)(SystemorApplication)裝載器:裝載器為擴(kuò)展裝載器,我們都知道在安裝JDK的時候要設(shè)置環(huán)境變量(CLASSPATH),這個類裝載器就是從java.class.path(CLASSPATH環(huán)境變量)中裝載代碼的,它也是用純Java代碼實現(xiàn)的,同時還是用戶自定義類裝載器的缺省父裝載器。

小應(yīng)用程序(Applet)裝載器:裝載器為系統(tǒng)裝載器,它從用戶指定的網(wǎng)絡(luò)上的特定目錄裝載小應(yīng)用程序代碼。

90.Tomcat的class加載的優(yōu)先順序一覽

1.最先是$JAVA_HOME/jre/lib/ext/下的jar文件。

2.環(huán)境變量CLASSPATH中的jar和class文

3.$CATALINA_HOME/common/classes下的class

4.$CATALINA_HOME/commons/endorsed下的jar文件。

5.$CATALINA_HOME/commons/i18n下的jar文件。

6.$CATALINA_HOME/common/lib下的jar文件。

(JDBC驅(qū)動之類的jar文件可以放在這里,這樣就可以避免在server.xml配置好數(shù)據(jù)源卻出現(xiàn)找不到JDBCDriver的情況。)

7.$CATALINA_HOME/server/classes下的class文件。

8.$CATALINA_HOME/server/lib/下的jar文件。

9.$CATALINA_BASE/shared/classes下的class文件。

10.$CATALINA_BASE/shared/lib下的jar文件。

11.各自具體的webapp/WEB-INF/classes下的class文件。

12.各自具體的webapp/WEB-INF/lib下的jar文件。

91.CS與BS聯(lián)系區(qū)別

1)java適合開發(fā)bs結(jié)構(gòu),cs不是它的強(qiáng)項C/S服務(wù)器通常采用高性能的PC、工作站或小型機(jī),并采用大型數(shù)據(jù)庫系統(tǒng),如Oracle、Sybase、Informix或SQLServer??蛻舳诵枰惭b專用的客戶端軟件。B/S客戶機(jī)上只要安裝一個瀏覽器(Browser),如InternetExplorer,服務(wù)器安裝Oracle、Sybase、Informix或SQLServer等數(shù)據(jù)庫。在這種結(jié)構(gòu)下,用戶界面完全通過WWW瀏覽器實現(xiàn),一部分事務(wù)邏輯在前端實現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端實現(xiàn)。瀏覽器通過WebServer同數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交互1.硬件環(huán)境不同:C/S一般建立在專用的網(wǎng)絡(luò)上,小范圍里的網(wǎng)絡(luò)環(huán)境,局域網(wǎng)之間再通過專門服務(wù)器提供連接和數(shù)據(jù)交換服務(wù).B/S建立在廣域網(wǎng)之上的

2)對安全要求不同C/S一般面向相對固定的用戶群,對信息安全的控制能力很強(qiáng).一般高度機(jī)密的信息系統(tǒng)采用C/S結(jié)構(gòu)適宜.可以通過B/S發(fā)布部分可公開信息.B/S建立在廣域網(wǎng)之上,對安全的控制能力相對弱,可能面向不可知的用戶

3)對程序架構(gòu)不同C/S程序可以更加注重流程,可以對權(quán)限多層次校驗B/S對安全以及訪問速度的多重的考慮,建立在需要更加優(yōu)化的基礎(chǔ)之上

92.Error和exception的區(qū)別與聯(lián)系

error表示恢復(fù)不是不可能,但很困難的情況下的一種嚴(yán)重問題。比如說內(nèi)存溢,網(wǎng)絡(luò)故障等。不可能指望程序能處理的情況。

exception表示一種設(shè)計或?qū)崿F(xiàn)問題。也就是說,它表示如果程序運行正常,就不會發(fā)生的情況。程序可以捕獲到這些異常,并進(jìn)行處理。

93.在編寫頁面的會用到哪些技術(shù)?

美化頁面需要用到CSS、頁面交互使用JavaScript、動態(tài)頁面需要用到JSP、XML等動態(tài)網(wǎng)頁技術(shù)。

94.手寫個程序在本頁面中心彈出一個窗體,里面有學(xué)生的成績,可以修改學(xué)生的成績,并且可以關(guān)閉窗口,把

每個要用的jsp頁面顯示出來。(用JavaScript)

負(fù)責(zé)修改成績的UpdateScoreServlet

95.用main涵數(shù)輸出一到一百的和。

#include<stdio.h>

intmain(){

printf("sum:%d\n",sum());

return0;

}

intsum(){

inti;

intsum=0;

for(i=1;i<=100;i++)

sum+=i;

returnsum;

}

96.查一下每門課程都大于80的學(xué)生姓名

學(xué)生表student分?jǐn)?shù)表grade

selectfromstudentswheres.idnotin(selectg.studentidfromgradegwhereg.marks<=80)或者

selectfromstudentswherenotexists(select1fromgradegwhereg.studentid=s.idandg.marks<=80)

97.LIUNIX如何查看CPU,IP,查看CPU

cat/proc/meminfo查看查看IP的

98.j2EE系統(tǒng)訪問速度慢.從哪些方面可以優(yōu)化

J2EE性能的優(yōu)化包括很多方面的,要達(dá)到一個性能優(yōu)良的系統(tǒng),除了關(guān)注代碼之外,還應(yīng)該根據(jù)系統(tǒng)實際的運行情況,從服務(wù)器軟硬件環(huán)境、集群技術(shù)、系統(tǒng)構(gòu)架設(shè)計、系統(tǒng)部署環(huán)境、數(shù)據(jù)結(jié)構(gòu)、算法設(shè)計等方面綜合考慮

99.J2EE訪問速度慢,怎么樣優(yōu)化

1使用緩沖標(biāo)記對于代碼邏輯復(fù)雜的頁面,利用緩沖標(biāo)記提高性能的效果比較明顯;反之,效果可能略遜一籌。2始終通過會話Bean訪問實體Bean一些時候,使用實體Bean會導(dǎo)致程序性能不佳。如果實體Bean的惟一用途就是

提取和更新數(shù)據(jù),改成在會話Bean之實體Bean的部署描述器允許把所有g(shù)et方法設(shè)置成“只讀”。當(dāng)某個事務(wù)單元的工

作只包含執(zhí)行讀取操作的方法時,設(shè)置只讀屬性有利于提高性能,因為容器不必再執(zhí)行存儲操作

5緩沖對EJBHome的訪問

100.haShtable的原理

原理:通過節(jié)點的關(guān)鍵碼確定節(jié)點的存儲位置,即給定節(jié)點的關(guān)鍵碼k,通過一定的函數(shù)關(guān)系H(散列函數(shù)),得到函數(shù)值H(k),將此值解釋為該節(jié)點的存儲地址

101.struts中的prepare怎么用?

prepare是在validate攔截器之前執(zhí)行

<s:checkboxlistlist="users"listKey="id"listValue="name"name="userid"></s:checkboxlist>

在使用struts2checkboxlist,select綁定list時,有時候會出現(xiàn)以下異常

Therequestedlistkey‘users’couldnotberesolvedasacollection/array/map/enumeration/iteratortype.Example:peopleorpeople.{name}-[unknownlocation]這樣的錯誤。是因為list的值為空

解決辦法是把初始化list的工作放到prepare攔截器中

publicclassRoleActionextendsActionSupportimplementsPreparable{

@Override

publicvoidprepare()throwsException{

//初始化list

}}

102.C#題目conetextmenu控件如何使用..listview

ContextMenu組件提供與選定對象相關(guān)的常用命令的菜單。可以通過向MenuItems集合中添加MenuItem對象來向快捷菜單中添加項??梢詮目旖莶藛沃杏谰玫匾瞥棧坏窃谶\行時隱藏或禁用項可能更為妥當(dāng)。ListView的ContextMenu屬性設(shè)置為ContextMenu對象

103.寫一條SQL語句,查詢姓張學(xué)生中平均成績大于75的學(xué)生信息

select*fromstudentwherenamein(selectnamefromstudent

wherenamelike‘張%’groupbynamehavingavg(score)>75)

104.從以下方面比較strut1和strut2:線程模式、依賴、可測性、表達(dá)式語言、捕獲輸入、綁釘值到頁面、類

型轉(zhuǎn)換

線程模式:Struts1Action是單例模式并且必須是線程安全的,因為僅有Action的一個實例來處理所有的請求。單例策略限制了Struts1Action能作的事,并且要在開發(fā)時特別小心。Action資源必須是線程安全的或同步的。

?Struts2Action對象為每一個請求產(chǎn)生一個實例,因此沒有線程安全問題。(實際上,servlet容器給每個請求產(chǎn)生許多可丟棄的對象,并且不會導(dǎo)致性能和垃圾回收問題)

Servlet依賴:

?Struts1Action依賴于ServletAPI,因為當(dāng)一個Action被調(diào)用時HttpServletRequest和HttpServletResponse被傳遞給execute方法。

?Struts2Action不依賴于容器,允許Action脫離容器單獨被測試。如果需要,Struts2Action仍然可以訪問初始的request和response。但是,其他的元素減少或者消除了直接訪問HttpServetRequest和HttpServletResponse的必要性。

可測性:

?測試Struts1Action的一個主要問題是execute方法暴露了servletAPI(這使得測試要依賴于容器)。一個第三方擴(kuò)展--StrutsTestCase--提供了一套Struts1的模擬對象(來進(jìn)行測試)。

?Struts2Action可以通過初始化、設(shè)置屬性、調(diào)用方法來測試,“依賴注入”支持也使測試更容易。

捕獲輸入:

?Struts1使用ActionForm對象捕獲輸入。所有的ActionForm必須繼承一個基類。因為其他JavaBean不能用作ActionForm,開發(fā)者經(jīng)常創(chuàng)建多余的類捕獲輸入。動態(tài)Bean(DynaBeans)可以作為創(chuàng)建傳統(tǒng)ActionForm的選擇,但是,開發(fā)者可能是在重新描述(創(chuàng)建)已經(jīng)存在的JavaBean(仍然會導(dǎo)致有冗余的javabean)。?Struts2直接使用Action屬性作為輸入屬性,消除了對第二個輸入對象的需求。輸入屬性可能是有自己(子)屬性的rich對象類型。Action屬性能夠通過web頁面上的taglibs訪問。Struts2也支持ActionForm模式。rich對象類型,包括業(yè)務(wù)對象,能夠用作輸入/輸出對象。這種ModelDriven特性簡化了taglib對POJO輸入對象的引用。

表達(dá)式語言:

?Struts1整合了JSTL,因此使用JSTLEL。這種EL有基本對象圖遍歷,但是對集合和索引屬性的支持很弱。?Struts2可以使用JSTL,但是也支持一個更強(qiáng)大和靈活的表達(dá)式語言--"ObjectGraphNotationLanguage"(OGNL).

綁定值到頁面(view):

?Struts1使用標(biāo)準(zhǔn)JSP機(jī)制把對象綁定到頁面中來訪問。

?Struts2使用"ValueStack"技術(shù),使taglib能夠訪問值而不需要把你的頁面(view)和對象綁定起來。ValueStack策略允許通過一系列名稱相同但類型不同的屬性重用頁面(view)。

類型轉(zhuǎn)換:

?Struts1ActionForm屬性通常都是String類型。Struts1使用Commons-Beanutils進(jìn)行類型轉(zhuǎn)換。每個類一個轉(zhuǎn)換器,對每一個實例來說是不可配置的。

?Struts2使用OGNL進(jìn)行類型轉(zhuǎn)換。提供基本和常用對象的轉(zhuǎn)換器。

105.struts的工作原理可分為如下8步。

1.讀取配置(初始化ModuleConfig對象)

Struts框架總控制器(ActionServlet)是一個Servlet,在web.xml中被配置成一個自動啟動的Servlet。讀取配置文件struts-config.xml的配置信息,為不同的Struts模塊初始化相應(yīng)的ModuleConfig對象。2.用戶請求

用戶提交表單或調(diào)用URL向WEB應(yīng)用程序服務(wù)器提交一個請求,請求的數(shù)據(jù)用HTTP協(xié)議上傳給WEB服務(wù)器。

3.填充FormBean

(*.do請求)從ActionConfig中找出對應(yīng)該請求的Action子類,如有對應(yīng)的Action且這個Action又一個相應(yīng)的ActionForm,ActionForm被實例化并用HTTP請求的數(shù)據(jù)填充其屬性,并保存在ServletContext中,這樣他們就可以被其它Action對象或JSP調(diào)用。如果沒有對應(yīng)的Action,控制器則直接轉(zhuǎn)發(fā)給JSP或靜態(tài)頁面。

4.派發(fā)請求

控制器根據(jù)配置信息ActionConfig將請求派發(fā)到具體的Action,相應(yīng)的FormBean一并傳給這個Action的execute()方法。

5.處理業(yè)務(wù)

Action一般只包含一個execute方法,它負(fù)責(zé)執(zhí)行相應(yīng)的業(yè)務(wù)邏輯。執(zhí)行完畢后返回一個ActionFoward對象,控制器通過該ActionFoward對象來進(jìn)行轉(zhuǎn)發(fā)工作。

6.返回響應(yīng)

Action根據(jù)業(yè)務(wù)處理的不同結(jié)果返回一個響應(yīng)對象給總控制器,該目標(biāo)響應(yīng)對相對應(yīng)一個具體的JSP頁面或另一個Action。

7.查找響應(yīng)

總控制器根據(jù)業(yè)務(wù)功能Action返回的目標(biāo)響應(yīng)對象找到對應(yīng)的資源對象,通常是一個具體的JSP頁面。

8.響應(yīng)用戶

JSP將結(jié)果展現(xiàn)給用戶。

106.Spring工作原理

Spring的配置文件來動態(tài)的創(chuàng)建對象,和調(diào)用對象里的方法的還有一個核心就是AOP這個就是面向切面編程,可以為某一類對象進(jìn)行監(jiān)督和控制(也就是在調(diào)用這類對象的具體方法的前后去調(diào)用你指定的模塊)從而達(dá)到對一個模塊擴(kuò)充的

功能。這些都是通過配置類達(dá)到的

Spring目的:就是讓對象與對象(模塊與模塊)之間的關(guān)系沒有通過代碼來關(guān)聯(lián),都是通過配置類說明管理的(Spring根據(jù)這些配置STRINGA=".6.15.44"

Strings=”.6.15.44”;

Strings1[]=s.split(“.”);

Integerii[]=newInteger[s1.length];

For(inti=0;i<s1.length;i++){

ii[i]=Integer.parseInt(s1[i]);

}

Arrays.sort(ii);

for(Integero:ii){

System.out.println(o+”s”);

}

96Oracle冷備份的通常步驟

1正常關(guān)閉數(shù)據(jù)庫2備份所有重要的文件到備份目錄(數(shù)據(jù)文件、控制文件、重做日志文件等)

3完成備份后啟動數(shù)據(jù)庫用冷備份進(jìn)行恢復(fù)時,只需要將所有文件恢復(fù)到原有位置,就可以啟動數(shù)據(jù)庫了

4關(guān)閉數(shù)據(jù)庫SQL>shutdown5備份文件到備份的目錄6然后啟動數(shù)據(jù)庫#sqlplus"/as

sysdba"SQL>startup冷備份完畢??!

109.servlet創(chuàng)建過程以及ruquest,response,session的生命周期?

Servlet的創(chuàng)建過程:

第一步

publicclassAAAextendsHttpServlet{

實現(xiàn)對應(yīng)的doxxx方法

}

第二步:

在web.xml中配置

<servlet>

<servlet-name></servlet-name>

<servlet-class></servlet-class>

</servlet>

<servlet-mapping>

<servlet-name></servlet-name>

<url-pattern></url-pattern>

</servlet-mapping>

servlet的生命周期:

servlet容器創(chuàng)建servlet的一個實例

容器調(diào)用該實例的init()方法

如果容器對該servlet有請求,則調(diào)用此實例的service()方法

容器在銷毀本實例前調(diào)用它的destroy()方法

銷毀并標(biāo)記該實例以供作為垃圾收集

一旦請求了一個servlet,就沒有辦法阻止容器執(zhí)行一個完整的生命周期。

容器在servlet首次被調(diào)用時創(chuàng)建它的一個實例,并保持該實例在/日志文件.RDO/控制文件.CTL/參數(shù)文件.ORASQLSERVER的文件體系結(jié)構(gòu)為:

.MDF(數(shù)據(jù)字典)/.NDF(數(shù)據(jù)文件)/.LDF(日志文件)

b)存儲結(jié)構(gòu):

ORACLE存儲結(jié)構(gòu):在ORACLE將存儲單位分為塊、區(qū)、段、表等;塊的大小可設(shè)置(OLTP塊和DSS塊);將連續(xù)的塊組成區(qū),可動態(tài)分配區(qū)(區(qū)的分配可以是等額的也可以是自增長的)可減少空間分配次數(shù);ORACLEl里表可以分為多個段,段由多個區(qū)組成,每個段可指定分配在哪個表空間里(段的類型分為:數(shù)據(jù)段、索引段、回滾段、臨時段、CASH段。ORACLE里還可對表進(jìn)行分區(qū),可按照用戶定義的業(yè)務(wù)規(guī)則、條件或規(guī)范,物理的分開磁盤上的數(shù)據(jù)。這樣大大降低了磁盤爭用的可能性。

SQLSERVER存儲結(jié)構(gòu):以頁為最小分配單位,每個頁為8K(不可控制,缺乏對頁的存儲情況的分析機(jī)制),可將8個連續(xù)的頁的組成一個‘?dāng)U展’,以進(jìn)一步減少分配時所耗用的資源。(分配缺乏靈活性),在SQLSERVER里數(shù)據(jù)以表的方式存放,而表是存放在數(shù)據(jù)庫里。真實數(shù)據(jù)與數(shù)據(jù)字典存放在一起。對系統(tǒng)參數(shù)信息無安全機(jī)制。

c)操作系統(tǒng):

Oracle可在所有主流平臺上運行;但SQLSever只在Window平臺上的表現(xiàn)很好;

d)運行速度與安全性:Oracle高于SQLServer;

e)價格:Oracle高于SQLServer;

114.瀏覽器頁面與T0MCat的交互過程?

當(dāng)一個JSP頁面第一次被訪問的時候,JSP引擎將執(zhí)行以下步驟:

(1)將JSP頁面翻譯成一個Servlet,這個Servlet是一個java文件,同時也是一個完整的java程序

(2)JSP引擎調(diào)用java編譯器對這個Servlet進(jìn)行編譯,得到可執(zhí)行文件class

(3)JSP引擎調(diào)用java虛擬機(jī)來解釋執(zhí)行class文件,生成向客戶端發(fā)送的應(yīng)答,然后發(fā)送給客戶端

以上三個步驟僅僅在JSP頁面第一次被訪問時才會執(zhí)行,以后的訪問速度會因為class文件已經(jīng)生成而大大提高。當(dāng)JSP引擎街道一個客戶端的訪問請求時,首先判斷請求的JSP頁面是否比對應(yīng)的Servlet新,如果新,對應(yīng)的JSP需要重新編譯。

115.用C編寫將一個100以100以*/

#include<stdio.h>

main()

{

inti,j;

for(i=2;i<100;i++)

{

for(j=2;j<i;j++)

{

if(i%j==0)

break;

}

if(i==j)

{

printf("%d",i);

}

}

}

/*分解質(zhì)因數(shù)*/

main()

{

intn,i;

printf(&

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論