文档库 最新最全的文档下载
当前位置:文档库 › 51CTO下载-东软笔试面试试题汇总文库

51CTO下载-东软笔试面试试题汇总文库

51CTO下载-东软笔试面试试题汇总文库.txt22真诚是美酒,年份越久越醇香浓型;真诚是焰火,在高处绽放才愈是美丽;真诚是鲜花,送之于人手有余香。一颗孤独的心需要爱的滋润;一颗冰冷的心需要友谊的温暖;一颗绝望的心需要力量的托慰;一颗苍白的心需要真诚的帮助;一颗充满戒备关闭的门是多么需要真诚这一把钥匙打开呀!东软面试试题汇总
1 堆和栈那个是对程序员透明的?
答案:栈。
2 请结合具体实例阐述一下面向对象中"多态"的概念。
答案:同一操作用于不同的类的实例,不同的类将进行不同的解释,最后产生不同的结果,它有两种:
→编译时多态---- 通过overload来实现,系统在编译时,根据传递的参数和返回的类型等信息决定实现何种操作
→运行时多态---- 通过override来实现,根据运行时具体对象的类型决定调用哪个方法。

给我面试的人很有亲和力,我没有感到有压力。
首先是自我介绍;他根据你自己介绍的情况来问你问题,我主要是说得现在正在做的青软实训内部管理系统。
你在项目组里主要负责什么?是怎么做的?
主要负责页面前台展示,我现在设计页面框架,用的Struts-tile;把页面分为4部分,sidebar,header,footer,context;然后把sidebar,header,footer这些每个页面都要用的写成一个整体,放在配置文件中,每个页面都引用他,这样就不用变了。变得就是context部分。另外在sidebar里面,用javascript来实现导航栏的弹出功能。
用什么方法可以检测一个环行链表?
首先可以在data里面初始化一个数据,然后向下循环,可以找到这条数据的话,就是环行链表,否则就不是;
但这个链表不一定是完全的链表,里面可能有分支,该怎么检测?
设置一个循环,条件设为true,如果可以结束就不是,不能结束里面就有环。
那这样的话怎么让他跳出循环呢?
我也不知道,那请教一下吧。
你看看如果next引用如果相同的话是不是就是环行链表?
对,是
那你想个办法来实现他吧。
把这个next引用,写进一个list,以后都把next引用和list里面的内容进行比较,如果有相同的就是环,没有就不是。
但如果链表很大,而你做的是嵌入式项目,有内存溢出,该怎么检测呢?
呵呵, 我想不出来了。

自我介绍,(注 自我介绍中的自我经历可能会成为他的考点)
我在自我介绍中说了我参加过数学建模,他问了我我们建的什么模型,我给他介绍了一下。主要考点是你的思路问题。
单链表若最后一个节点指向前面的某个节点,请问怎么检测出现了环?
主要是考察你对问题有无解决方案,不对也无所谓,最后他一定会把你难倒。怎么也要说上

几句,不说那就over了。
Final和finally的区别?
Java的垃圾回收机制?
4 5 两题应该都会,我就不说了。


1。什么是J2EE,J2SE,J2ME
?? 这个就不用说了吧
2。什么是EJB
?? 也不用说了吧
3。你做过哪些项目,负责该项目的哪个模块,M、V还是C
?? 我说我做过一个网上花店,负责管理员模块,然后简单说了一下这个模块的各项功能,他让我说是M、V还是C,我说这个项目的目的之一是让我门每个人对整个流程都有所锻炼,所以没有谁只做M或者V或者C,一个人负责一个模块,然后做这个模块的全部。
4。我说我学到STRUTS了,他问我ACTION和ACTIONFORM是什么关系,是一对一吗,是一个ACTION一个ACTIONFORM吗,确定吗?
?? 我说是的,确定一定以及肯定。因为一个ACTION标签里只有一个NAME属性(他说这个我知道)。
5。学过日语啊,说个句子你翻译一下吧,@#$%#%$...
?? 我也@#$#@%$#%...然后他说“恩,还懂点日语皮毛,学起来应该快一些。”
技术上也就这些了,别的也没什么了,不知道为什么就问我这些,我准备的那些他一个也没问着,可能我一开始说我正在学J2EE,把他引向了这个方向,或者是我回答的太快了,时间太紧了。就这些。


东软面试总结:
问题:栈和队列的主要区别
答案:栈----------后进先出;
队列--------先进先出。
问题:完全二叉树的结构
答案:深度为k,有n个节点的二叉树,当且仅当其每一个节点都与深度 为k的满二叉树中编号从1至n的结点一一对应时,称之为完全二叉树。
当初面试人员画了几个树让我辨认谁是完全二叉树。
问题:什么是索引
答案:索引依附于基表,建立索引是加快查询的有效手段。
问题:什么是视图
答案:视图是关系数据库系统提供给用户以多角度观察数据库中数据的重要机制。是从一个或多个基表(或视图)导出的表,它与基本表不同,是虚表。
问题:什么是游标
答案:游标是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果,每个游标区都有一个名字。用户可以通过游标逐一获取记录,并赋给主变量,交由主语言进一步处理。
问题:对数据库操作的语句
答案:select,insert,update,delete
问题:数据库的操作过程
答案:(1)加载驱动程序;(2)建立数据库连接;(3)向数据库发送SQL 语句;(4)事务处理;(5)管理连接。
问题:所知道的排序方法的种类
答案:插入,快速,选择,交换,归并,基数,希尔等。
问题:什么是MVC
答案:这个大家都清楚,可查询有关资料。

1。首先得问题就是让我做自我介绍
答 当然就自己

