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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1.hibernate中離線查詢去除重復項怎么加條件?

dc.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);

2.http協議及端口,smtp協議及端口

http:超文本傳輸協議端口80

smtp:簡單郵件傳輸協議端口25

3.編寫程序,完成文件復制功能

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

Servlet的創建有兩種方法。

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

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

創建Servlet實例

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

1).創建Servlet實例。

2).Web容器調用Servlet的init()方法,對Servlet進行初始化。

3).Servlet初始化后,將一直存在于容器中,用于響應客戶端請求。根據客戶端的請求方式通過Servlet

中service()方法去相應的doXXX()方法;

4).Web容器銷毀Servlet時,調用Servlet的destroy()方法,通常在關閉Web容器之時銷毀

Servlet。

5.用sql語句分頁:

Mysql數據庫:

SELECTTOP頁大小*FROMtable1WHEREidNOTIN(

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

)ORDERBYid

Oracle數據庫:

在ORACLE大數據量下的分頁解決方法。一般用截取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以特定次序來持有元素,可有重復元素.

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

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

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

2).ArrayList和Vector都是用數組方式存儲數據,此數組元素數要大于實際的存儲空間以便進行元素增加

和插入操作,他們都允許直接用序號索引元素,但是插入數據元素涉及到元素移動等內存操作,所以索引數據快而插入數據慢.

3).Vector使用了sychronized方法(線程安全),所以在性能上比ArrayList要差些.

4).LinkedList使用雙向鏈表方式存儲數據,按序號索引數據需要前向或后向遍歷數據,所以索引數據慢,是

插入數據時只需要記錄前后項即可,所以插入的速度快.

10.HASHMAP,HASHTABLE區別

1.Hashtable是Dictionary的子類,HashMap是Map接口的一個實現類;

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

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

11..描述Cookie和Session的作用,區別和各自的應用范圍,Session工作原理

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

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

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

Java2Platform,EnterpriseEdition

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

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

還有自定義攔截器

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

webserviced的協議?

SpringAOP:代理機制Spring提供的自動代理機制

Spring的IoC來實組件之間的依賴關系注入,使控制層與業務實現分離,即客戶通過

調用業務委托接口來調用具體的業務組件的實例,避免控制層與業務層的藕合帶來的維護

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

16.Collections,collection的區別

Collection是個java.util下的接口,它是各種集合結構的父接口。Collections是個java.util下的普通類,它包含有各種有關集合操作的靜態方法。Collections是針對集合類的一個幫助類,它提供一系列的靜態方法實現對各種集合的搜索,排序,線程安全化等操作

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

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

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

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

據那么分別會反饋什么樣的結果?

declarecurcursorkeysetfor

get返回null,loadclassnotfoundException

19..在Oracle中數據庫中的一個表中,這個表沒有主鍵id也沒有特定標示來查數據,怎么查?

rowid

20.簡述private、proteced、public、internal修飾符的訪問權限

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

private*

default**

protected***

public****

21.概述反射和序列化

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

notandor

24.java是如何進行異常處理的

