算法面試題大全_第1頁
算法面試題大全_第2頁
算法面試題大全_第3頁
算法面試題大全_第4頁
算法面試題大全_第5頁
已閱讀5頁,還剩84頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

一些面試算法題2007/07/1715:12大If看了下,很多算法都有很大的改迤繪地,可以^下手

(輸入法莫名其妙的燮禹繁醴字了郁

/*

*有一個整數n,寫一個函數f(n),返回0到n之間出現的"1"的個數。

*比如f(13)=6,現在f(1)=1,問下一個最大的f(n)=n的n是什么?

*writedbychszs

*/

packagemyApp;

importjava.io.BufferedReader;

importjava.io.lOException;

importjava.io.InputStreamReader;

publicclassMymethodl{

privatestaticStringstr=null;

privatestaticIntegern=0;

privatestaticinttotal0ne=0;

publicstaticvoidmain(String[]args)throwsI0Exception{

System,out.printin(“請輸入一個整數:〃);

BufferedReaderbr=newBufferedReader(newInputStreamReader(System,in));

n=Integer.valueOf(br.readLineO);

for(Integeri=n;i>0;i-){

total0ne=total0ne+Fn(i);

}

System,out.printin("函數f(n)從0到n之間出現的'T的個數為:〃+total0ne);

)

publicstaticintFn(Integera){

char[]re=a.toString().toCharArray();

intle=re.length;

intnum=0;

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

if(re[i]=-f){

num++;

)

returnnum;

)

)

Trackback:http://tb.blog.csdn.net/TrackBack.aspx?PostId=1524679

packagemyfile;

/**

*請用Java語言寫?一個函數printArray(int[]□aData),該函數將一個二維數組以順時針

螺旋的方式打印出來。

*例如,對數組:

*12345

*141516176

*132019187

*12111098

*打印出來的序列應該是:1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20

*?authorJ

*/

publicclassMymethod2{

publicstaticint[]口

arr={{1,2,3,4,5},{14,15,16,17,6},{13,20,19,18,7},{12,11,10,9,8}};

publicstaticvoidmain(String[]args){

Mymethod2program=newMymethod2();

program.printArray(arr);

)

publicvoidprintArray(int[][]aData){

Character[]dire={'E','S','W','N'};

//System,out.println(dire.length);

charp=dire[0];

Booleanloopl=true;

inthl=0,h2=aData[0].length-1;

intvl=0,v2=aData.length-1;

//System,out.printin(v2);

inti=0;

while(loopl){

p=dire[i];

if(vl>v2||hl>h2)loopl=false;

if(p=-E,){

forwardPrint(hl,h2,vl,vl,aData);

〃++hl;

++vl;

)

if(P='S'){

forwardPrint(h2,h2,vl,v2,aData);

//—v2;

—h2;

)

if(p=-W,){

reversePrint(hl,h2,v2,v2,aData);

//—h2;

一v2;

)

if(p=-N'){

reversePrint(hl,hl,vl,v2,aData);

//++vl;

++hl;

)

++i;

if(i==4)i=0;

}

}

publicvoidforwardPrint(intal,inta2,intbl,intb2,int[][]c){

for(intj=bl;j<=b2;j++){

for(intk=al;k<=a2;k++){

System,out.print(c[j][k]+",");

publicvoidreversePrint(intal,inta2,intbl,intb2,int[][]c){

for(intj=b2;j>=bl;j—){

for(intk=a2;k>=al;k—){

System,out.print(c[j][k]+",");

輸出結果:

1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,

補充:最后?個逗號未作處理;另外,算法可以再優化。

Trackback:http://tb.blog.csdn.net/TrackBack.aspx?PostId=1536661

據說是華為筆試題,練習了一下。

packagesrc;

/*

*第一題:假設n個小孩圍成一圈,每次數第m個小孩,該小孩被踢出來,請問當這幫小孩

子只剩下一個人的時候是第幾個人。

*(比如m=3,第一次數到第3個,第二次從第4個開始往下數,轉圈數)寫一個方法來實

現。

*/

publicclassMymethod4{

publicstaticintnchild=17;

publicstaticint[]child;

publicstaticintmtime=7,pc=l,po=l;

publicvoidonlyp(){

child=newint[nchild+1];

child[O]=child.length-1;

for(inti=l;i<=child[0];i++){

child[i]=i;

System,out.print(child[i]+z/〃);

)

System,out.printin();

while(child[O]>l){

if(po>=child[0])

po=po-child[0]+l;

if(pc==mtime){

remove(child,po);

-child[0];

pc=0;

print(child);

}

++po;

++pc;

)

if(child[O]=l)

System,out.printin("最后一個數:〃+child[l]);

)

publicvoidremove(int[]r,inta){

for(inti=a;i<=child[0]-l;i++)

child[i]=child[i+l];

child[child[O]]=O;

}

publicvoidprint(int[]r)(

for(inti=l;i<=nchild;i++)

System,out.print(child[i]+/z");

System,out.printin();

}

publicstaticvoidmain(String[]args){

Mymethod4method=newMymethod4();

method.onlypO;

}

)

.NET面試題(2)

一道數據庫設計的面試題,考查的重點和供參考的解決方案如下。

一大型企業,有10000名員工,每半個月發一次工資,試為此企業設計一個工資數據庫.(數據

庫為SQLserver).

這題考查的重點是面對數據量大時,如何設計一個系統的性能好、速度快的數據庫。

可供參考的解決方法有幾點,希望大家補充:

1.建立索引是必須的。

2.可以設計成兩個表,一個用來操作,一個用來查詢。操作表只保存最近若干段時間內的數

據,就如移動公司查詢話費記錄。

3.查詢考慮用最優的存儲過程。

.NET面試題(3)

1.寫?個實現對一段字符串翻轉的方法,附加一些條件,如其中包括對其設計測

試用例。

2.對一支紙杯設計測試用例(可以是廣義的杯,不一定是某一支特定功能的杯)

開發語言概念題

3.什么是反射?

4.用Singleton如何寫設計模式

5.C#中的垃圾回收機制是怎樣的?

6.什么是ApplicationPool?

7.鏈表和數組的區別,各有什么優缺點.

8.Remoting在客戶端服務器怎么實現?

9.什么是友元函數?

10.用標準C如何實現多態?

11.什么是虛函數?

12.什么是抽象函數?

13.什么是內存泄漏,怎樣最簡單的方法判斷被存泄漏?

英語題

14.用英文介紹一下使用C#/C++做的項目,主要功能

15.如果要與美國開電話會議,會如何與美國的工程師溝通

16.如果老板認為你的技術落后,你會怎么回答

數據庫知識題

17.使用什么工具來調用存儲過程

18.SQLServer的兩種索引是何形式?索引的作用?索引的優缺點?

19.觸發器的作用

其它知識題及問題

20.什么是WebService?

21.什么是XML?

22.Socket怎么實現?

.NET面試題(4)

1.血向對象的思想主要包括什么?

2.什么是ASP.net中的用戶控件

3.什么叫應用程序域?什么是受管制的代碼?什么是強類型系統?什么是裝箱和拆箱?什么

是重載?CTS,CLS和CLR分別作何解釋?

4.列舉一下你所了解的XML技術及其應用

5.值類型和引用類型的區別?寫出C#的樣例代碼。

6.ADO.net中常用的對象有哪些?分別描述一下。

7.如何理解委托?

8.C#中的接口和類有什么異同。

9.?net中讀寫數據庫需要用到哪些類?他們的作用

10.UDP連接和TCP連接的異同。

11.ASP.net的身份驗證方式有哪些?分別是什么原理?

12.進程和線程分別怎么理解?

13.什么是code-Behind技術。

14.活動目錄的作用。

15..net中讀寫XML的類都歸屬于哪些命名空間?

16.解釋一下UDDI、WSDL的意義及其作用。

17.什么是SOAP,有哪些應用。

18.如何部署——個ASP.net頁面。

19.如何理解.net中的垃圾回收機制。

20.常用的調用webservice方法有哪些?

本文來源:51歡樂吧-關濤的博客

博客地址:<a

href二http:〃log.51happybar.com>http://log.51happybar.com</a>http://log.51happyba

r.com/?id=1087

1.數據庫的幾種物理文件?

1)數據文件2)控制文件3)日志文件

2.控制文件都含有哪些信息?

包含維護和驗證有選舉權據庫完整性的必要信息、例如,控制文件用于識別數據文件和重做

日志文件,一個有選舉權據庫至少需要一個控制文件

3.decode函數的用法?

decode的語法:decode(value,ifl,thenl,if2,then2,if3,then3,...,else),表示如果

value等于ifl時,decode函數的結果返回thenl,...,如果不等于任何一個if值,則返回

elseo初看一下,decode只能做等于測試,但剛才也看到了,我們通過一些函數或計算替代

value,是可以使decode函數具備大于、小于或等于功能。

4.如何用decode進行大于小于的比較?

利用sign()函數和decode和在一?起用

5.case語句的用法?

oracle用法很簡單:

selectlast_name,job_id,salary-

casejob_id

when'it_prog,then1.10*salary

when'st_clerk,then1.15*salary

when'sa_rep'then1.20*salary

elsesalaryend//revised_salary,/

fromemployees

6.truncate和delete的區別?

1、truncate在各種表上無論是大的還是小的都非常快。如果有rollback命令delete

將被撤銷,而truncate則不會被撤銷。

2、truncate是一個ddl語言,向其他所有的ddl語言一樣,他將被隱式提交,不能對

truncate使用rollback命令。

3、truncate將重新設置高水平線和所有的索引。在對整個表和索引進行完全瀏覽時,

經過truncate操作后的表比delete操作后的表要快得多。

4、truncate不能觸發任何delete觸發器。

5、不能授予任何人清空他人的表的權限。

6、當表被清空后表和表的索引講重新設置成初始大小,而delete貝U不能。

7、不能清空父表。

7.表空間如何擴展?并用語句寫出?

兩種擴展方式:

1)增加數據文件

2)擴展數據文件大小

8.表空間區管理方式?R那種方式現在是推薦使用的?

1)數據字典管理方式

2)本地文件管理方式

9.用什么函數獲得日期?和日期中的月,日,年

tochar(sysdate,'day')返回星期幾

truncC25-may-95','month')trunc('25-may-95','year')

10.分區表的應用?

1)一個分區表有一個或多個分區,每個分區通過使用范圍分區、散列分區、或組合

分區分區的行

2)分區表中的每一個分區為一個段,可各自位于不同的表空間中

3)對于同時能夠使用幾個進程進行查詢或操作的大型表分區非常有用

11.談談索引的用法及原理?

索引是若干數據行的關鍵字的列表,查詢數據時,通過索引中的關鍵字可以快速定位到要

訪問的記錄所在的數據塊,從而大大減少讀取數據塊的i/。次數,因此可以顯著提高性能。

12.存儲過程的應用,如何既有輸入又有輸出?

利用inout參數

13.常發生的異常有哪些?

nodatafoundtoomanyrows

14.如何使用異常?

在oracle中有三種類型的異常。預定義的異常非預定義的異常用戶定義的異常第二種非

預定義的異常是與特定的oracle錯誤關聯。并且用pragm

exception_init(exception_name,error_number)關聯--起的。但是到底有什么用啊?例

如:declaredupj>rimary_keyexception;pragmaexception_init(dup_primary_key,-1);

begininsertintoitemfilevaluesCi201','washer",'spares",100,50,250,12,30);

