算法面试题大全_第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

提交评论