Java通過面向對象的方法進行異常處理,把各種不同的異常進行分類,并提供了良好的接口。在Java中,每個異常都是一個對象,它是Throwable類或其它子類的實例。當一個方法出現異常后便拋出一個異常對象,該對象中包含有異常信息,調用這個對象的方法可以捕獲到這個異常并進行處理。Java的異常處理是通過5個關鍵詞來實現的:try、catch、throw、throws和finally。一般情況下是用try來執行一段程序,如果出現異常,系統會拋出(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是數據訪問對象DAO負責管理與數據源的連接來獲取和儲存其中的數據

27.ibatis中的#與$的區別在Ibatis中我們使用SqlMap進行Sql查詢時需要引用參數,在參數引用中遇到的符號#和$之間的區分為,#可以進行與編譯,進行類型匹配,而$不進行數據類型匹配,例如:

select*fromtablewhereid=#id#,其中如果字段id為字符型,那么#id#表示的就是’id’類型,如果id為整型,那么#id#就是id類型。

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

28.struts2的實現原理

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

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

3、接著FilterDispatcher被調用,FilterDispatcher詢問ActionMapper來決定這個請求是否需要調用某個Action;

4、如果ActionMapper決定需要調用某個Action,FilterDispatcher把請求的處理交給ActionProxy;

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

6、ActionProxy創建一個ActionInvocation的實例。

7、ActionInvocation實例使用命名模式來調用,在調用Action的過程前后,涉及到相關攔截器(Intercepter)的調用。

8、一旦Action執行完畢,ActionInvocation負責根據struts.xml中的配置找到對應的返回結果。返回結果通常是(但不總是,也可能是另外的一個Action鏈)一個需要被表示的JSP或者FreeMarker的模版。在表示的過程中可以使用Struts2框架中繼承的標簽。在這個過程中需要涉及到ActionMapper

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

spring的事務傳播行為:Spring在TransactionDefinition接口中規定了7種類型的事務傳播行為,它們規定了事務方法和事務方法發生嵌套調用時事務如何進行傳播:

PROPAGATION_REQUIRED:如果當前沒有事務,就新建一個事務,如果已經存在一個事務中,加入到這個事務中。這是最常見的選擇。

PROPAGATION_SUPPORTS:支持當前事務,如果當前沒有事務,就以非事務方式執行。

PROPAGATION_MANDATORY:使用當前的事務,如果當前沒有事務,就拋出異常。

PROPAGATION_REQUIRES_NEW:新建事務,如果當前存在事務,把當前事務掛起。

PROPAGATION_NOT_SUPPORTED:以非事務方式執行操作,如果當前存在事務,就把當前事務掛起。PROPAGATION_NEVER:以非事務方式執行,如果當前存在事務,則拋出異常。

PROPAGATION_NESTED:如果當前存在事務,則在嵌套事務內執行。如果當前沒有事務,則執行與PROPAGATION_REQUIRED類似的操作。

Spring的隔離級別

1、Serializable:最嚴格的級別,事務串行執行,資源消耗最大;

2、REPEATABLEREAD:保證了一個事務不會修改已經由另一個事務讀取但未提交(回滾)的數據。避免了“臟讀取”和“不可重復讀取”的情況,但是帶來了更多的性能損失。

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

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

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.寫出刪除表中重復記錄的語句oracle

deletefrompeople

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

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

java.io.Serializable接口

Collection框架中實現比較要實現Comparable接口和Comparator接口

33.Struts2實現攔截器的原理?

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

34.sleep()和wait()區別

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

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

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

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

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

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

36.forward與redirect的區別?有哪些方式實現

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

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

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

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

37.多線程、同步實現方法?

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

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

publicvoidsynchronizedadd(){...}

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

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

集合類ArrayListLinkedListHashSetHashMap

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

39.java中實現多態的機制是什么

重寫,重載

方法的重寫Overriding和重載Overloading是Java多態性的不同表現。

重寫Overriding是父類與子類之間多態性的一種表現,重載Overloading是一個類中多態性的一種表現。如果在子類中定義某方法與其父類有相同的名稱和參數,我們說該方法被重寫(Overriding)。子類的對象使用這個方法時,將調用子類中的定義,對它而言,父類中的定義如同被“屏蔽”了。

果在一個類中定義了多個同名的方法,它們或有不同的參數個數或有不同的參數類型,則稱為方法的重載(Overloading)。Overloaded的方法是可以改變返回值的類型。

40.靜態的多態和動態的多態的區別

靜態的多態:即為重載;方法名相同,參數個數或類型不相同。(overloading)

動態的多態:即為重寫;子類覆蓋父類的方法,將子類的實例傳與父類的引用調用的是子類的方法實現接口的實例傳與接口的引用調用的實現類的方法。

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

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

protected在其他包中不可以訪問

friendly只有當前包或當前比如classAextendsBimplementsC,D,E

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

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

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

44.DAO設計模式與DELEGATE模式

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

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

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

45.適配器模式與橋梁模式的區別

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

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

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

比如,JDBC驅動器就是一個橋梁模式的應用,使用驅動程序的應用系統就是抽象化角色,而驅動器本身扮演實現化角色。應用系統和JDBC驅動器是相對獨立的。應用系統動態地選擇一個合適的驅動器,然后通過驅動器向數據庫引擎發出指令就可以訪問數據庫中的數據。

工廠模式

工廠模式:工廠模式是一種經常被使用到的模式,根據工廠模式實現的類可以根據提供的數據生成一組類中某一個類的實例,通常這一組類有一個公共的抽象父類并且實現了相同的方法,但是這些方法針對不同的數據進行了不同的操作。首先需要定義一個基類,該類的子類通過不同的方法實現了基類中的方法。然后需要定義一個工廠類,工廠類可以根據條件生成不同的子類實例。當得到子類的實例后,開發人員可以調用基類中的方法而不必考慮到底返回的是哪一個子類的實例。

46.開發中都用到了那些設計模式?用在什么場合?

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

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

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

(3)IoC模式,在項目開發中業務層有大量對象,他們之間存在依賴關系,可以使用IoC模式減少他們之間的代碼耦合,提高系統的可擴展性。實際項目中使用的Spring框架來實現業務組件的裝配。

(4)Observer模式,在Servlet的監聽器中應用到了觀察者模式。

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

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

47.Hibernate中離線查詢與在線查詢的區別

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

48.C#數據類型有哪些?

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

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

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

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

50.ASP.NET頁面傳遞值的方式有哪些

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

5通過Server.Transfersend.aspx:

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

定義MDI父窗口應該是設置窗體的MdiParent屬性=true

52.WCF是什么?

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

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

類StringIntegerLongFileDate

包java.lang.*;java.io.*;java.util.*;java.swt.*;java.math.*;

接口:Comparable,Connection,Map,List,Runable,

54.網上購物系統的類圖,用例圖。

用例圖:

類圖:

55.給你一個整數類型的數組,按從小到大的順序進行排列!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行數據(分頁的實現,求第M也的記錄數)

SelecttopNfromtablewhereidnotin(selecttop(M-1)*Nidfromtable)

57.Linkedlistarraylist有什么作用?

就分析設計層面來說,面向對象技術提供了更高級的抽象能力以及更多的方法和工具,如設計模式;就實現維護層面來說,面向對象技術使代碼重用更容易,且使代碼具有可擴展性,便于軟件的維護和升級更新。

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

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

61.遞歸實現1,1,2,3,5,8,?.第30個數是多少?

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實現向數據庫添加一列

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.寫出刪除表中重復記錄的語句oracle

deletefrompeople

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

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

使用cookie

65.如果頁面沒有<html></html>標簽,會出現什么錯誤代碼?

沒有什么變化

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

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

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

67.servlet中的init方法什么時候被調用?

容器首次創建實例的時候

68.用4個0,用你所知道的數學方法計算出24

0的階乘等于1即0!=1那么4個0就是4了

又4的階乘為244!=24

69.linux中進程的查看和調度分別用什么命令?

ps-A查看renicetop

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

集合類ArrayListLinkedListHashSetHashMap

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

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

OSI七層參考模型:物理層、數據鏈路層、網絡層、傳輸層、應用層、會話層、表示層

TCP/IP:第一層網絡接口層第二層第二層??網間層第三層??傳輸層第四層??應用層

72.JAVA測試模式(ZZ):

模式(一)Main模式

模式(二)toString模式

模式(三)Equal模式

模式(四)InternalTesterClass模式

模式(五)ExternTesterClass模式

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

selectid,avg(成績)fromtablegroupbyid

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

74.jdk的新特性

“JDK1.5”的一個重要主題就是通過新增一些特性來簡化開發,這些特性包括泛型,for-each循環,自動裝包/拆包,枚舉,可變參數,靜態導入。使用這些特性有助于我們編寫更加清晰,精悍,安全的代碼。

75.j2ee的規范?

SUN公司定義的一個開發分布式企業級應用的規范。它提供了一個多層次的分布式應用模型和一系列開發技術規范。多層次分布式應用模型是指根據功能把應用邏輯分成多個層次,每個層次支持相應的服務器和組件,組件在分布式服務器的組件容器中運行(如Servlet組件在Servlet容器上運行,EJB組件在EJB容器上運行),容器間通過相關的協議進行通訊,實現組件間的相互調用J2EE規范定義了以下四個層次。1.客戶端層(ClientTier)

2.Web層3.業務層(BusinessTier)4.企業信息系統層

76.ajax的工作原理?

Ajax基本上就是把JavaScript技術和XMLHttpRequest對象放在Web表單和服務器之間。當用戶填寫表單時,數據發送給一些JavaScript代碼而不是直接發送給服務器。相反,JavaScript代碼捕獲表單數據并向服務器發送請求。同時用戶屏幕上的表單也不會閃爍、消失或延遲。換句話說,JavaScript代碼在幕后發送請求,用戶甚至不知道請求的發出。更好的是,請求是異步發送的,就是說JavaScript代碼(和用戶)不用等待服務器的響應。因此用戶可以繼續輸入數據、滾動屏幕和使用應用程序。

然后,服務器將數據返回JavaScript代碼(仍然在Web表單中),后者決定如何處理這些數據。它可以迅速更新表單數據,讓人感覺應用程序是立即完成的,表單沒有提交或刷新而用戶得到了新數據。JavaScript代碼甚至可以對收到的數據執行某種計算,再發送另一個請求,完全不需要用戶干預!這就是XMLHttpRequest的強大之處。它可以根據需要自行與服務器進行交互,用戶甚至可以完全不知道幕后發生的一切。結果就是類似于桌面應用程序的動態、快速響應、高交互性的體驗,但是背后又擁有互聯網的全部強大力量。

77..Xml特點?

XML是一種可擴展標記語言(XML)是Web上的數據通用語言。它使開發人員能夠將結構化數據,從許多不同的應用程序傳遞到桌面,進行本地計算和演示。XML允許為特定應用程序創建唯一的數據格式。它還是在服務器之間傳輸結構化數據的理想格式。

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

①簡潔有效

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

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

③開放的國際化標準

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

④高效可擴充

XML支持復用文檔片斷,使用者可以發明和使用自己的標簽,也可以與他人共享,可延伸性大。在XML中,可定義一組無限量的標準,可以有效地進行XML文件的擴充。

78.oracle中除了數據庫備份,還有什么方法備份?

Oracle數據庫有三種標準的備份方法,它們分別是導出/導入(EXP/IMP)、熱備份和冷備份。導出備份是一種邏輯備份,冷備份和熱備份是物理備份。

79.j2ee的常用設計模式

Factory(工廠模式),Builder(建造模式)fFactoryMethod(工廠方法模式),Prototype(原始模型模式),Singleton(單例模式),Facade(門面模式),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的區別

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

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

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

使用上,想刪除部分數據行用delete,注意帶上where子句.回滾段要足夠大.

想刪除表,當然用drop

想保留表而將所有數據刪除.如果和事務無關,用truncate即可.如果和事務有關,或者想觸發trigger,還是用delete.

85.xml有哪些解析技術,及區別?

有DOM,SAX,STAX等

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

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

如何讀寫文件?

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

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

packagetest;

publicclassTestClass{

privateStringtestMethod(Stringvalue){

return"test:"+value;

}

}

簡單工廠模式能夠根據外界給定的信息,決定究竟應該創建哪個具體類的對象。通過它,外界可以從直接創建具體產品對象的尷尬局面中擺脫出來。外界與具體類隔離開來,偶合性低。明確區分了各自的職責和權力,有利于整個軟件體系結構的優化。

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

應用情景工廠類負責創建的對象比較少客戶只知道傳入了工廠類的參數,對于始何創建對象(邏輯)不關心

89.JVM加載class文件原理?

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

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

裝載:查找和導入類或接口的二進制數據;

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

校驗:檢查導入類或接口的二進制數據的正確性;

準備:給類的靜態變量分配并初始化存儲空間;

解析:將符號引用轉成直接引用;

初始化:激活類的靜態變量的初始化Java代碼和靜態Java代碼塊

JVM中類的裝載是由ClassLoader和它的子類來實現的,JavaClassLoader是一個重要的Java運行時系統組件。它負責在運行時查找和裝入類文件的類

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

Bootstrap(根裝載器)

|

Extension(擴展裝載器)

|

System

|

UserDefine1

/\

UserDefine2UserDefine3

|

UserDefine4

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

下面針對各種類裝載器分別進行詳細的說明:

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

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

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

小應用程序(Applet)裝載器:裝載器為系統裝載器,它從用戶指定的網絡上的特定目錄裝載小應用程序代碼。

90.Tomcat的class加載的優先順序一覽

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

2.環境變量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驅動之類的jar文件可以放在這里,這樣就可以避免在server.xml配置好數據源卻出現找不到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聯系區別

1)java適合開發bs結構,cs不是它的強項C/S服務器通常采用高性能的PC、工作站或小型機,并采用大型數據庫系統,如Oracle、Sybase、Informix或SQLServer。客戶端需要安裝專用的客戶端軟件。B/S客戶機上只要安裝一個瀏覽器(Browser),如InternetExplorer,服務器安裝Oracle、Sybase、Informix或SQLServer等數據庫。在這種結構下,用戶界面完全通過WWW瀏覽器實現,一部分事務邏輯在前端實現,但是主要事務邏輯在服務器端實現。瀏覽器通過WebServer同數據庫進行數據交互1.硬件環境不同:C/S一般建立在專用的網絡上,小范圍里的網絡環境,局域網之間再通過專門服務器提供連接和數據交換服務.B/S建立在廣域網之上的