exceptionwhendup_primary_keythendbms_output.put_line('重復項編號-主鍵沖突

');

1、磁盤柜上有14塊73g的磁盤,數據庫為200g大小包括日志文件,如何設置磁盤(要說

明這14磁盤是怎么用的)?

2、有兩服務器群集,分別為nodel和node2現在要打win200系統補丁,打完后,要重新啟

動,如何打補丁,不能影響用戶使用(要用群集的術語詳細說明)。

3、有一個a數據庫,分別復制到b和cb要求每次數據更新也同時更新,c每天更新一

次就行,如何制定復制策略!

4、有一個order表,有90個字段,20個索引,15個復合索引,其中有3個索引字段超過

10個,如何進行優化

5、有一個數據庫200g大小,每天增加50m允許用戶隨時訪問,制定備份策略(詳細說明)。

6、管理50臺數據庫,“常工作是檢查數據庫作業是否完成,你該如何完成這項檢查工作?

7、自定義函數和存儲過程的區別是什么,什么情況卜只能用自定義函數,什么情況下只能用

存儲過程

8、sql2005的新特性是什么?與oracle有什么區別?

9、dba的品質應該有哪些,你有哪些,有什么欠缺的?

10、如果想配置sqlmail應該在服務器安裝哪些軟件!

客戶定制'也務icd平臺有數據表結構如下:

錄音文件信息表

字段名類型中文名缺省值

描述

serialnovarchar2(20)流水號

業務流水號

filepathvarchar2(200)錄音文件路徑

錄音文件路徑和文件名

partidvarchar2(4)分區字段

格式為mmdd

staffnovarchar2(10)業務代表工號

錄音的業務代表工號

recordtimedate錄音時間

記錄錄音時間

說明:記錄錄音文件的文件信息。每個'業務可產生一個或多個錄音文件。

索引:

ix_recordfi1e_serialno(serialno)

數據量:約800萬

按每天2萬個業務需要記錄錄音文件,每個、業務需要記錄4個錄音文件估算,保存

三個月數據約800萬數據量,由于此表數據量不斷累計,數據庫任務定時刪除3個月以前數

據。

1、寫一個存儲過程,向表中隨機插入1000條記錄

serialno:使用序列方式,自增長。

filepath:使用隨機插入6個字母

partid:使用隨機4位數字

staffno:從ytcz060001ytcz060020中隨機抽取

recordtime:從2006年8月4日之前的6個月中隨機抽取。

2、寫一個程序塊,循環調用500次此存儲過程,保證數據表中存儲50萬條記錄.

3、查找filepath相同的行,并刪除filepath相同的重復記錄(保存一條時間最近

記錄)

4、寫一個存儲過程,刪除3個月前的數據。

5、寫一個觸發器,每月末最后一天中午12點整,系統提示執行“刪除3個月前數

據”的存儲過程。

答:createtablerecordfile(

serialnovarchar2(20),

filepathvarchar2(200),

partidvarchar2(4),

staffnovarchar2(10),

recordtimedate)

createindexixrecordfileserialnoonrecordfile(serialno)pctfree30tablespace

mytbs

createsequenceseq_recordfile

startwith0

minvalue0;

createorreplaceprocedureadd_recordfileis

begin

foriin1..1000loop

insertintorecordfilevalues

(seq_recordfile.nextval,

dbmsrandom,string,u',6),

trunc(dbms_random.value(1000,9999)),

yytcz0,||trunc(dbmsrandom,value(60001,60020)),

to_dateC2006-08-04','yyyy-mm-dd,)-dbms_random.value(0,181));

