1、东软面试试题汇总1 堆和栈那个是对程序员透明的?答案:栈。2 请结合具体实例阐述一下面向对象中“多态“ 的概念。答案:同一操作用于不同的类的实例,不同的类将进行不同的解释,最后产生不同的结果,它有两种:编译时多态- 通过 overload 来实现,系统在编译时,根据传递的参数和返回的类型等信息决定实现何种操作运行时多态- 通过 override 来实现,根据运行时具体对象的类型决定调用哪个方法。给我面试的人很有亲和力,我没有感到有压力。首先是自我介绍;他根据你自己介绍的情况来问你问题,我主要是说得现在正在做的青软实训内部管理系统。你在项目组里主要负责什么?是怎么做的?主要负责页面前台展示,我现
2、在设计页面框架,用的 Struts-tile;把页面分为 4 部分,sidebar,header,footer,context;然后把 sidebar,header,footer 这些每个页面都要用的写成一个整体,放在配置文件中,每个页面都引用他,这样就不用变了。变得就是 context 部分。另外在 sidebar 里面,用 javascript来实现导航栏的弹出功能。用什么方法可以检测一个环行链表? 首先可以在 data 里面初始化一个数据,然后向下循环,可以找到这条数据的话,就是环行链表,否则就不是;但这个链表不一定是完全的链表,里面可能有分支,该怎么检测? 设置一个循环,条件设为 tr
3、ue,如果可以结束就不是,不能结束里面就有环。那这样的话怎么让他跳出循环呢? 我也不知道,那请教一下吧。你看看如果 next 引用如果相同的话是不是就是环行链表?对,是那你想个办法来实现他吧。把这个 next 引用,写进一个 list,以后都把 next 引用和 list 里面的内容进行比较,如果有相同的就是环,没有就不是。但如果链表很大,而你做的是嵌入式项目,有内存溢出,该怎么检测呢?呵呵, 我想不出来了。12 自我介绍, (注 自我介绍中的自我经历可能会成为他的考点)3 我在自我介绍中说了我参加过数学建模,他问了我我们建的什么模型,我给他介绍了一下。主要考点是你的思路问题。4 单链表若最后
4、一个节点指向前面的某个节点,请问怎么检测出现了环?主要是考察你对问题有无解决方案,不对也无所谓,最后他一定会把你难倒。怎么也要说上几句,不说那就 over 了。5 Final 和 finally 的区别?6 Java 的垃圾回收机制?4 5 两题应该都会,我就不说了。1。什么是 J2EE,J2SE,J2ME这个就不用说了吧2。什么是 EJB也不用说了吧3。你做过哪些项目,负责该项目的哪个模块,M、V 还是 C我说我做过一个网上花店,负责管理员模块,然后简单说了一下这个模块的各项功能,他让我说是M、V 还是 C,我说这个项目的目的之一是让我门每个人对整个流程都有所锻炼,所以没有谁只做 M 或者
5、V或者 C,一个人负责一个模块,然后做这个模块的全部。4。我说我学到 STRUTS 了,他问我 ACTION 和 ACTIONFORM 是什么关系,是一对一吗,是一个 ACTION 一个ACTIONFORM 吗,确定吗?我说是的,确定一定以及肯定。因为一个 ACTION 标签里只有一个 NAME 属性(他说这个我知道)。5。学过日语啊,说个句子你翻译一下吧,#$%#%$.我也#$#%$#%.然后他说“恩,还懂点日语皮毛,学起来应该快一些。”技术上也就这些了,别的也没什么了,不知道为什么就问我这些,我准备的那些他一个也没问着,可能我一开始说我正在学 J2EE,把他引向了这个方向,或者是我回答的太
6、快了,时间太紧了。就这些。东软面试总结:1 问题:栈和队列的主要区别答案:栈-后进先出;队列-先进先出。2 问题:完全二叉树的结构答案:深度为 k,有 n 个节点的二叉树,当且仅当其每一个节点都与深度 为 k 的满二叉树中编号从 1 至 n 的结点一一对应时,称之为完全二叉树。当初面试人员画了几个树让我辨认谁是完全二叉树。3 问题:什么是索引答案:索引依附于基表,建立索引是加快查询的有效手段。4 问题:什么是视图答案:视图是关系数据库系统提供给用户以多角度观察数据库中数据的重要机制。是从一个或多个基表(或视图)导出的表,它与基本表不同,是虚表。5 问题:什么是游标答案:游标是系统为用户开设的一
7、个数据缓冲区,存放 SQL 语句的执行结果,每个游标区都有一个名字。用户可以通过游标逐一获取记录,并赋给主变量,交由主语言进一步处理。6 问题:对数据库操作的语句答案:select,insert,update,delete7 问题:数据库的操作过程答案:(1)加载驱动程序;(2)建立数据库连接;(3)向数据库发送 SQL 语句;(4)事务处理;(5)管理连接。8 问题:所知道的排序方法的种类答案:插入,快速,选择,交换,归并,基数,希尔等。9 问题:什么是 MVC答案:这个大家都清楚,可查询有关资料。1。首先得问题就是让我做自我介绍答 当然就自己的大致情况说就行了,在这个过程中 又让我分析自己
8、的性格与优缺点。然后让说明自己的职业规划。这些都是因自己而定了2。做过的项目 简单介绍一下答:做过的项目在来软件园之前没有多少机会 只有课程设计的时候做过一个 java 聊天室的项目,然后来到软件园之后做过 jsp 的产品支持中心的例子,sruts 的固定资产管理的例子,还有 hibernate 的例子,(可惜我都忘了竟然忘了那个项目的名字了,就是留言板的那个,刚做完竟然忘了)。随后她又随便问我关于 java 聊天室是不是自己编协议实现的,当然没有。 随后让我讲一个项目,我就讲了那个关于struts 的项目。因为对方不懂 struts,我讲也不知道她听懂了没有。3。问你几个 c 语言的问题,c
9、har *p;int i;p+与 i+的区别?这个大家都知道就是 p+是指向下一个元素,p 的移动位置与 p指针指向的类型有关,i+是自身增加一。差不多就是这样说的。p 保存占多少位? 我开始说与它指向的类型有关,然后她提示我说她不是那个意思,然后我说我感觉是在内存中占 16 位吧?我是这样说的,其实我也不清楚,c 都忘了。char *p=malloc(100),给 p 分配了多少个字节的空间?是堆内存还是栈内存?我回答 100 个,(但是我忘了是堆还是栈)我认为是堆内存。4。一个程序编译完成后在内存中是如何存储的?我说这个没有学过,我把我认为的说了一下,她说她就是随便问问。5。java 有多
10、态性,继承,什么意思?是如何实现的?(这个我虽然也知道大概 但是好像理解的也不是太深刻,说不太清晰)答:我就说了前几天老师利用接口与 DAOFactory 实现的那个例子,她说那抽象类呢,我说不太上来但是也就我理解的说了点。我又扯上了重载,她就问重载是多态吗?我说不是(因为我记得不是),但是可以实现多态。说得很乱7 最后就是随便聊了。她问我怎么没有考研,为什么?一个女生为什么学软件?然后问我有没有什么问题,我就问了关于对日外包的事情和关于东软的一些事情。1.着装:是第一项。2.英语水平: 问:四级 539 分?答: 恩。3.数据库:问: Sql 语句是在 sql server 里写的还是在程序
11、里写的?答: 学数据库的时候,是在 sql server 里,也在程序里写。问:存储过程有没有用过 答:在个人网站里,用到过。4. 网络:问: 有没有 socket 编程的经验。答: 在大三做过网络五子棋。5.架构:问 :三层架构:是什么 ? 正确答案:(web 服务器,数据库服务器,应用程序服务器)6. 编程语言:问: Java 学的怎么样?答:学了一个学期的课程问:C 或 C+挑一个你最好的。答 :C+C+:问:面向对象的特点:解释一下什么继承,多态。答 :我在回答的时候,是通过一个经典的例子说的。7. 你的项目经验:问:是用什么开发的 ? 答:asp8 日语基础: 写一下五十音图 ,说一
12、个存在句,说一个判断句,说一个你学过的最复杂的句子。 首先,面试官对整个试卷的成绩做个一个评价。我的编程做了一个 java 和一个 c 语言的。面试官问我这两门语言那一门更熟悉,我说我是 .net 班的,相对来说对 C 语言相对熟悉一些。他接着问我什么时候学的 C 语言,我说大一下学期,他问以后用的多吗?我说:大二以后就不用了,因为 C 的编程环境太单调了,以后我们就用 C+ 代替了 C 语言。接着,面试官就以 VC+ 为切入点问我。问题可以分为以下几个:1、让我谈谈面向对象是怎样理解的?2、谈谈类、子类的联系和区别。3、谈谈继承、多态、封装、抽象、重载、虚函数、抽象类。4、VC+ 中的 MF
13、C 的理解,对 MFC 的理解程度?答:我对 MFC 有一定的了解,因为里面的指针应用太过与复杂, 我只是对里面的几个类如:视图类、文挡类,做了简单的介绍。接着面试官就给我说学 VC 怎么能不理解 MFC 呢,他大体的介绍了里面的内容,并嘱咐我接下来的时间一定要抓紧这方面的学习。5、数据库学的怎么样?学的是什么数据库?答:我说学的是关系型的数据库,以 SQLSERVER 为主。首先,问我对一条记录有几种操作方式。我回答是:查询、插入、删除、更新。其次、有问了问里面的一些具体关键字的应用,例如:having. in. with check option.等等6、为什么学习 .net 而不学习 j
14、ava?答:我说上个学期,学校开了 C# 对这门语言产生了很浓的兴趣,所以四月份报名的时候就选择的 .net 方向。如果是 java 在先的话,我可能就选择了 java 。接着,面试官说大型的项目都是用 java开发的,要我以后向这方面靠一靠。7、为什么选择国内解决方案?对这方面了解多少?对当今软件的发展有什么看法(外包、国内)?大体上就问了这么多,首先是面试管不是我想象中的那么严肃,感觉就好象金澄老师一样,让人感觉就像是自己的大哥在和自己说话,所以整个过程中没有紧张。 每个公司的面试都各不相同,东软面试的问题同样具有一定的深度、广度。1.final 怎么用?答:final 可以用在定义变量、
15、方法以及类。final 的变量必须要初始化,也可以将初始化的操作推到类的静态块中进行,而且这样的变量不能再被重新赋值,可以将其看成这个类的“常量”了。final 的方法不能被所在的类的子类重写。final 的类不能再被继承了。2.那么,finally 怎么用?答:finally 适合 try、catch 块配合使用的。finally 一般放一些收尾的代码,也就是说,不管 try 块中的代码是否正常执行,也不管 catch 块中的代码是否工作了,finally 中的代码都要执行。比如,JDBC或是 Hibernate 中的关闭连接操作,就是放在 finally 中执行的。3.wait 方法和 s
16、leep 方法的区别?答:他们都是用来堵塞、挂起当前线程的方法,大体上应该是 wait 方法可以释放原先占有的资源,而 sleep 方法好像不能. 在以前的编写的代码中,我几乎没有用过控制线程的操作,这部分知识我确实不敢随便说。4.Java 中,是否有内存泄漏问题?答:为什么会有“内存泄漏问题”呢,主要是以前的一些编程语言,如 C、C+等,因为存在指针变量,而且这些指针是可以进行运算的,所以可能会产生“内存泄漏问题”。对于 Java 来说,尽管声称废除了指针,但是每个类的实例的引用就是一种“指针”,然而这些引用是不支持运算的,也就不存在内存地址混乱问题,所以应该没有“内存泄漏问题”。5.Jav
17、a 虚拟机的垃圾回收机制,是否真的不会有问题?答:一个类的实例,如果长时间不用了,就可能被虚拟机垃圾回收掉。但是具体的被回收的时间的长短、具体什么时刻能被回收是不确定的。一般情况下,如果虚拟机认为当前可以使用的内存空间不多的时候,就会进行垃圾回收。据我现在的知识,认为,虚拟机的垃圾回收机制应该不会产生问题。6.在平常的代码编写的过程中,有没有测试?一般怎样进行?答:我平常写代码,也写一些测试程序,一般是使用 JUnit,对编写的 DAO 类进行各种功能操作,如保存、删除、添加等的测试(他又补充问道:你这是小部分的测试,我指的是“单元测试”)我平常写的差不多就是这类的简单测试了,还没有写一个功能
18、强大的、有较大实际使用价值的“单元测试”。7.你在代码中,都是怎样对待异常情况的?答:在绝大多数情况下,我都回知道哪些代码可能会抛出异常以及会抛出什么样的异常。所以我也会针对不同类型方面的异常区分对待。我一般会分成几类情况:一类是服务器崩溃等情况,是最严重的异常了,没有什么可以挽救的余地,返回给用户“服务器维护中,暂时无法使用”;一类是数据库操作失败等情况,比如 JDBC 连接数据库失败、Hibernate 正常删除数据失败等,是属于意外情况,严重程度稍微低一些,返回给用户“刚才由于网路不畅,导致操作失败,请重新操作”,同时,需要回滚的及时回滚;再一类在实现有所准备的、业务操作异常的情况,比如
19、登录密码错误、新用户注册重名现象等等,这些异常都是在意料之中、有所准备的。此时可以返回相关的提示,严重程度相对比较的低。8.说一下数据库表设置多个外键的事情答:我以前设计的数据库表,还没用多个外键的情况.从外键的定义上说,一个表设置多个外键是完全可以的,外键对应着相关表的主键,内容只能是对应的主键的值。如果对应的主键发生变化,那么就要按照当时定义外键时制定的规则对外键所在的纪录条进行保留、删除或是更新操作。9.谈谈对 CMM 的认识答:CMM 是一种开发的模式,正好我们做的一个项目就是按照 CMM3 的基本要求做的。因为以前的时候都是采用类似“快速”开发一样的方式,还快就会开始编码,但是 CM
20、M3 要求每一步都要事先有一份完整的文档,所以一开始,对这种整天只写文档,不写代码的模式不太适应。随着项目的不断进行,才觉着CMM3 的这种开发模式有许多的优点和好处。每做一步都有上一步的文档的支持,保证了工作的一致性和完整性。同时,因为是在统一的文档进行的工作,较容易了解的项目的进展情况,便于对项目的监控。10.别人的进度拖延了,影响到了你的进度,这种事情在实际情况下经常有,你怎么处理?答:我会直接找到这位(些)同事,了解情况,看看我是否能帮得上忙。如果帮不上,问一下什么时候能够结束,调整一下自己的工作安排,先做其它的一些和他们的进度联系不大的东西。都是自己项目组的同事,应该很好协调。(如果
21、是,别的项目组的进度影响到你呢?)如果是别的组的人,自己就不好直接找人家,我会和项目组长说。如果事情紧急,让项目组长带着我,我们一起与那个项目组进行沟通。. .通过东软面试官所提的这些问题可以看出,他们是从知识、能力和意识三个方面对面试者进行考查的。1. 知识类问题,比如 final 和 finally、wait 和 sleep 等问题,考察的就是基础知识,是什么就是什么,没有可以解释的余地。对于这类的问题,只有靠自己的认真学习,才能答好。2. 能力类问题,比如内存泄露、垃圾回收、对待异常等问题,能回答的非常完美当然很好,但我们现在的所学能回答准确不好办。所以我认为,这类问题不能简单的回答“是
22、”“不是”“能”“不能”,应该把思考的思路表现给面试官,只要认可了我的思路,也就基本的认可了这方面的能力了。3. 意识类问题,比如对 CMM 的认识、工作协调等问题,主要看对某些方面认识有多深,我认为能结合着自己的经历谈,再加上阐述合理,较容易得到面试官的认可。1 二叉树,完全二叉树得性质及特点2 B-树性质及特点3 ADO.NET 对象1、在 C中,string str = null 与 string str = “” 请尽量使用文字或图象说明其中的区别。 回答要点:说明详细的空间分配。(10 分)答:string str = null 是不给他分配内存空间,而 string str = “
23、 给它分配长度为空字符串的内存空间. 、请详述在 dotnet 中类(class)与结构(struct)的异同:(10 分) 答:Class 可以被实例化,属于引用类型,是分配在内存的堆上的,Struct 属于值类型,是分配在内存的栈上的. 3、根据委托(delegate)的知识,请完成以下用户控件中代码片段的填写:(10) namespace test public delegate void OnDBOperate(); public class UserControlBase : System.Windows.Forms.UserControl public event OnDBOper
24、ate OnNew; privatevoidtoolBar_ButtonClick(objectsender,System.Windows.Forms.ToolBarButtonClickEventArgs e) if(e.Button.Equals(BtnNew) /请在以下补齐代码用来调用 OnDBOperate 委托签名的 OnNew 事件。 答:if( OnNew != null ) OnNew( this, e ); 4、分析以下代码,完成填空(10 分) string strTmp = “abcdefg 某某某“; int i= System.Text.Encoding.Defau
25、lt.GetBytes(strTmp).Length; int j= strTmp.Length; 以上代码执行完后,i= j= 答:i=13,j=10 5、SQLSERVER 服务器中,给定表 table1 中有两个字段 ID、LastUpdateDate,ID 表示更新的事务号, LastUpdateDate 表示更新时的服务器时间,请使用一句 SQL 语句获得最后更新的事务号。(10) 答:SELECT ID FROM table1 WHERE LastUpdateDate = (SELECT MAX(LastUpdateDate) FROM table1) 6、根据线程安全的相关知识,
26、分析以下代码,当调用 test 方法时 i10 时是否会引起死锁?并简要说明理由。(10 分) public void test(int i) lock(this) if (i10) i-; test(i); 答:不会发生死锁,(但有一点 int 是按值传递的,所以每次改变的都只是一个副本,因此不会出现死锁。但如果把 int 换做一个 object,那么死锁会发生) 7、分析以下代码。(10) public static void test(string ConnectString) System.Data.OleDb.OleDbConnection conn = new System.Dat
27、a.OleDb.OleDbConnection(); conn.ConnectionString = ConnectString; try conn.Open(); .catch(Exception Ex) MessageBox.Show(Ex.ToString(); finally if (!conn.State.Equals(ConnectionState.Closed) conn.Close(); 请问 1)以上代码可以正确使用连接池吗? 答:回答:如果传入的 connectionString 是一模一样的话,可以正确使用连接池。不过一模一样的意思是,连字符的空格数,顺序完全一致。 2)
28、以上代码所使用的异常处理方法,是否所有在 test 方法内的异常都可以被捕捉并显示出来? 答:只可以捕捉数据库连接中的异常吧. (finally 中,catch 中,如果有别的可能引发异常的操作,也应该用 try,catch。所以理论上并非所有异常都会被捕捉。) 8、简要谈一下您对微软.NET 构架下 remoting 和 webservice 两项技术的理解以及实际中的应用。(10) 答:WS 主要是可利用 HTTP,穿透防火墙。而 Remoting 可以利用 TCP/IP,二进制传送提高效率。 9、公司要求开发一个继承 System.Windows.Forms.ListView 类的组件,
29、要求达到以下的特殊功能:点击ListView 各列列头时,能按照点击列的每行值进行重排视图中的所有行 (排序的方式如 DataGrid 相似)。根据您的知识,请简要谈一下您的思路:(10) 答:根据点击的列头,包该列的 ID 取出,按照该 ID 排序后,在给绑定到 ListView 中 10、给定以下 XML 文件,完成算法流程图。(10) 请画出遍历所有文件名(FileName)的流程图(请使用递归算法)。 答: void FindFile( Directory d ) FileOrFolders = d.GetFileOrFolders(); foreach( FileOrFolder f
30、of in FileOrFolders ) if( fof is File ) You Found a file; else if ( fof is Directory ) FindFile( fof ); 1.new 有几种用法 第一种:new Class();第二种:覆盖方法public new XXXX()第三种:new 约束指定泛型类声明中的任何类型参数都必须有公共的无参数构造函数。2.如何把一个 array 复制到 arrayList 里foreach( object o in array )arrayList.Add(o);3.datagrid.datasouse 可以连接什么数据
31、源 dataset,datatable,dataviewdataset,datatable,dataview , IList4.概述反射和序列化反射:程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性序列化:序列化是将对象转换为容易传输的格式的过程。例如,可以序列化一个对象,然后使用 HTTP 通过 Internet 在客户端和服务器之间传输该对象。在另一端,反序列化将从该流重新构造对象。5.概述 o/r mapping 的原理利用
32、反射,配置 将类于数据库表映射6.类成员有( )种可访问形式可访问形式?不懂。可访问性:public ,protected ,private,internal7.用 sealed 修饰的类有什么特点sealed 修饰符用于防止从所修饰的类派生出其它类。如果一个密封类被指定为其它类的基类,则会发生编译时错误。密封类不能同时为抽象类。sealed 修饰符主要用于防止非有意的派生,但是它还能促使某些运行时优化。具体说来,由于密封类永远不会有任何派生类,所以对密封类的实例的虚拟函数成员的调用可以转换为非虚拟调用来处理。8.列举 ADO.NET 中的五个主要对象,并简单描述connection,comm
33、and,dataReader,trans,dataset .9.执行下面代码后:String strTemp =“abcdefg 某某某“;Int i System.Text.Encoding.Default.GetBytes(strTemp).Length;Int j = strTemp.Length;问:i=(14 ) ;j=(11 )i=(14 ) ;j=(11 ) 中文两个字节10.C#中,string str = null 与 string str =“,请尽量用文字说明区别。(要点:说明详细的内存空间分配)string str =“ 分配空间 11.详述.NET 里 class 和
34、 struct 的异同!class:放在 ? struct 放在?struct 值传递类与结构有很多相似之处:结构可以实现接口,并且可以具有与类相同的成员类型。然而,结构在几个重要方面不同于类:结构为值类型而不是引用类型,并且结构不支持继承。结构的值存储在“在堆栈上”或“内联”。细心的程序员有时可以通过聪明地使用结构来增强性能。12.概述.NET 里对 remoting 和 webservice 两项技术的理解和实际中的应用。远程逻辑调用,remoing 接口只能用在.net 中13.什么是 code-behind 技术aspx and cs 14.概述三层结构体系web/business/
35、如何实现 MVC 模式,举例说明!web/business/dataaccess-1.面向对象的思想主要包括什么?答: 继承 多态 封装 封装:用抽象的数据类型将数据和基于数据的操作封装在一起,数据被保护在抽象数据类型内部。 继承:子类拥有父类的所有数据和操作。 多态:一个程序中同名的不同方法共存的情况。有两种形式的多态 重载与重写。2.什么是 ASP.net 中的用户控件答:用户控件就是.ascx 扩展名的东西喽,可以拖到不同的页面中调用,以节省代码.比如登陆可能在多个页面上有,就可以做成用户控件,但是有一个问题就是用户控件拖到不同级别的目录下后里面的图片等的相对路径会变得不准确,需要自已写
36、方法调整.3.什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和 CLR 分别作何解释?答:装箱就是把值类型转成引用类型,从 MS IL 角度看好像是 boxing,没记错的话是把值从堆栈转到堆中.拆箱相反,重载就是指一个方法名同,参数个数不同,返回值可以相同的方法.CLR 是通用语言运行时,其它的不清楚.4.列举一下你所了解的 XML 技术及其应用答:XML 可是好东西,保存配置,站与站之间的交流,WEB SERVICE 都要用它.5.值类型和引用类型的区别?写出 C#的样例代码。答:结构是值类型,类是引用类型,所以传结构就是值类型的应用啦
37、,传对象或类就是引用类型的,这个不用多写了吧.6.ADO.net 中常用的对象有哪些?分别描述一下。答:connection command sqladapter dataset datatable dataview 等等.写不完了.ADO.NET 是.NET Framework 的一个组件。它主要是与数据库打交道。里面主要是连接数据库和实现数据的增、删、改、查。 对象:ADO Command 对象可以使用数据库命令直接与数据源进行通信 . 它的属性如下:7.如何理解委托?答:据说相当于函数指针,定义了委托就可以在不调用原方法名称的情况下调用那个方法.msdn2005 中是这样解释的:委托具有
38、以下特点:委托类似于 C+ 函数指针,但它是类型安全的。委托允许将方法作为参数进行传递。委托可用于定义回调方法。委托可以链接在一起;例如,可以对一个事件调用多个方法。方法不需要与委托签名精确匹配。有关更多信息,请参见协变和逆变。C# 2.0 版引入了匿名方法的概念,此类方法允许将代码块作为参数传递,以代替单独定义的方法。8.C#中的接口和类有什么异同。答:这个异同可多了,要说清楚还真不容易.9.。net 中读写数据库需要用到哪些类?他们的作用答:这个类自已可以写的啊,你是指基类吗?那 configuration,sqlconnection,sqlcommand 等都要用到.10.UDP 连接和
39、 TCP 连接的异同。答:前者只管传,不管数据到不到,无须建立连接.后者保证传输的数据准确,须要连结.11.ASP.net 的身份验证方式有哪些?分别是什么原理?答:form 认证,windows 集成认证等,原理不清楚.12.进程和线程分别怎么理解?答:进程是老子,线程是儿子,没有老子就没有儿子,一个老子可以有多个儿子.一个儿子可以成为别人的儿子,一个老子也可以为别的老子生儿子.13.什么是 code-Behind 技术。答:代码分离,这是个明智的东西,像 ASP 这样混成一堆很不爽.或者可以理解成 HTML 代码写在前台,C#代码写在后台.当然前台也有脚本,类的调用等,其实写在一起也是可以
40、的.14.活动目录的作用。答:这个不明白.请明白的补充一下.15net 中读写 XML 的类都归属于哪些命名空间?答:System.Xml我自已写的就不一定了,嘿嘿.16.解释一下 UDDI、WSDL 的意义及其作用。答:什么东西?17.什么是 SOAP,有哪些应用。答:SOAP (Simple Object Access Protocol )简单对象访问协议是在分散或分布式的环境中交换信息并执行远程过程调用的协议,是一个基于 XML 的协议。使用 SOAP,不用考虑任何特定的传输协议(最常用的还是 HTTP协议),可以允许任何类型的对象或代码,在任何平台上,以任何一直语言相互通信。这种相互通
41、信采用的是XML 格式的消息,具体请看:http:/ 1.C+或 Java 中的异常处理机制的简单原理和应用。 当 JAVA 程序违反了 JAVA 的语义规则时,JAVA 虚拟机就会将发生的错误表示为一个异常。违反语义规则包括 2 种情况。一种是 JAVA 类库内置的语义检查。例如数组下标越界,会引发 IndexOutOfBoundsException;访问 null 的对象时会引发 NullPointerException.另一种情况就是 JAVA 允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用 throw 关键字引发异常。所有的异常都是 java.lang.Tho
42、wable 的子类。 2. Java 的接口和 C+的虚类的相同和不同处。 由于 Java 不支持多继承,而有可能某个类或对象要使用分别在几个类或对象里面的方法或属性,现有的单继承机制就不能满足要求。与继承相比,接口有更高的灵活性,因为接口中没有任何实现代码。当一个类实现了接口以后,该类要实现接口里面所有的方法和属性,并且接口里面的属性在默认状态下面都是 public static,所有方法默认情况下是 public.一个类可以实现多个接口。 3. 垃圾回收的优点和原理。并考虑 2 种回收机制。 Java 语言中一个显着的特点就是引入了垃圾回收机制,使 c+程序员最头疼的内存管理的问题迎刃而解
43、,它使得 Java 程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java 中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清楚和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收。 4. 请说出你所知道的线程同步的方法。 wait():使一个线程处于等待状态,并且释放所持有的对象的 lock. sleep():使一个正
44、在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException 异常。 notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由 JVM 确定唤醒哪个线程,而且不是按优先级。 Allnotity():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。 5. 请讲一讲析构函数和虚函数的用法和作用。 于“”是析构函数;析构函数因使用“符号(逻辑非运算符),表示它为腻构造函数,加上类名称来定义。 析构函数也是特殊的类成员函数,它没有返回类型,没有参数,不能随意调用,也没有
45、重载,只有在类对象的生命期结束的时候,由系统自动调用。 有适放内存空间的做用! 虚函数是 C+多态的一种表现 例如:子类继承了父类的一个函数(方法),而我们把父类的指针指向子类,则必须把父类的该函数(方法)设为 virturl(虚函数)。 使用虚函数,我们可以灵活的进行动态绑定,当然是以一定的开销为代价。 如果父类的函数(方法)根本没有必要或者无法实现,完全要依赖子类去实现的话,可以把此函数(方法)设为 virturl 函数名=0 我们把这样的函数(方法)称为纯虚函数。 如 果 一 个 类 包 含 了 纯 虚 函 数 , 称 此 类 为 抽 象 类6. Error 与 Exception 有
46、什 么 区 别 ? Error 表 示 系 统 级 的 错 误 和 程 序 不 必 处 理 的 异 常 , Exception 表 示 需 要 捕 捉 或 者 需 要 程 序 进 行 处 理 的 异 常 。 7. 在 java 中 一 个 类 被 声 明 为 final 类 型 , 表 示 了 什 么 意思? 表示该类不能被继承,是顶级类。 9. heap 和 stack 有什么区别。 栈是一种线形集合,其添加和删除元素的操作应在同一段完成。栈按照后进先出的方式进行处理。 堆是栈的一个组成元素 栈(stack),是限定仅在表尾进行插入或删除操作的线性表,栈的修改是按照后进先出(LIFO)原则进
47、行的,因此栈又称为后进先出线性表。在 java 中栈驻留于常规 RAM(随机访问存储器)区域,可通过“栈指针”获得处理的直接支持。栈指针若向下移,会创建新的内存;若向上移,则会释放那些内存。这是一种特别快、特别有效的数据保存方式,仅次于寄存器。创建程序时,Java 编译器必须准确地知道栈内保存的所有数据的“长度”以及“存在时间”。这是由于它必须生成相应的代码,以便向上和向下移动指针。这一限制无疑影响了程序的灵活性,所以尽管有些 Java 数据要保存在堆栈里,如对象的引用(句柄)、局部变量、形式参数等,但 java 对象并不放在其中。 堆(heap),是一种常规用途的内存池(也在 RAM 区域)
48、,其中保存了 Java 对象。和栈不同之处在于,堆的存储空间是在程序执行过程中动态分配的,编译器不必知道要从堆里分配多少存储空间,也不必知道存储的数据要在堆里停留多长的时间。因此,用堆保存数据时会得到更大的灵活性。要求创建一个对象时,只需用 new 命令编制相关的代码即可。执行这些代码时,会在堆里自动进行数据的保存。当然,为达到这种灵活性,必然会付出一定的代价:在堆里分配存储空间时会花掉更长的时间!13,Anonymous Inner Class (匿名内部类) 是否可以 extends(继承)其它类,是否可以implements(实现)interface(接口)? 匿名的内部类是没有名字的内部类。不能 extends(继承) 其它类,但一个内部类可以作为一个接口,由另一个内部类实现。 14,Static Nested Class 和 Inner Class 的不同,说得越多越好(面试题有的很笼统)。 Nested Class (一般是 C+的说法),Inner Class (一般是 JAVA 的说法)。Java 内部类与C+嵌套类最大的不同就在于是否有指向外部的引用上。具体可见 http: /