2)對安全要求不同C/S一般面向相對固定的用戶群,對信息安全的控制能力很強.一般高度機密的信息系統采用C/S結構適宜.可以通過B/S發布部分可公開信息.B/S建立在廣域網之上,對安全的控制能力相對弱,可能面向不可知的用戶

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

92.Error和exception的區別與聯系

error表示恢復不是不可能,但很困難的情況下的一種嚴重問題。比如說內存溢,網絡故障等。不可能指望程序能處理的情況。

exception表示一種設計或實現問題。也就是說,它表示如果程序運行正常,就不會發生的情況。程序可以捕獲到這些異常,并進行處理。

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

美化頁面需要用到CSS、頁面交互使用JavaScript、動態頁面需要用到JSP、XML等動態網頁技術。

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

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

負責修改成績的UpdateScoreServlet

95.用main涵數輸出一到一百的和。

#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的學生姓名

學生表student分數表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系統訪問速度慢.從哪些方面可以優化

J2EE性能的優化包括很多方面的,要達到一個性能優良的系統,除了關注代碼之外,還應該根據系統實際的運行情況,從服務器軟硬件環境、集群技術、系統構架設計、系統部署環境、數據結構、算法設計等方面綜合考慮

99.J2EE訪問速度慢,怎么樣優化

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