endloop;

commit;

endaddrecordfile;

begin

foriin1..500loop

add_recordfile;

endloop;

end;

—3>查找filepath相同的行,并刪除filepath相同的重復記錄(保存一條時

間最近記錄)

deletefromt_voice_recordsmaintwhere

maint.filepathin(selectfilepathfromt_voice_recordsgroupbyfilepathhaving

count(filepath)>1)

exists(selectfilepathfromt_voice_recordswheremaint.filepath=filepath

groupbyfilepathhavingcount(filepath)>1)

and

maint.recordtime<(selectmax(recordtime)fromt_voice_recordswherefilepath=

maint.filepath);

commit;

4、寫一個存儲過程,刪除3個月前的數據

createorreplaceprocedurep_delete_3mothbf

as

begin

executeimmediate'createtabletempasselect*fromt_voice_recordswhere

recordtime>add_months(sysdate,-3)’;

executeimmediate'truncatetablet_voice_records,;

executeimmediate'insertintot_voice_recordsselect*fromtemp’;

executeimmediate'droptabletemp';

end;

構造數據庫必須遵循一定的規則。在關系數據庫中,這種規則就是范式。范式是符合某一種

級別的關系模式的集合。關系數據庫中的關系必須滿足?定的要求,即滿足不同的范式。目