的大致情况说就行了,在这个过程中 又让我分析自己的性格与优缺点。然后让说明自己的职业规划。这些都是因自己而定了
2。做过的项目 简单介绍一下
答:做过的项目在来软件园之前没有多少机会 只有课程设计的时候做过一个java聊天室的项目,然后来到软件园之后做过jsp的产品支持中心的例子,sruts的固定资产管理的例子,还有hibernate 的例子,(可惜我都忘了竟然忘了那个项目的名字了,就是留言板的那个,刚做完竟然忘了)。随后她又随便问我关于java聊天室是不是自己编协议实现的,当然没有。 随后让我讲一个项目,我就讲了那个关于struts的项目。因为对方不懂struts,我讲也不知道她听懂了没有。
3。问你几个c语言的问题,
char *p;int i;p++与i++的区别?这个大家都知道就是p++是指向下一个元素,p的移动位置与p指针指向的类型有关,i++是自身增加一。差不多就是这样说的。
p保存占多少位? 我开始说与它指向的类型有关,然后她提示我说她不是那个意思,然后我说我感觉是在内存中占16位吧?我是这样说的,其实我也不清楚,c都忘了。
char *p=malloc(100),给p分配了多少个字节的空间?是堆内存还是栈内存?
我回答100个,(但是我忘了是堆还是栈)我认为是堆内存。
4。一个程序编译完成后在内存中是如何存储的??
我说这个没有学过,我把我认为的说了一下,她说她就是随便问问。
5。java有多态性,继承,什么意思?是如何实现的?
(这个我虽然也知道大概 但是好像理解的也不是太深刻,说不太清晰)
答:我就说了前几天老师利用接口与DAOFactory实现的那个例子,她说那抽象类呢,我说不太上来但是也就我理解的说了点。我又扯上了重载,她就问重载是多态吗?我说不是(因为我记得不是),但是可以实现多态。说得很乱
最后就是随便聊了。她问我怎么没有考研,为什么?一个女生为什么学软件?然后问我有没有什么问题,我就问了关于对日外包的事情和关于东软的一些事情。

1.着装:是第一项。
2.英语水平: 问:四级539分?答: 恩。
3.数据库:
问: Sql语句是在sql server 里写的还是在程序里写的?
答: 学数据库的时候,是在sql server里,
也在程序里写。
问:存储过程有没有用过
答:在个人网站里,用到过。
4. 网络:
问: 有没有socket编程的经验。
答: 在大三做过网络五子棋。
5.架构:
问 :三层架构:是什么 ?
正确答案:(web服务器,数据库服务器,应用程序服务器)
6.

编程语言:
问: Java学的怎么样?答:学了一个学期的课程
问:C或C++挑一个你最好的。答 :C++
C++:问:面向对象的特点:解释一下什么继承,多态。
答 :我在回答的时候,是通过一个经典的例子说的。
7. 你的项目经验:
问:是用什么开发的 ? 答:asp
8. 日语基础: 写一下五十音图 ,说一个存在句,说一个判断句,说一个你学过的最复杂的句子。

首先,面试官对整个试卷的成绩做个一个评价。我的编程做了一个 java 和一个 c 语言的。面试官问我这两门语言那一门更熟悉,我说我是 .net 班的,相对来说对 C 语言相对熟悉一些。他接着问我什么时候学的 C 语言,我说大一下学期,他问以后用的多吗?我说:大二以后就不用了,因为 C 的编程环境太单调了,以后我们就用 C++ 代替了 C语言。接着,面试官就以 VC++ 为切入点问我。问题可以分为以下几个:
1、让我谈谈面向对象是怎样理解的?
2、谈谈类、子类的联系和区别。
3、谈谈继承、多态、封装、抽象、重载、虚函数、抽象类。
4、VC++ 中的 MFC 的理解,对 MFC 的理解程度?
???答:我对 MFC? 有一定的了解,因为里面的指针应用太过与复杂,??我只是对里面的几个类如:视图类、文挡类,做了简单的介绍。接着面试官就给我说学 VC? 怎么能不理解 MFC? 呢,他大体的介绍了里面的内容,并嘱咐我接下来的时间一定要抓紧这方面的学习。
5、数据库学的怎么样?学的是什么数据库?
?? 答:我说学的是关系型的数据库,以 SQLSERVER 为主。首先,问我对一条记录有几种操作方式。我回答是:查询、插入、删除、更新。其次、有问了问里面的一些具体关键字的应用,例如:having. in. with check option.等等
6、为什么学习 .net 而不学习 java?
?? 答:我说上个学期,学校开了 C# 对这门语言产生了很浓的兴趣,所以四月份报名的时候就选择的 .net 方向。如果是 java 在先的话,我可能就选择了 java 。接着,面试官说大型的项目都是用 java??开发的,要我以后向这方面靠一靠。
7、为什么选择国内解决方案?对这方面了解多少?对当今软件的发展有什么看法(外包、国内)?
?
???? 大体上就问了这么多,首先是面试管不是我想象中的那么严肃,感觉就好象金澄老师一样,让人感觉就像是自己的大哥在和自己说话,所以整个过程中没有紧张。??
?
每个公司的面试都各不相同,东软面试的问题同样具有一定的深度、广度。
1.final 怎么用?
答:final可以用在定义变量、方法以及类。
final的变量必须要初始化,也可以将初始化的操作推到类的静态块中进

行,而且这样的变量不能再被重新赋值,可以将其看成这个类的“常量”了。
final的方法不能被所在的类的子类重写。
final的类不能再被继承了。
2.那么,finally怎么用?
答:finally适合try、catch块配合使用的。finally一般放一些收尾的代码,也就是说,不管try块中的代码是否正常执行,也不管catch块中的代码是否工作了,finally中的代码都要执行。比如,JDBC或是Hibernate中的关闭连接操作,就是放在finally中执行的。
3.wait方法和sleep方法的区别?
答:他们都是用来堵塞、挂起当前线程的方法,大体上应该是wait方法可以释放原先占有的资源,而 sleep方法好像不能... 在以前的编写的代码中,我几乎没有用过控制线程的操作,这部分知识我确实不敢随便说。
4.Java中,是否有内存泄漏问题?
答:为什么会有“内存泄漏问题”呢,主要是以前的一些编程语言,如C、C++等,因为存在指针变量,而且这些指针是可以进行运算的,所以可能会产生“内存泄漏问题”。对于Java来说,尽管声称废除了指针,但是每个类的实例的引用就是一种“指针”,然而这些引用是不支持运算的,也就不存在内存地址混乱问题,所以应该没有“内存泄漏问题”。
5.Java虚拟机的垃圾回收机制,是否真的不会有问题?
答:一个类的实例,如果长时间不用了,就可能被虚拟机垃圾回收掉。但是具体的被回收的时间的长短、具体什么时刻能被回收是不确定的。一般情况下,如果虚拟机认为当前可以使用的内存空间不多的时候,就会进行垃圾回收。据我现在的知识,认为,虚拟机的垃圾回收机制应该不会产生问题。
6.在平常的代码编写的过程中,有没有测试?一般怎样进行?
答:我平常写代码,也写一些测试程序,一般是使用JUnit,对编写的DAO类进行各种功能操作,如保存、删除、添加等的测试.
(他又补充问道:你这是小部分的测试,我指的是“单元测试”)
我平常写的差不多就是这类的简单测试了,还没有写一个功能强大的、有较大实际使用价值的“单元测试”。
7.你在代码中,都是怎样对待异常情况的?
答:在绝大多数情况下,我都回知道哪些代码可能会抛出异常以及会抛出什么样的异常。所以我也会针对不同类型方面的异常区分对待。我一般会分成几类情况:一类是服务器崩溃等情况,是最严重的异常了,没有什么可以挽救的余地,返回给用户“服务器维护中,暂时无法使用”;一类是数据库操作失败等情况,比如JDBC连接数据库失败、Hibernate正常删除数据失败等,是属于意外情况,严重程度稍微低一些,返回给用户“刚才由于网路不畅,导