提取和更新數據,改成在會話Bean之實體Bean的部署描述器允許把所有get方法設置成“只讀”。當某個事務單元的工

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

5緩沖對EJBHome的訪問

100.haShtable的原理

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

101.struts中的prepare怎么用?

prepare是在validate攔截器之前執行

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

在使用struts2checkboxlist,select綁定list時,有時候會出現以下異常

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

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

publicclassRoleActionextendsActionSupportimplementsPreparable{

@Override

publicvoidprepare()throwsException{

//初始化list

}}

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

ContextMenu組件提供與選定對象相關的常用命令的菜單。可以通過向MenuItems集合中添加MenuItem對象來向快捷菜單中添加項。可以從快捷菜單中永久地移除項;但是在運行時隱藏或禁用項可能更為妥當。ListView的ContextMenu屬性設置為ContextMenu對象

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

select*fromstudentwherenamein(selectnamefromstudent

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

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

型轉換

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

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

Servlet依賴:

?Struts1Action依賴于ServletAPI,因為當一個Action被調用時HttpServletRequest和HttpServletResponse被傳遞給execute方法。

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

可測性:

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

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

捕獲輸入:

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

表達式語言:

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

綁定值到頁面(view):

?Struts1使用標準JSP機制把對象綁定到頁面中來訪問。

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

類型轉換:

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

?Struts2使用OGNL進行類型轉換。提供基本和常用對象的轉換器。

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

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

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

用戶提交表單或調用URL向WEB應用程序服務器提交一個請求,請求的數據用HTTP協議上傳給WEB服務器。

3.填充FormBean

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

4.派發請求

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

5.處理業務

Action一般只包含一個execute方法,它負責執行相應的業務邏輯。執行完畢后返回一個ActionFoward對象,控制器通過該ActionFoward對象來進行轉發工作。

6.返回響應

Action根據業務處理的不同結果返回一個響應對象給總控制器,該目標響應對相對應一個具體的JSP頁面或另一個Action。

7.查找響應

總控制器根據業務功能Action返回的目標響應對象找到對應的資源對象,通常是一個具體的JSP頁面。

8.響應用戶

JSP將結果展現給用戶。

106.Spring工作原理

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

功能。這些都是通過配置類達到的

Spring目的:就是讓對象與對象(模塊與模塊)之間的關系沒有通過代碼來關聯,都是通過配置類說明管理的(Spring根據這些配置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正常關閉數據庫2備份所有重要的文件到備份目錄(數據文件、控制文件、重做日志文件等)

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

4關閉數據庫SQL>shutdown5備份文件到備份的目錄6然后啟動數據庫#sqlplus"/as

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

109.servlet創建過程以及ruquest,response,session的生命周期?

Servlet的創建過程:

第一步

publicclassAAAextendsHttpServlet{

實現對應的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容器創建servlet的一個實例

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

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

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

銷毀并標記該實例以供作為垃圾收集

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

容器在servlet首次被調用時創建它的一個實例,并保持該實例在/日志文件.RDO/控制文件.CTL/參數文件.ORASQLSERVER的文件體系結構為:

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

b)存儲結構:

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

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

c)操作系統:

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

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

e)價格:Oracle高于SQLServer;

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

當一個JSP頁面第一次被訪問的時候,JSP引擎將執行以下步驟:

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

(2)JSP引擎調用java編譯器對這個Servlet進行編譯,得到可執行文件class

(3)JSP引擎調用java虛擬機來解釋執行class文件,生成向客戶端發送的應答,然后發送給客戶端

以上三個步驟僅僅在JSP頁面第一次被訪問時才會執行,以后的訪問速度會因為class文件已經生成而大大提高。當JSP引擎街道一個客戶端的訪問請求時,首先判斷請求的JSP頁面是否比對應的Servlet新,如果新,對應的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);

}

}

}

/*分解質因數*/

main()

{

intn,i;

printf(&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論