前關系數據庫有六種范式:第一范式(Inf)、第二范式(2nf)、第三范式(3nf)、第四范式

(4nf)、第五范式(5nf)和第六范式(6nf)。滿足最低要求的范式是第一范式(Inf)。在第

一范式的基礎上進一步滿足更多要求的稱為第二范式(2nf),其余范式以次類推。一般說來,

數據庫只需滿足第三范式(3nf)就行了。下面我們舉例介紹第一范式(Inf)、第二范式(2nf)

和第三范式(3nf)o

3.4.1第一范式(Inf)

在任何一個關系數據庫中,第一范式(Inf)是對關系模式的基本要求,不滿足第一范式

(Inf)的數據庫就不是關系數據庫。

所謂第一范式(Inf)是指數據庫表的每一列都是不可分割的基本數據項,同一列中不

能有多個值,即實體中的某個屬性不能有多個值或者不能有重復的屬性。如果出現重復的屬

性,就可能需要定義一個新的實體,新的實體由重復的屬性構成,新實體與原實體之間為一

對多關系。在第一范式(Inf)中表的每一行只包含一個實例的信息。例如,對于圖3-2中

的員工信息表,不能將員工信息都放在一列中顯示,也不能將其中的兩列或多列在一列中顯

示;員工信息表的每一行只表示一個員工的信息,一個員工的信息在表中只出現一次。簡而

言之,第一范式就是無重復的列。

3.4.2第二范式(2nf)

第二范式(2nf)是在第一范式(Inf)的基礎上建立起來的,即滿足第二范式(2nf)必

須先滿足第一范式(lnf)o第二范式(2nf)要求數據庫表中的每個實例或行必須可以被惟一

地區分。為實現區分通常需要為表加上一個列,以存儲各個實例的惟一標識。如

圖3-2員工信息表中加上了員工編號(emp_id)歹U,因為每個員工的員工編號是惟一的,因

此每個員工可以被惟一區分。這個惟一屬性列被稱為主關鍵字或主鍵、主碼。

第二范式(2nf)要求實體的屬性完全依賴于主關鍵字.所謂完全依賴是指不能存在僅

依賴主關鍵字一部分的屬性,如果存在,那么這個屬性和主關鍵字的這一部分應該分離出來

形成一個新的實體,新實體與原實體之間是一對多的關系。為實現區分通常需要為表加上一

個列,以存儲各個實例的惟一標識。簡而言之,第二范式就是非主屬性非部分依賴于主關鍵

字。

3.4.3第三范式(3nf)

滿足第三范式(3nf)必須先滿足第二范式(2nf)?簡而言之,第三范式(3nf)要求一

個數據庫表中不包含已在其它表中已包含的非主關鍵字信息。例如,存在一個部門信息表,

其中每個部門有部門編號(dept_id)、部門名稱、部門簡介等信息。那么在圖3-2

的員工信息表中列出部門編號后就不能再將部門名稱、部門簡介等與部門有關的信息再加入

員工信息表中。如果不存在部門信息表,則根據第三范式(3nf)也應該構建它,否則就會有

大量的數據冗余。簡而言之,第三范式就是屬性不依賴于其它非主屬性。

所謂范式就是符合某一種級別的關系模式的集合。通過分解把屬于低級范式的關系模式轉換

為幾個屬于高級范式的關系模式的集合。這一過程稱為規范化。

1、第一范式(Inf):一個關系模式r的所有屬性都是不可分的基本數據項。

2、第二范式(2nf):關系模式r屬于第一范式,且每個非主屬性都完全函數依賴于鍵

碼。

3、第三范式(3nf):關系模式r屬于第一范式,且每個非主屬性都不偉遞領帶于鍵碼。

4、be范式(benf):關系模式r屬于第一范式,且每個屬性都不傳遞依賴于鍵碼。

優點:

1.由于應用程序隨著時間推移會不斷更改,增刪功能,t—sql過程代碼會變得更復雜,

storedprocedure為封裝此代碼提供了一個替換位置。