致操作失败,请重新操作”,同时,需要回滚的及时回滚;再一类在实现有所准备的、业务操作异常的情况,比如登录密码错误、新用户注册重名现象等等,这些异常都是在意料之中、有所准备的。此时可以返回相关的提示,严重程度相对比较的低。
8.说一下数据库表设置多个外键的事情
答:我以前设计的数据库表,还没用多个外键的情况.从外键的定义上说,一个表设置多个外键是完全可以的,外键对应着相关表的主键,内容只能是对应的主键的值。如果对应的主键发生变化,那么就要按照当时定义外键时制定的规则对外键所在的纪录条进行保留、删除或是更新操作。
9.谈谈对CMM的认识
答:CMM是一种开发的模式,正好我们做的一个项目就是按照CMM3的基本要求做的。因为以前的时候都是采用类似“快速”开发一样的方式,还快就会开始编码,但是CMM3要求每一步都要事先有一份完整的文档,所以一开始,对这种整天只写文档,不写代码的模式不太适应。随着项目的不断进行,才觉着CMM3的这种开发模式有许多的优点和好处。每做一步都有上一步的文档的支持,保证了工作的一致性和完整性。同时,因为是在统一的文档进行的工作,较容易了解的项目的进展情况,便于对项目的监控。
10.别人的进度拖延了,影响到了你的进度,这种事情在实际情况下经常有,你怎么处理?
答:我会直接找到这位(些)同事,了解情况,看看我是否能帮得上忙。如果帮不上,问一下什么时候能够结束,调整一下自己的工作安排,先做其它的一些和他们的进度联系不大的东西。都是自己项目组的同事,应该很好协调。
(如果是,别的项目组的进度影响到你呢?)
如果是别的组的人,自己就不好直接找人家,我会和项目组长说。如果事情紧急,让项目组长带着我,我们一起与那个项目组进行沟通。
... ...
通过东软面试官所提的这些问题可以看出,他们是从知识、能力和意识三个方面对面试者进行考查的。
1. 知识类问题,比如final和finally、wait和sleep等问题,考察的就是基础知识,是什么就是什么,没有可以解释的余地。对于这类的问题,只有靠自己的认真学习,才能答好。
2. 能力类问题,比如内存泄露、垃圾回收、对待异常等问题,能回答的非常完美当然很好,但我们现在的所学能回答准确不好办。所以我认为,这类问题不能简单的回答“是”“不是”“能”“不能”,应该把思考的思路表现给面试官,只要认可了我的思路,也就基本的认可了这方面的能力了。
3. 意识类问题,比如对CMM的认识、工作协调等问题,主要看对某些方面认识有

多深,我认为能结合着自己的经历谈,再加上阐述合理,较容易得到面试官的认可。