2.執行計劃(存儲過程在首次運行時將被編譯,這將產生一個執行計劃一一實際上是

microsoftsqlserver為在存儲過程中獲取由t-sql指定的結果而必須采取的步驟的記

錄。)緩存改善性能。

……..但sqlserver新版本,執行計劃已針對所有t-sql批處理進行了緩存,而不管它們

是否在存儲過程中,所以沒比較優勢了。

3.存儲過程可以用于降低網絡流量,存儲過程代碼直接存儲于數據庫中,所以不會產生大量

t-sql語句的代碼流量。

4.使用存儲過程使您能夠增強對執行計劃的重復使用,由此可以通過使用遠程過程調用(rpc)

處理服務器上的存儲過程而提高性能。rpc封裝參數和調用服務器端過程的方式使引擎能夠

輕松地找到匹配的執行計劃,并只需插入更新的參數值。

5.可維護性高,更新存儲過程通常比更改、測試以及重新部署程序集需要較少的時間和精力。

6.代碼精簡一致,一個存儲過程可以用于應用程序代碼的不同位置。

7.更好的版本控制,通過使用microsoftvisualsourcesafe或某個其他源代碼控制工具,

您可以輕松地恢復到或引用舊版本的存儲過程。

8.增強安全性:

a、通過向用戶授予對存儲過程(而不是基于表)的訪問權限,它們可以提供對特定數據的訪

問;

b、提高代碼安全,防止sql注入(但未徹底解決,例如,將數據操作語言一一dml,附加到

輸入參數);

c、sqlparameter類指定存儲過程參數的數據類型,作為深層次防御性策略的一部分,可以

驗證用戶提供的值類型(但也不是萬無佚,還是應該傳遞至數據庫前得到附加驗證)。

缺點:

1.如果更改范圍大到需要對輸入存儲過程的參數進行更改,或者要更改由其返回的數據,則

您仍需要更新程序集中的代碼以添加參數、更新getvalueO調用,等等,這時候估計比較

繁瑣了。

2.可移植性差

由于存儲過程將應用程序綁定到sqlserver,因此使用存儲過程封裝業務邏輯將限制應用程

序的可移植性。如果應用程序的可移植性在您的環境中非常重要,則將業務邏輯封裝在不特

定于rdbms的中間層中可能是一個更佳的選擇。

1.Web服務器控件和Windows控件的執行有何不同?

【解答】一般來說,大部分Web服務器控件和Windows控件的功能和使用都很相似,但是二

者在內部實現上卻有著本質的區別。Windows控件的屬性、方法、事件等都是在本機上執行

的,而Web服務器控件則全部是在服務器端執行的。

2.利用HiddenField控件是否可用來存儲保密數據?為什么?

【解答】HiddenField控件,即隱藏輸入框的服務器控件,可以用于存儲非顯示的值。在Web

應用程序中,可以使用HiddenField控件來存儲Web窗體頁的狀態值。但是,在Web應用程

序運行期間,查看源代碼會發現該控件是以〈inputtype="hidden"name="HiddenFieldl”

id="HiddenFieldl"value="3"/>的形式呈現給客戶端瀏覽器的,其隱藏值value是用戶可

見的,所以它不適用于存儲需要保密數據。

3.SqlDataSource組件的作用是什么?

【解答】SqlDataSource組件是一種數據源控件,它可以連接到任何ADO.NET支持的數據源

(如SQLServer、Oracle等),從中檢索數據,并使得其他控件(如GridView等控件)可以

綁定到數據源。使用SqlDataSource組件訪問數據,只需要提供用于連接到數據庫的連接字

符串,并定義訪問數據的SQL語句或存儲過程。在運行時,SqlDataSource組件會自動打開

與數據庫的連接,執行SQL語句或存儲過程,完成數據訪問后自動關閉連接。

java面試筆試題匯總

1.抽象:

抽象就是忽略一個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標有關

的方面。抽象并不打算了解全部問題,而只是選擇其中的一部分,暫時不用部分細節。抽象

包括兩個方面,一是過程抽象,二是數據抽象。

2.繼承:

繼承是一種聯結類的層次模型,并且允許和鼓勵類的重用,它提供了一種明確表述共性的

方法。對象的一個新類可以從現有的類中派生,這個過程稱為類繼承。新類繼承了原始類的

特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生類可以從

它的基類那里繼承方法和實例變量,并且類可以修改或增加新的方法使之更適合特殊的需

要。

3.封裝:

封裝是把過程和數據包圍起來,對數據的訪問只能通過已定義的界面。面向對象計算始于

這個基本概念,即現實世界可以被描繪成一系列完全自治、封裝的對象,這些對象通過一個

受保護的接口訪問其他對象。

4.多態性:

多態性是指允許不同類的對象對同一消息作出響應。多態性包括參數化多態性和包含多態

性。多態性語言具有靈活、抽象、行為共享、代碼共享的優勢,很好的解決了應用程序函數

同名問題。

5、String是最基本的數據類型嗎?

基本數據類型包括byte、int、char>long>float、double>boolean和short。

java.lang.String類是final類型的,因此不可以繼承這個類、不能修改這個類。為了提

高效率節省空間,我們應該用StringBuffer類

6、int和Integer有什么區別

Java提供兩種不同的類型:引用類型和原始類型(或內置類型)。Int是java的原始數據

類型,Integer是java為int提供的封裝類。Java為每個原始類型提供了封裝類。

原始類型封裝類

booleanBoolean

charCharacter

byteByte

shortShort

intInteger

longLong

floatFloat

doubleDouble

引用類型和原始類型的行為完全不同,并且它們具有不同的語義。引用類型和原始類型具

有不同的特征和用法,它們包括:大小和速度問題,這種類型以哪種類型的數據結構存儲,

當引用類型和原始類型用作某個類的實例數據時所指定的缺省值。對象引用實例變量的缺省

值為null,而原始類型實例變量的缺省值與它們的類型有關。

7、String和StringBuffer的區別

JAVA平臺提供了兩個類:StringflStringBuffer,它們可以儲存和操作字符串,即包含

多個字符的字符數據。這個String類提供了數值不可改變的字符串。而這個StringBuffer

類提供的字符串進行修改。當你知道字符數據要改變的時候你就可以使用StringBuffero典

型地,你可以使用StringBuffers來動態構造字符數據。

8、運行忖異常與一般異常有何異同?

異常表示程序運行過程中可能出現的非正常狀態,運行時異常表示虛擬機的通常操作中可

能遇到的異常,是一種常見運行錯誤。java編譯器要求方法必須聲明拋出可能發生的非運行

時異常,但是并不要求必須聲明拋出未被捕獲的運行時異常。

9、說出Servlet的生命周期,并說出Servlet和CGI的區別。

Servlet被服務器實例化后,容器運行其init方法,請求到達時運行其service方法,

service方法自動派遣運行與請求對應的doXXX方法(doGet,doPost)等,當服務器決定將

實例銷毀的時候調用其destroy方法。

與cgi的區別在于servlet處于服務器進程中,它通過多線程方式運行其service方法,一

個實例可以服務于多個請求,并且其實例一般不會銷毀,而CGI對每個請求都產生新的進程,

服務完成后就銷毀,所以效率上低于servlet。

10、說出ArrayList,Vector,LinkedList的存儲性能和特性

ArrayList和Vector都是使用數組方式存儲數據,此數組元素數大于實際存儲的數據以

便增加和插入元素,它們都允許直接按序號索引元素,但是插入元素要涉及數組元素移動等

內存操作,所以索引數據快而插入數據慢,Vector由于使用了synchronized方法(線程安

全),通常性能上較ArrayList差,而LinkedList使用雙向鏈表實現存儲,按序號索引數據

需要進行前向或后向遍歷,但是插入數據時只需要記錄本項的前后項即可:所以插入速度較

快。

11>EJB是基于哪些技術實現的?并說出SessionBean和EntityBean的區別,StatefulBean

和StatelessBean的區別。

EJB包括SessionBean^EntityBean^MessageDrivenBean,基于JNDI>RMI>JAT

等技術實現。

SessionBean在J2EE應用程序中被用來完成一些服務器端的業務操作,例如訪問數據庫、調

用其他EJB組件。EntityBean被用來代表應用系統中用到的數據。

對于客戶機,SessionBean是一種非持久性對象,它實現某些在服務器上運行的業務邏輯。

對于客戶機,EntityBean是一種持久性對象,它代表一個存儲在持久性存儲器中的實體的

對象視圖,或是一個由現有企業應用程序實現的實體。

SessionBean還可以再細分為StatefulSessionBean與StatelessSessionBean,

這兩種的SessionBean都可以將系統邏輯放在method之中執行,不同的是Stateful

SessionBean可以記錄呼叫者的狀態,因此通常來說,一個使用者會有一個相對應的

StatefulSessionBean的實體。StatelessSessionBean雖然也是邏輯組件,但是他卻不

負責記錄使用者狀態,也就是說當使用者呼叫StatelessSessionBean的時候,EJB

Container并不會找尋特定的StatelessSessionBean的實體來執行這個method。換言之,

很可能數個使用者在執行某個StatelessSessionBean的methods時,會是同一個Bean

的Instance在執行。從內存方面來看,StatefulSessionBean與StatelessSessionBean

比較,StatefulSessionBean會消耗J2EEServer較多的內存,然而StatefulSession

Bean的優勢卻在于他可以維持使用者的狀態。

12、Collection和Collections的區別。

Collection是集合類的上級接口,繼承與他的接口主要有Set和List.

Collections是針對集合類的一個幫助類,他提供一系列靜態方法實現對各種集合的搜索、

排序、線程安全化等操作。

13、&和&&的區別。

&是位運算符,表示按位與運算,&&是邏輯運算符,表示邏輯與(and)o

14>IlashMap和Hashtable的區別。

HashMap是Hashlable的輕量級實現(非線程安全的實現),他們都完成了Map接口,主

要區別在于HashMap允許空(null)鍵值(key),山于非線程安全,效率上可能高于Hashtable。

HashMap允許將null作為一個entry的key或者value,而Hashtable不允許。

HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKeyo因為

contains方法容易讓人引起誤解。