1 二叉树,完全二叉树得性质及特点
2 B-树性质及特点
3 https://www.wendangku.net/doc/4a3141769.html,对象
1、在C#中,string str = null 与 string str = “” 请尽量使用文字或图象说明其中的区别。 回答要点:说明详细的空间分配。(10分)
答:string str = null 是不给他分配内存空间,而string str = "" 给它分配长度为空字符串的内存空间.
2、请详述在dotnet中类(class)与结构(struct)的异同:(10分)
答:Class可以被实例化,属于引用类型,是分配在内存的堆上的,Struct属于值类型,是分配在内存的栈上的.
3、根据委托(delegate)的知识,请完成以下用户控件中代码片段的填写:(10)
namespace test
{ public delegate void OnDBOperate();
public class UserControlBase : https://www.wendangku.net/doc/4a3141769.html,erControl
{ public event OnDBOperate 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.Default.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、根据线程安全的相关知识,分析以下代码,当调用test方法时i>10时是否会引起死锁?并简要说明理由。(10分)
public void test(int i)
{??
lock(this)
{
if (i>10)
{
i--;
test(i);
}
}
}
答:不会发生死锁,(但有一点int是按值传递的,所以每次改变的都只是一个副本,因此不会出现死锁。但如果把int换做一个object,那么死锁会发生)
7、分析以下代码。(10)
public static void test(string? ConnectString)
{
System.Data.OleDb.OleDbConnection conn = new System.Data.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)以上代码所使用的异常处理方法,是否所有在test方法内的异常都可以

被捕捉并显示出来?
答:只可以捕捉数据库连接中的异常吧. (finally中,catch中,如果有别的可能引发异常的操作,也应该用try,catch。所以理论上并非所有异常都会被捕捉。)

8、简要谈一下您对微软.NET 构架下remoting和webservice两项技术的理解以及实际中的应用。(10)
答:WS主要是可利用HTTP,穿透防火墙。而Remoting可以利用TCP/IP,二进制传送提高效率。
9、公司要求开发一个继承System.Windows.Forms.ListView类的组件,要求达到以下的特殊功能:点击ListView各列列头时,能按照点击列的每行值进行重排视图中的所有行 (排序的方式如DataGrid相似)。根据您的知识,请简要谈一下您的思路:(10)

答:根据点击的列头,包该列的ID取出,按照该ID排序后,在给绑定到ListView中
10、给定以下XML文件,完成算法流程图。(10)

< DriverC >









请画出遍历所有文件名(FileName)的流程图(请使用递归算法)。

答:
void FindFile( Directory d )
{
??? FileOrFolders = d.GetFileOrFolders();
??? foreach( FileOrFolder fof 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可以连接什么数据源 [dataset,datatable,dataview]
dataset,datatable,dataview , IList
4.概述反射和序列化
反射:程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性
序列化:序列化是将对象转换为容易传输的格式的过程。例如,可以序列化一个对象,然后使用 HTTP 通过 Internet 在客户端和服务器之间传输该对象。在另一端,反序列化将从该流重新构造对象。
5.概述o/r mapping 的原理
利用反射,配置 将类于数据库表映射
6.类成员有( )种可访问形式
可访问形式?不懂。
可访问性:public ,protected ,private,internal
7.用sealed修饰的类有什么特点
sealed 修饰符用于防止从所修饰的类派生出其它类。如果一个密封类被指定为其它类的基类,则会发生编译时错误。
密封类不能同时为抽象

类。
sealed 修饰符主要用于防止非有意的派生,但是它还能促使某些运行时优化。具体说来,由于密封类永远不会有任何派生类,所以对密封类的实例的虚拟函数成员的调用可以转换为非虚拟调用来处理。
8.列举https://www.wendangku.net/doc/4a3141769.html,中的五个主要对象,并简单描述
connection,command,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和struct的异同!
class:放在 ? struct放在?
struct值传递
类与结构有很多相似之处:结构可以实现接口,并且可以具有与类相同的成员类型。然而,结构在几个重要方面不同于类:结构为值类型而不是引用类型,并且结构不支持继承。结构的值存储在“在堆栈上”或“内联”。细心的程序员有时可以通过聪明地使用结构来增强性能。

12.概述.NET里对 remoting 和 webservice 两项技术的理解和实际中的应用。
远程逻辑调用,remoing接口只能用在.net中
13.什么是code-behind技术
aspx and cs
14.概述三层结构体系
web/business/dataaccess

https://www.wendangku.net/doc/4a3141769.html,如何实现MVC模式,举例说明!
web/business/dataaccess

----------------------------------------------------------------------------------------------------------

1.面向对象的思想主要包括什么?
答:这个题范围太广,不知道说什么.
2.什么是https://www.wendangku.net/doc/4a3141769.html,中的用户控件
答:用户控件就是.ascx扩展名的东西喽,可以拖到不同的页面中调用,以节省代码.比如登陆可能在多个页面上有,就可以做成用户控件,但是有一个问题就是用户控件拖到不同级别的目录下后里面的图片等的相对路径会变得不准确,需要自已写方法调整.
3.什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?
答:装箱就是把值类型转成引用类型,从MS IL角度看好像是boxing,没记错的话是把值从堆栈转到堆中.拆箱相反,重载就是指一个方法名同,参数个数不同,返回值可以相同的方法.CLR是通用语言运行时,其它的不清楚.
4.列举一下你所了解的XML技术及其应用
答:XML可是好东西,保存配置,站与站之间的交流,WEB SERVICE都要用它.
5.值类型和引用类型的区别?写出C#的样例代码。
答:结构是值类型,类是引用类型,所以传结构就是值类型的应用啦,传对象或类就是引用类型的,这个不用多写了吧.
https://www.wendangku.net/doc/4a3141769.html,中常用的对象有哪些?分别描述一下。
答:connection command sqladapte

r dataset datatable dataview等等.写不完了.
7.如何理解委托?
答:据说相当于函数指针,定义了委托就可以在不调用原方法名称的情况下调用那个方法.
msdn2005中是这样解释的:

委托具有以下特点:
委托类似于 C++ 函数指针,但它是类型安全的。
委托允许将方法作为参数进行传递。
委托可用于定义回调方法。
委托可以链接在一起;例如,可以对一个事件调用多个方法。
方法不需要与委托签名精确匹配。有关更多信息,请参见协变和逆变。
C# 2.0 版引入了匿名方法的概念,此类方法允许将代码块作为参数传递,以代替单独定义的方法。
8.C#中的接口和类有什么异同。
答:这个异同可多了,要说清楚还真不容易.
9.。net中读写数据库需要用到哪些类?他们的作用
答:这个类自已可以写的啊,你是指基类吗?那configuration,sqlconnection,sqlcommand等都要用到.
10.UDP连接和TCP连接的异同。
答:前者只管传,不管数据到不到,无须建立连接.后者保证传输的数据准确,须要连结.
https://www.wendangku.net/doc/4a3141769.html,的身份验证方式有哪些?分别是什么原理?
答:form认证,windows集成认证等,原理不清楚.
12.进程和线程分别怎么理解?
答:进程是老子,线程是儿子,没有老子就没有儿子,一个老子可以有多个儿子.一个儿子可以成为别人的儿子,一个老子也可以为别的老子生儿子.
13.什么是code-Behind技术。
答:代码分离,这是个明智的东西,像ASP这样混成一堆很不爽.或者可以理解成HTML代码写在前台,C#代码写在后台.当然前台也有脚本,类的调用等,其实写在一起也是可以的.
14.活动目录的作用。
答:这个不明白.请明白的补充一下.
https://www.wendangku.net/doc/4a3141769.html,中读写XML的类都归属于哪些命名空间?
答:System.Xml
我自已写的就不一定了,嘿嘿.
16.解释一下UDDI、WSDL的意义及其作用。
答:什么东西?
17.什么是SOAP,有哪些应用。
答:SOAP(Simple Object Access Protocol )简单对象访问协议是在分散或分布式的环境中交换信息并执行远程过程调用的协议,是一个基于XML的协议。使用SOAP,不用考虑任何特定的传输协议(最常用的还是HTTP协议),可以允许任何类型的对象或代码,在任何平台上,以任何一直语言相互通信。这种相互通信采用的是XML格式的消息,具体请看:https://www.wendangku.net/doc/4a3141769.html,/2521621.htm
在计算机网络中,表征数据传输可靠性的指标是
1. 传输率2. 误码率3. 信息容量4. 频带利用率
Question 2. (单选)
以下关于链式存储结构的叙述中哪一条是不正确的?
1. 结点除自身信息外还包括指针域,因此存储密度小于顺序存储结构
2. 逻辑上相邻的结点物理上不必邻接
 3. 可以通过计算直接确定第i个结点的存储地址
4. 插入、删除运算操作方便,不必移动结点

Question 3. (单选)
以下哪一个不是栈的基本运算
1. 删除栈顶元素
2. 删除栈底元素
3. 判断栈是否为空
4. 将栈置为空栈

Question 4. (单选)

以下关于广义表的叙述中,正确的是
1. 广义表是0个或多个单元素或子表组成的有限序列
2. 广义表至少有一个元素是子表
3. 广义表不可以是自身的子表
4. 广义表不能为空表

Question 5. (单选)

如果一棵二*树结点的前序序列是A、B、C,后序序列是C、B、A,则该二*树结点的对称序序列
1. 必为A、B、C
2. 必为A、C、B
3. 必为B、C、A
4. 不能确定

Question 6. (单选)

在虚拟页式存储管理方案中,下面哪一部分完成将页面调入内存的工作?1. 缺页中断处理
2. 页面淘汰过程
 3. 工作集模型应用
4. 紧缩技术利用

Question 7. (单选)

在DOS系统中,用于记录和管理磁盘数据区使用情况的数据结构
1. 位图表
2. 空闲块表
3. 文件分配表
4. 文件控制块

Question 8. (单选)

设有关系R(S,D,M),其函数依赖集F={S→D,D→M}。则关系R至多满足
1. 1NF
2. 2NF
3. 3NF
4. BCNF

Question 9. (单选)

在数据库逻辑设计中,当将E-R图转换为关系模式时,下面的做法哪一个是不正确的?

1. 一个实体类型转换为一个关系模式

2. 一个联系类型转换为一个关系模式

3. 由实体类型转换成的关系模式的主键是该实体类型的主键

4. 由联系类型转换成的关系模式的属性是与该联系类型相关的诸实体类型的属性的全体

Question 10. (单选)

计算机网络按照所覆盖的地理范围分类,可以分广域网、局域网与

1. TCP/IP网

2. ATM网

3. ISDN

4. 城域网

Question 11. (单选)



计算机网络拓扑结构主要取决于它的

1. 资源子网

2. FDDI网

3. 通信子网

4. 路由器

Question 12. (单选)

网络协议的三个要素是语法、语义与

1. 工作原理

2. 时序

3. 进程

4. 服务原语

Question 13. (单选)

TCP/IP参考模型中,电子邮件协议SMTP依赖于传输层的
 1. UDP协议2. IP协议
3. TCP协议4. 802.2协议
Question 14. (单选)
IEEE802.2协议中10BASE-T标准规定在使用5类双绞线时,从网卡到集线器的最大距离为
1. 100m 2. 185m 3. 300m4. 500m
Question 15. (单选)
100Mbps Fast Ethernet与10Mbps Ethernet 工作原理的相同之处主要在 1. 介质访问控制方法2. 物理层协议
 3. 网络层4. 发送时钟周期
Question 16. (单选)
在Client/Server计算模式中,中间件middleware的作用是隔离应用与
1. 结构化查询语言SQL 2. 应用进程
3. 网络4. IP地址
Question 17. (单选)
当用户向ISP申请Internet帐

户时,用户的E-mail帐户应包括
1. IP地址2. WWW地址3. 用户密码(Password)4. 用户名(User Name)与用户密码(Password)
Question 18. (单选)
WWW的超链接中定位信息所在的位置使用的是
1. 超文本(hypertext)技术
2. 统一资源定位器(URL, Uniform Resource Locators)
3. 超媒体(hypermedia技术)
4. 超文本标注语言HTML
Question 19. (单选)
计算机网络系统与分布式系统之间的区别主要是
1. 系统物理结构
2. 系统高层软件
3. 传输介质类型
4. 服务器类型
Question 20. (单选)
帧中继系统设计的主要目标是用于互连多个1. 广域网2. 电话网
3. 局域网4. 0)ATIM网
Question 21. (单选)
ATM网络采用固定长厦的信元传送数据,信元长度为
1. 1024B 2. 53B 3. 128B 4. 64B
Question 22. (单选)
TCP/IP参考模型中的主机-网络层对应于OSI RM中的
1. 网络层2. 物理层
3. 数据链路层
4. 物理层与数据链路层
Question 23. (单选)
计算机网络最突出的优点是:
1. 计算精度高2. 内存容量大
3. 运算速度快4. 连网的计算机能够相互共享资源
Question 24. (单选)
计算机网络分为局域网、城域网与广域网,其划分的依据是:
1. 数据传输所使用的介质
2. 网络的作用范围
3. 网络的控制方式
4. 网络的拓扑结构
Question 25. (单选)
用二分法查找一个长度为10的、排好序的线性表,查找不成功时,最多需要比较多少次?
1. 5 2. 2 3. 4 4. 1
Question 31. (单选)
根据线程安全的相关知识,分析以下代码,当调用test方法时i>10时是否会引起死锁?
public void test(int i)
{ lock(this)
{ if (i>10)
{ i--; test(i); } } }
1. 会锁死 2. 不会锁死
Question 32. (单选)
以下描述错误的是()
1. 在C++中支持抽象类而在C#中不支持抽象类。
2. C++中可在头文件中声明类的成员而在CPP文件中定义类的成员,在C#中没有头文件并且在同一处声明和定义类的成员。

3. 在C#中可使用 new 修饰符显式隐藏从基类继承的成员。

4. 在C#中要在派生类中重新定义基类的虚函数必须在前面加Override。

Question 33. (单选)

int[][] myArray3=new int[3][]{new int[3]{5,6,2},new int[5]{6,9,7,8,3},new int[2]{3,2}}; myArray3[2][2]的值是()。

1. 9

2. 2

3. 6

4. 越界

Question 34. (单选)

在C#中利用Socket进行网络通信编程的一般步骤是:建立Socket侦听、( )、利用Socket接收和发送数据。

1. 建立Socket连接

2. 获得端口号;

3. 获得IP地址;

4. 获得主机名;

Question 35. (单选)

如果设treeView1=new TreeView(),TreeNode node=new TreeNode("根结点" ),则treeView1.Nodes.Add(node)返回的是一个 ()类型的值。

1. TreeNode;

2. int;

3. string;

4. TreeView;

Question 36

. (单选)

声明一个委托public delegate int myCallBack(int x); 则用该委托产生的回调方法的原型应该是

1. void myCallBack(int x)

2. int receive(int num)

3. string receive(int x)

4. 不确定的

Question 37. (单选)

关于https://www.wendangku.net/doc/4a3141769.html,中的代码隐藏文件的描述正确的是

1. Web窗体页的程序的逻辑由代码组成,这些代码的创建用于与窗体交互。编程逻辑唯一与用户界面不同的文件中。该文件称作为“代码隐藏”文件,如果用C#创建,该文件

2. 项目中所有Web窗体页的代码隐藏文件都被编译成.EXE文件

3. 项目中所有的Web窗体页的代码隐藏文件都被编译成项目动态链接库(.dll)文件

4. 以上都不正确

Question 38. (单选)

What compiler switch creates an xml file from the xml comments in the files in an assembly?

1. /text

2. /doc

3. /xml

4. /help

Question 39. (单选)

下面的代码实现了设计模式中的什么模式

public class A {

private A instance;

private A() {

}

public static A Instance {

get

{

if ( A == null )

A = new A();

return instance;

}

}

}

1. Factory

2. Abstract Factory

3. Singleton

4. Builder

Question 40. (单选)

class Class1

{

public static int Count = 0;

static Class1()

{

Count++;

}

public Class1()

{

Count++;

}

}

Class1 o1 = new Class1();

Class1 o2 = new Class1();

请问,Class1.Count的值是多少?( )

1. 1

2. 2

3. 3

4. 4



Question 26. (单选)

模块内聚度越高,说明模块内各成分彼此结合的程度越

1. 松散

2. 紧密

3. 无法判断

4. 相同

Question 27. (单选)

软件需求分析阶段的输出主要是

1. 需求说明书

2. 开发计划

3. 可行性报告

4. 设计说明书

Question 28. (单选)

以下选项中不是项目经理的职责的是?

1. 需求分析

2. 计划

3. 计划跟踪

4. 质量管理

Question 29. (单选)

单元测试一般在什么时候进行?

1. 编码完成后

2. 系统测试前

3. 测试用例编写完成后

4. 集成测试后

Question 30. (多选)

配置管理能起到以下哪些作用?

1. 版本管理

2. 变更管理

3. 需求管理

4. 测试管理







Question 41. (单选)



abstract class BaseClass

{

public virtual void MethodA()

{

Console.WriteLine("BaseClass");

}

public virtual void MethodB()

{

}



}

class Class1: BaseClass

{

public void MethodA()

{

Console.WriteLine("Class1");

}

public override void MethodB()

{

}

}

class Class2: Class1

{

new public void MethodB()

{

}

}

class MainClass

{

public static void Main(string[] args)

{

Class2 o = new Class2();

o.MethodA();

}

}

请问,此程序输出结果是:

1. BaseClass

2. BassClass Class1

3. Class1

4. Class1 BassClass

Question 42. (单选)

public static void Main(string[] args)

{

int i = 2000;

object o = i;

i = 2001;

int j =(int) o;

Console.WriteLine("i={0},o={1}, j={2}",i,o,j);

}

1. i=2001,o=2000,j=2000

2. i=2001,o=2001,,j=2001

3. i=2000,o=2001,,j=2000

4. i=2001,o=2000,j=2001

Question 43. (多选)

您要创建https://www.wendangku.net/doc/4a3141769.html,应用程序用于运行AllWin公司内部的Web站点,这个应用程序包含了50个页面。您想要配置这个应用程序以便当发生一个HTTP代码错误时它可以显示一个自定义的错误页面给用户。您想要花最小的代价完成这些目标,您应该怎么做?(多选)

1. 在这个应用程序的Global.asax文件中创建一个Application_Error过程去处理https://www.wendangku.net/doc/4a3141769.html,代码错误。

2. 在这个应用程序的Web.config文件中创建一个applicationError节去处理https://www.wendangku.net/doc/4a3141769.html,代码错误。

3. 在这个应用程序的Global.asax文件中创建一个CustomErrors事件去处理HTTP错误。

4. 在这个应用程序的Web.config文件中创建一个CustomErrors节去处理HTTP错误。

Question 44. (单选)

如下程序的运行结果是:

public abstract class A

{

public A()

{

Console.WriteLine('A');

}

public virtual void Fun()

{

Console.WriteLine("A.Fun()");

}

}

public class B: A

{

public B()

{

Console.WriteLine('B');

}

public new void Fun()

{

Console.WriteLine("B.Fun()");

}

public static void Main()

{

A a = new B();

a.Fun();

}

}

1. A B A.Fun()

2. A B B.Fun()

3. B A A.Fun()

4. B A B.Fun()

Question 45. (单选)

Which of these string definitions will prevent escaping on backslashes in C#?*

1. string s = #”n Test string”;

2. string s = “’n Test string”;

3. string s = @”n Test string”;

4. string s = “n Test string”;

Question 46. (单选)

Which of the following operations can you NOT perform on an https://www.wendangku.net/doc/4a3141769.html, DataSet?

1. A DataSet can be synchronised with a RecordSet.

2. A DataSet can be synchronised with the database.

3. A DataSet can be converted to XML.

4. You can infer the schema from a DataSet

Question 47. (单选)

In Object Oriented Programming, how would you describe encap

sulation?

1. The conversion of one type of object to another.

2. The runtime resolution of method calls.

3. The exposition of data.

4. The separation of interface and implementation.

Question 48. (单选)

How does assembly versioning in .NET prevent DLL Hell?

1. The runtime checks to see that only one version of an assembly is on the machine at any one time.

2. .NET allows assemblies to specify the name AND the version of any assemblies they need to run.

3. The compiler offers compile time checking for backward compatibility.

4. It doesn’t.

Question 49. (单选)

三种常用的字符串判空串方法:

1: bool isEmpty = (str.Length == 0);

2: bool isEmpty = (str == String.Empty);

3: bool isEmpty = (str == "");

哪种方法最快?
1. 1 2. 2 3. 3
Question 50. (单选)
public sealed class SampleSingleton1
{private int m_Counter = 0;
private SampleSingleton1()
{ Console.WriteLine(""初始化 SampleSingleton1。"");}
public static readonly SampleSingleton1 Singleton = new SampleSingleton1();
public void Counter()
{m_Counter ++;}}
以上代码实现了设计模式中的哪种模式?
1. 原型2. 抽象工厂3. 单键 4. 生成器
Key 1——10:2 3 2 1 1,1 3 2 4 4
11——20:3 2 3 1 1,1 4 2 2 3
21——30:2 4 4 2 3,2 1 1 1 1234
31——40:2 3 4 4 2,2 1 2 3 3
41——50:3 1 14 1 3,4 4 2 1 3

东:恩?介绍一下你带过的项目,三维漫游对吧?
我:好的。这个项目是基于vc平台,利用openGL和3dmax来开发的。因为这个项目的一开始,我们对openGL并不了解,后来通过上网查资料,请教老师等各种途径逐渐掌握了openGL 的知识。这个项目我们做了两个月,最后的效果虽然有点儿丑,不过我们还是很高兴,因为这毕竟是我们第一个项目,嘿嘿嘿…
东:呵呵… 如何在一个c++文件中包含一个c文件?
我:用#include <>将这个c文件包含进c++文件中去。
东:是这样吗?
我:噢!不是!应该是:首先定义一个.h的头文件,在这个头文件中声明一下这个c文件,然后将这个.h文件用#include <>包含进c++文件中去。
东:是这样吗?你以前这样做过吗?
我:恩,我以前做过,好像是这样子来着,嘿嘿嘿…记不清了
东:好的。在c++中,内联函数是怎么用的?
我:内联函数?我想想……我们用内联函数的大部分情况是因为这个内联函数十分短小,而且我们在包含这个内联函数的函数中要经常用到它。
东:恩?就这些吗?还有没有要补充的?
我:恩,嘿嘿!这c++是我上大二的时候学的,而且已经好长时间不用了,所以有些遗忘。我现在差不多只用java。对不起喔!
东:噢,呵呵!没关系!随便问问。恩,

sleep和wait方法还能想起来吗?有什么区别?
我:(忘了…) 恩,这是线程中的睡眠和等待方法。他们中的一个好像会一直等待,等待被唤醒?Sleep方法是等待好像,和优先级有关系……
东:sleep方法会一直等待吗?
我:不会,sleep方法有一个参数,是毫秒数,就是指定这个线程休眠的时间。
东:恩。Final和finally有什么区别?
我:声明为final的类是一个最终类,声明为final的方法是最终方法,声明为final的变量就是一个常量,在初始化之后就不能在被改变。Finally 一般用在try,catch块后面,不管程序是否抛出异常,finally中的语句都会被执行。
东:恩,那final变量在哪儿初始化呢?
我:一般在声明的同时给它初始化
东:是吗?
我:要不然,就在静态块里给他初始化,
东:……
我:我记不大清了。嘿嘿嘿…
东:(看着我的简历)你成绩那么好,为什么不考研呢?
我:我想更早的投入到工作中去。
东:呵呵……像东软这样的企业,工作很累,你对加班问题有什么看法?
我:加班? 一天工作八个小时,太少了!我们应该把自己更多的时间投入到工作中去,
还那么年轻…
东:哈哈哈…可能刚毕业的人会这样想,等你工作一段时间以后,哈哈哈,你就不会这样想了,呵呵呵…你愿意到东软来工作吗?
我:愿意
东:你对工作地有什么特殊要求吗?
我:(我想起了上次日本创迹给我的教训)没有,工作地在哪儿都无所谓。嘿嘿…
东:呵呵…
我:您在哪儿工作?
东:我在大连。大连很美,和青岛一样美丽。
我:………


1 考不考研?为什么?
2你大学里什么学的比较好?
3数据库中 视图的概念?是不是真实存在的?在物理空间上
??? 不知怎样表达,举了一个小例子。比如青岛大学的教职工和学生的所有信息,从老师的角度去看,只看到老师的,从学生的角度去看
?? 只看到学生的信息。真实存在的,基于基本表
4游标是什么? 指向结果集的,可以滑动。相当于一个指针
5结果集查出来放在哪?物理上??
?? ?放在内存里
6DBMS的概念
?? 数据库自带的的管理自身数据处理事务的工具
7实现表之间数据一致性,怎么做?
?? 触发器
?
8数据仓库
?牺牲物理空间换取查询效率的一种方式


东软面试笔试总结
数据结构见多,,
大题嘛,一般就是树的遍历了。。
:什么是二叉平衡树,什么是树的后序遍历之类的,问我操作系统的分页机制
int *a[10];
int (*a)[10];
//问有什么区别......
? int ? *a[10] ?
? 先找到声明符a,然后向右看,有[]说明a是个数组,再向左看,是int ? *,说明数组中的每个元素是int ? *。所以这是一个存放int指

针的数组。???
? int(*a)[10] ?
? 先找到声明符a,被括号括着,先看括号内的(优先级高),然后向右看,没有,向左看,是*,说明s是个指针,什么指针?在看括号外面的,先向右看,有[]是个数组,说明a是个志向数组的指针,再向左看,是int,说明数组的每个元素是int。所以,这是一个指向存放int的数组的指针。
?#include ? ?
? #include ? ?
? ?
? int ? main(int ? argc, ? char ? *argv[]) ?
? { ?
? ? ? printf("=================================\n"); ?
? ? ? printf("==this ? program ? compare ? pointer ? ==\n"); ?
? ? ? ?
? ? ? int ? arr[3][4]={ ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? {1, ? ? 2, ? ? 3, ? ? 4}, ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? {11, ? 22, ? 33, ? 44}, ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? {111,222,333,444} ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }; ?
? ? ? ?
? ? ? int ? i,j; ?
? ? ? /*a是一个指针变量,指向包含4个元素的一维数组*/ ?
? ? ? int ? (*a)[4]; ?
? ? ? /*b是一个指针数组*/ ?
? ? ? int ? *b[3]; ?
? ? ? printf("size ? of ? (*a)[4] ? =%d\n",sizeof ? a); ?
? ? ? printf("size ? of ? *b[4] ? ? ? =%d\n",sizeof ? b); ? ? ? ?
? ? ? ?
? ? ? a=arr; ?
? ? ? for(i=0;i ? < ? 3; ? i++) ?
? ? ? { ?
? ? ? ? ? printf("\n ? arr[%i] ? =%i",i,arr[i]); ?
? ? ? ? ? printf("\n ? a++ ? ? ? ? =%i",a++); ?
? ? ? } ?
? ? ? printf("\n===================\n"); ?
? ? ? printf("output ? value ? of ? arr[][] ? and ? *( ? *(a+i)+j ? ) ? \n\n"); ?
? ? ? system("PAUSE"); ?
? ? ? a=arr; ?
? ? ? for(i=0;i<3;i++) ?
? ? ? { ?
? ? ? ? ? for(j=0;j<4;j++) ?
? ? ? ? ? { ?
? ? ? ? ? ? ? ? ? printf("\n ? arr[%i][%i] ? ? ? ? =%i",i,j,arr[i][j]); ?
? ? ? ? ? ? ? ? ? printf("\n ? *(a+%i) ? ? ? ? ? ? ? =%i",i, ? ? *(a+i) ? ); ?
? ? ? ? ? ? ? ? ? printf("\n ? *(*(a+%i)+%i) ? ? =%i",i, ? j,*( ? *(a+i)+j ? ) ? ); ?
? ? ? ? ? } ?
? ? ? } ?
? ? ? printf("\n===================\n"); ?
? ? ? printf("now ? output ? value ? of ? b[] ? and ? *b[] ? \n\n"); ?
? ? ? system("PAUSE"); ?
? ? ? ?
? ? ? int ? anotherint_a ? = ? 8888; ?
? ? ? int ? anotherint_b ? = ? 9999; ?
? ? ? /*b为数组指针,每一项可以指向一个整数*/ ?
? ? ? b[0]=arr[0]; ?
? ? ? b[1]=&anotherint_a; ?
? ? ? b[2]=&anotherint_b; ?
? ? ? for(i=0;i<3;i++) ?
? ? ? { ?
? ? ? ? ? printf("\n ? the ? value ? of ? &b[%i] ? ? = ? %i",i,&b[i]); ?
? ? ? ? ? printf("\n ? the ? value ? of ? b[%i] ? ? ? = ? %i",i,b[i]); ?
? ? ? ? ? printf("\n ? the ? value ? of ? *b[%i] ? ? = ? %i",i,*b[i]); ?
? ? ? } ?
? ? ? ?
? ? ? printf("\n\n"); ?
? ? ? system("PAUSE"); ?
? ? ? return ? 0; ?
? }
?
东软面试题
基础知识:1.C++或Java中的异常处理机制的简单原理和应用。
当JAVA程序违反了JAVA的语义规则时,JAVA虚拟机就会将发生的错误表示为一个异常。违反语义规则包括2种情况。一种是JAVA类库内置的语义检查。

例如数组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发NullPointerException.另一种情况就是JAVA允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw关键字引发异常。所有的异常都是https://www.wendangku.net/doc/4a3141769.html,ng.Thowable的子类。
?
2. Java的接口和C++的虚类的相同和不同处。
?
由于Java不支持多继承,而有可能某个类或对象要使用分别在几个类或对象里面的方法或属性,现有的单继承机制就不能满足要求。与继承相比,接口有更高的灵活性,因为接口中没有任何实现代码。当一个类实现了接口以后,该类要实现接口里面所有的方法和属性,并且接口里面的属性在默认状态下面都是public static,所有方法默认情况下是public.一个类可以实现多个接口。
?
3. 垃圾回收的优点和原理。并考虑2种回收机制。
?
Java语言中一个显着的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清楚和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收。
?
4. 请说出你所知道的线程同步的方法。
?
wait():使一个线程处于等待状态,并且释放所持有的对象的lock.
sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常。
notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级。
Allnotity():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。
5. 请讲一讲析构函数和虚函数的用法和作用。
6. Error与Exception有什么区别?
Error表示系统级的错误和程序不必处理的异常,
Exception表示需要捕捉或者需要程序进行处理的异常。
7. 在java中一个类被声明为final类型,表示了什么意思?
表示该类不能被继承,是顶级类。
8. 描述一下你最常用的编程风格。
9. heap和stack有什么区别。
栈是一种线形集合,其添加和删除元素的操作应在同一段完成。栈按照后进先出的方式进行处

理。
堆是栈的一个组成元素?
栈(stack),是限定仅在表尾进行插入或删除操作的线性表,栈的修改是按照后进先出(LIFO)原则进行的,因此栈又称为后进先出线性表。在java中栈驻留于常规RAM(随机访问存储器)区域,可通过“栈指针”获得处理的直接支持。栈指针若向下移,会创建新的内存;若向上移,则会释放那些内存。这是一种特别快、特别有效的数据保存方式,仅次于寄存器。创建程序时,Java编译器必须准确地知道栈内保存的所有数据的“长度”以及“存在时间”。这是由于它必须生成相应的代码,以便向上和向下移动指针。这一限制无疑影响了程序的灵活性,所以尽管有些Java数据要保存在堆栈里,如对象的引用(句柄)、局部变量、形式参数等,但java对象并不放在其中。?
??? 堆(heap),是一种常规用途的内存池(也在RAM区域),其中保存了Java对象。和栈不同之处在于,堆的存储空间是在程序执行过程中动态分配的,编译器不必知道要从堆里分配多少存储空间,也不必知道存储的数据要在堆里停留多长的时间。因此,用堆保存数据时会得到更大的灵活性。要求创建一个对象时,只需用new命令编制相关的代码即可。执行这些代码时,会在堆里自动进行数据的保存。当然,为达到这种灵活性,必然会付出一定的代价:在堆里分配存储空间时会花掉更长的时间!
10. 如果系统要使用超大整数(超过long长度范围),请你设计一个数据结构来存储这种超大型数字以及设计一种算法来实现超大整数加法运算)。
public class BigInt()
{
int[] ArrOne = new ArrOne[1000];
String intString="";
public int[] Arr(String s)
{
intString = s;
for(int i=0;i {
11. 如果要设计一个图形系统,请你设计基本的图形组件(Point,Line,Rectangle,Triangle)的简单实现
12,谈谈final, finally, finalize的区别。 final?修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。
finally?再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。
finalize?方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器

在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其它清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。
13,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
?
匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,由另一个内部类实现。
?
14,Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统)。
Nested Class (一般是C++的说法),Inner Class (一般是JAVA的说法)。Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。具体可见http: //https://www.wendangku.net/doc/4a3141769.html,/articles/services/view.ASP?id=704&page=1
注: 静态内部类(Inner Class)意味着1创建一个static内部类的对象,不需要一个外部类对象,2不能从一个static内部类的一个对象访问一个外部类对象
第四,&和&&的区别。
&是位运算符。&&是布尔逻辑运算符。
15,HashMap和Hashtable的区别。
都属于Map接口的类,实现了将惟一键映射到特定的值上。
HashMap 类没有分类或者排序。它允许一个 null 键和多个 null 值。
Hashtable 类似于 HashMap,但是不允许 null 键和 null 值。它也比 HashMap 慢,因为它是同步的。
16,Collection 和 Collections的区别。
Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。
Collection是个java.util下的接口,它是各种集合结构的父接口。
17,什么时候用assert.
断言是一个包含布尔表达式的语句,在执行这个语句时假定该表达式为 true.如果表达式计算为 false,那么系统会报告一个 Assertionerror.它用于调试目的:
assert(a > 0); // throws an Assertionerror if a <= 0
断言可以有两种形式:
assert Expression1 ;
assert Expression1 : Expression2 ;
Expression1 应该总是产生一个布尔值。
Expression2 可以是得出一个值的任意表达式。这个值用于生成显示更多调试信息的 String 消息。
断言在默认情况下是禁用的。要在编译时启用断言,需要使用 source 1.4 标记:
javac -source 1.4 Test.java
要在运行时启用断言,可使用 -enableassertions 或者 -ea 标记。
要在运行时选择禁用断言,可使用 -da 或者 -disableassertions 标记。
要系统类中启用断言,可使用 -esa 或者 -dsa 标记。还可以在包的基础上启用或者禁用断言。
可以在预计正常情况下不会到达的任何位置上放置断言。断言可以用于验证传递给私有方法的参数。不过,断言不应该用于验证传递给

相关文档