Hashtable繼承自Dictionary類,而HashMap是Javal.2引進的Mapinterface的一個實現。

最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多個線程訪問

Hashtable時;不需要自己為它的方法實現同步,而HashMap就必須為之提供外同步。

Hashtable和HashMap采用的hash/rehash算法都大概一樣,所以性能不會有很大的差異。

15>final,finally,finalize的區別。

final用于聲明屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可繼承。

finally是異常處理語句結構的一部分,表示總是執行。

finalize是Object類的一個方法,在垃圾收集器執行的時候會調用被回收對象的此方法,

可以覆蓋此方法提供垃圾收集時的其他資源回收,例如關閉文件等。

16、sleep0和wait()有什么區別?

sleep是線程類(Thread)的方法,導致此線程暫停執行指定時間,給執行機會給其他

線程,但是監控狀態依然保持,到時后會自動恢復。調用sleep不會釋放對象鎖。

wait是Object類的方法,對此對象調用wait方法導致本線程放棄對象鎖,進入等待此對象

的等待鎖定池,只有針對此對象發出notify方法(或notifyAll)后本線程才進入對象鎖定

池準備獲得對象鎖進入運行狀態。

17、Overload和Override的區別。Overloaded的方法是否可以改變返回值的類型?

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

是父類與子類之間多態性的一種表現,重載Overloading是一個類中多態性的一種表現。如

果在子類中定義某方法與其父類有相同的名稱和參數,我們說該方法被重寫(Overriding)。

子類的對象使用這個方法時,將調用子類中的定義,對它而言,父類中的定義如同被"屏蔽”

了。如果在一個類中定義了多個同名的方法,它們或有不同的參數個數或有不同的參數類型,

則稱為方法的重載(Overloading)。Overloaded的方法是可以改變返回值的類型。

18、error和exception有什么區別?

error表示恢復不是不可能但很困難的情況下的?種嚴重問題。比如說內存溢出。不可能

指望程序能處理這樣的情況。

exception表示-一種設計或實現問題。也就是說,它表示如果程序運行正常,從不會發

生的情況。

19、同步和異步有何異同,在什么情況下分別使用他們?舉例說明。

如果數據將在線程間共享。例如正在寫的數據以后可能被另一個線程讀到,或者正在讀的

數據可能已經被另一個線程寫過了,那么這些數據就是共享數據,必須進行同步存取。

當應用程序在對象上調用了一個需要花費很長時間來執行的方法,并且不希望讓程序等待方

法的返回時,就應該使用異步編程,在很多情況下采用異步途徑往往更有效率。

.NET面試題(1)

Q:您在什么情況下會用到虛方法?它與接口有什么不同?

Q:Override與重載有什么區別?

Q:值類型與引用類型有什么區別?

Q:怎樣理解靜態變量?

Q:向服務器發送請求有幾種方式?

Q:DataReader與Dataset有什么區別?

Q:如果在一個B/S結構的系統中需要傳遞變量值,但是又不能使用Session.Cookie、

Application,您有幾種方法進行處理?

Q:用.net做B/S結構的系統,您是用幾層結構來開發,每一層之間的關系以及為什么要這

樣分層?

Q:軟件開發過程一般有幾個階段?每個階段的作用?

Q:微軟推出了一系列的ApplicationBlock,請舉出您所知道的ApplicationBlock并說明

其作用?

Q:請列舉一些您用到過的設計模式以及在什么情況下使用該模式?

Q:您對WebService的體會?

Q:您對編程的興趣如何?工作中遇到不懂的問題是怎樣去解決的?您一般怎樣去提高自己的

編程水平?

Q:您離職的原因是什么?

以下幾道題目如果您不會,請較為詳細的描述您的解決思路和方法

Q:通過超鏈接怎樣傳遞中文參數?

Q:請編程遍歷頁面上所有TextBox控件并給它賦值為string.Empty?

Q:請編程實現一個冒泡排序算法?

.NET面試題(2)

一道數據庫設計的面試題,考查的重點和供參考的解決方案如下。

一大型企業,有10000名員工,每半個月發一次工資,試為此企業設計一個工資數據庫.(數據

庫為SQLserver).

這題考查的市點是面對數據量大時,如何設計一個系統的性能好、速度快的數據庫。

可供參考的解決方法有幾點,希望大家補充:

1.建立索引是必須的。

2.可以設計成兩個表,一個用來操作,一個用來查詢。操作表只保存最近若干段時間內的數

據,就如移動公司查詢話費記錄。

3.查詢考慮用最優的存儲過程。

.NET面試題(3)

1.寫一個實現對一段字符串翻轉的方法,附加一些條件,如其中包括對其設計測

試用例。

2.對一支紙杯設計測試用例(可以是廣義的杯,不一定是某一支特定功能的杯)

開發語言概念題

3.什么是反射?

4.用Singleton如何寫設計模式

5.C#中的垃圾回收機制是怎樣的?

6.什么是ApplicationPool?

7.鏈表和數組的區別,各有什么優缺點.

8.Remoting在客戶端服務器怎么實現?

9.什么是友元函數?

10.用標準C如何實現多態?

11.什么是虛函數?

12.什么是抽象函數?

13.什么是內存泄漏,怎樣最簡單的方法判斷被存泄漏?

英語題

14.用英文介紹一下使用C#/C++做的項目,主要功能

15.如果要與美國開電話會議,會如何與美國的工程師溝通

16.如果老板認為你的技術落后,你會怎么回答

數據庫知識題

17.使用什么工具來調用存儲過程

18.SQLServer的兩種索引是何形式?索引的作用?索引的優缺點?

19.觸發器的作用

其它知識題及問題

20什么是WebService?

21.什么是XML?

22.Socket怎么實現?

.NET面試題(4)

1.面向對象的思想主要包括什么?

2.什么是ASP.net中的用戶控件

3.什么叫應用程序域?什么是受管制的代碼?什么是強類型系統?什么是裝箱和拆箱?什么

是重載?CTS、CLS和CLR分別作何解釋?(責任編輯:信息發布員)

本篇文章來源于:IT技術網[MvW.ItTechMCn]-轉載請加上原文鏈接,否則追究法律責

任!—原文鏈接地址:

http:〃www.ittechw.cn/a/zixun/msdzh/netzq/2010/0405/11014.html

4.列舉一下你所了解的XML技術及其應用

5.值類型和引用類型的區別?寫出C#的樣例代碼。

6.ADO.net中常用的對象有哪些?分別描述一下。

7.如何理解委托?

8.C#中的接口和類有什么異同。

9.onet中讀寫數據庫需要用到哪些類?他們的作用

10.UDP連接和TCP連接的異同。

11.ASP.net的身份驗證方式有哪些?分別是什么原理?

12.進程和線程分別怎么理解?

13.什么是code-Behind技術。

14.活動目錄的作用。

15..net中讀寫XML的類都歸屬于哪些命名空間?

16.解釋一下UDDI、WSDL的意義及其作用。

17.什么是SOAP,有哪些應用。

18.如何部署一個ASP.net頁面。

19.如何理解.net中的垃圾回收機制。

20.常用的調用webservice方法有哪些?

(責任編輯:信息發布員)

本篇文章來源于:IT技術網[WwMItTechW.Cn]-轉載請加上原文鏈接,否則追究法律責

任!—原文鏈接地址:

http:〃www.ittechw.cn/a/zixun/msdzh/netzq/2010/0405/110142.html

C#算法一道面試題:程序設計:貓大叫一聲,所有的老鼠都開始逃跑,主人被驚醒。

了解了題目之后讓我們首先來看看C#算法程序的執行:

1.publicdelegatevoidSubEventHandler();2.publicabstractclassSubject

3{4.publiceventSubEventHandlerSubEvent;5.protectedvoid

FireAway()6....{7.if(this.SubEvent!=null)8.

this.SubEvent();9.)10.}11.publicclassCat:Subject

12{13.publicvoidCry()14....{15.

Console.WriteLine(catcryed.);16.this.FireAway();17.}18.)

19.publicabstractclassObserver20….{21.publicObserver(Subjectsub)

22....{23.sub.SubEvent+二newSubEventHandler(Response);24.}

25.publicabstractvoidResponse();26.}27.publicclassMouse:

Observer28{29.privatestringname;30.publicMouse(stringname,

Subjectsub):base(sub)31...?{32.this,name=name;33.}

34.publicoverridevoidResponse()35....{36.

Console.WriteLine(name+attempttoescape!);37.}38.}39.publicclass

Master:Observer40(41.publicMaster(Subjectsub):base(sub)...{)

42.publicoverridevoidResponse()43....{44.

Console.WriteLine(hostwaken);45.}46.}47.classClassi48{49.

staticvoidMain(string[]args)50....{51.Catcat=newCat();

52.Mousemouse1=newMouse(mouse1,cat);53.Mousemouse2=new

Mouse(mouse2,cat);54.Mastermaster=newMaster(cat);55.

cat.Cry();56.}57.58.}C#算法一道面試題的程序實現就向你介紹到這里,

希望通過一道面試題對你了解C#算法有所幫助。

月薪8000的算法面試題!!

?面試題

?面試題

?一個面試題

?求教一個面試題

更多相關推薦

有許多小矩形,大小不一,將其放入一大矩形中,使得大矩形的利用率最大,擺放時盡量將

空隙留在右邊,給出算法實現的效果圖(大小矩形可以用圖片代替)。

交付時間是:3天!

做這些題只是為了愛好,收集供所有找工作的學生和愛好者共享。

packagemymethod;

/**

*已知一組數字:21,25,11,32,12,35,55,77,66要求按以下規則進行排序:第一個數最大,

第二個數最小,

*第三個數是剩下中的最大的,第四個數是剩下中的最小的,依此類推,請設計一個字符界

面的程序解決之.

*?authoracer

*/

publicclassMethod2{

/*

*算法思路:用一個整數指針指向數組的位置,同時實現奇偶轉換.

*反復排序,把數組第一個數實現最大,接著整數指針指向第2個位置,排序實現剩余數最

小的到第2個數位置.

*依次類推.

*/

privatestatici

溫馨提示

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

評論

0/150

提交評論