东软笔试.docx
- 文档编号:1735006
- 上传时间:2023-05-01
- 格式:DOCX
- 页数:72
- 大小:64.28KB
东软笔试.docx
《东软笔试.docx》由会员分享,可在线阅读,更多相关《东软笔试.docx(72页珍藏版)》请在冰点文库上搜索。
东软笔试
东软面试试题汇总
1堆和栈那个是对程序员透明的?
答案:
栈。
2请结合具体实例阐述一下面向对象中"多态"的概念。
答案:
同一操作用于不同的类的实例,不同的类将进行不同的解释,最后产生不同的结果,它有两种:
→编译时多态----通过overload来实现,系统在编译时,根据传递的参数和返回的类型等信息决定实现何种操作
→运行时多态----通过override来实现,根据运行时具体对象的类型决定调用哪个方法。
给我面试的人很有亲和力,我没有感到有压力。
首先是自我介绍;他根据你自己介绍的情况来问你问题,我主要是说得现在正在做的青软实训内部管理系统。
你在项目组里主要负责什么?
是怎么做的?
主要负责页面前台展示,我现在设计页面框架,用的Struts-tile;把页面分为4部分,sidebar,header,footer,context;然后把sidebar,header,footer这些每个页面都要用的写成一个整体,放在配置文件中,每个页面都引用他,这样就不用变了。
变得就是context部分。
另外在sidebar里面,用javascript来实现导航栏的弹出功能。
用什么方法可以检测一个环行链表?
首先可以在data里面初始化一个数据,然后向下循环,可以找到这条数据的话,就是环行链表,否则就不是;
但这个链表不一定是完全的链表,里面可能有分支,该怎么检测?
设置一个循环,条件设为true,如果可以结束就不是,不能结束里面就有环。
那这样的话怎么让他跳出循环呢?
我也不知道,那请教一下吧。
你看看如果next引用如果相同的话是不是就是环行链表?
对,是
那你想个办法来实现他吧。
把这个next引用,写进一个list,以后都把next引用和list里面的内容进行比较,如果有相同的就是环,没有就不是。
但如果链表很大,而你做的是嵌入式项目,有内存溢出,该怎么检测呢?
呵呵,我想不出来了。
1.
2.自我介绍,(注自我介绍中的自我经历可能会成为他的考点)
3.我在自我介绍中说了我参加过数学建模,他问了我我们建的什么模型,我给他介绍了一下。
主要考点是你的思路问题。
4.单链表若最后一个节点指向前面的某个节点,请问怎么检测出现了环?
主要是考察你对问题有无解决方案,不对也无所谓,最后他一定会把你难倒。
怎么也要说上几句,不说那就over了。
5.Final和finally的区别?
6.Java的垃圾回收机制?
45两题应该都会,我就不说了。
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,把他引向了这个方向,或者是我回答的太快了,时间太紧了。
就这些。
东软面试总结:
1.问题:
栈和队列的主要区别
答案:
栈----------后进先出;
队列--------先进先出。
2.问题:
完全二叉树的结构
答案:
深度为k,有n个节点的二叉树,当且仅当其每一个节点都与深度为k的满二叉树中编号从1至n的结点一一对应时,称之为完全二叉树。
当初面试人员画了几个树让我辨认谁是完全二叉树。
3.问题:
什么是索引
答案:
索引依附于基表,建立索引是加快查询的有效手段。
4.问题:
什么是视图
答案:
视图是关系数据库系统提供给用户以多角度观察数据库中数据的重要机制。
是从一个或多个基表(或视图)导出的表,它与基本表不同,是虚表。
5.问题:
什么是游标
答案:
游标是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果,每个游标区都有一个名字。
用户可以通过游标逐一获取记录,并赋给主变量,交由主语言进一步处理。
6.问题:
对数据库操作的语句
答案:
select,insert,update,delete
7.问题:
数据库的操作过程
答案:
(1)加载驱动程序;
(2)建立数据库连接;(3)向数据库发送SQL语句;(4)事务处理;(5)管理连接。
8.问题:
所知道的排序方法的种类
答案:
插入,快速,选择,交换,归并,基数,希尔等。
9.问题:
什么是MVC
答案:
这个大家都清楚,可查询有关资料。
1。
首先得问题就是让我做自我介绍
答当然就自己的大致情况说就行了,在这个过程中又让我分析自己的性格与优缺点。
然后让说明自己的职业规划。
这些都是因自己而定了
2。
做过的项目简单介绍一下
答:
做过的项目在来软件园之前没有多少机会只有课程设计的时候做过一个java聊天室的项目,然后来到软件园之后做过jsp的产品支持中心的例子,sruts的固定资产管理的例子,还有hibernate的例子,(可惜我都忘了竟然忘了那个项目的名字了,就是留言板的那个,刚做完竟然忘了)。
随后她又随便问我关于java聊天室是不是自己编协议实现的,当然没有。
随后让我讲一个项目,我就讲了那个关于struts的项目。
因为对方不懂struts,我讲也不知道她听懂了没有。
3。
问你几个c语言的问题,
char*p;inti;p++与i++的区别?
这个大家都知道就是p++是指向下一个元素,p的移动位置与p指针指向的类型有关,i++是自身增加一。
差不多就是这样说的。
p保存占多少位?
我开始说与它指向的类型有关,然后她提示我说她不是那个意思,然后我说我感觉是在内存中占16位吧?
我是这样说的,其实我也不清楚,c都忘了。
char*p=malloc(100),给p分配了多少个字节的空间?
是堆内存还是栈内存?
我回答100个,(但是我忘了是堆还是栈)我认为是堆内存。
4。
一个程序编译完成后在内存中是如何存储的?
?
我说这个没有学过,我把我认为的说了一下,她说她就是随便问问。
5。
java有多态性,继承,什么意思?
是如何实现的?
(这个我虽然也知道大概但是好像理解的也不是太深刻,说不太清晰)
答:
我就说了前几天老师利用接口与DAOFactory实现的那个例子,她说那抽象类呢,我说不太上来但是也就我理解的说了点。
我又扯上了重载,她就问重载是多态吗?
我说不是(因为我记得不是),但是可以实现多态。
说得很乱
7.最后就是随便聊了。
她问我怎么没有考研,为什么?
一个女生为什么学软件?
然后问我有没有什么问题,我就问了关于对日外包的事情和关于东软的一些事情。
1.着装:
是第一项。
2.英语水平:
问:
四级539分?
答:
恩。
3.数据库:
问:
Sql语句是在sqlserver里写的还是在程序里写的?
答:
学数据库的时候,是在sqlserver里,
也在程序里写。
问:
存储过程有没有用过
答:
在个人网站里,用到过。
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.withcheckoption.等等
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二叉树,完全二叉树得性质及特点
2B-树性质及特点
3ADO.NET对象
1、在C#中,stringstr=null与stringstr=“”请尽量使用文字或图象说明其中的区别。
回答要点:
说明详细的空间分配。
(10分)
答:
stringstr=null是不给他分配内存空间,而stringstr=""给它分配长度为空字符串的内存空间.
2、请详述在dotnet中类(class)与结构(struct)的异同:
(10分)
答:
Class可以被实例化,属于引用类型,是分配在内存的堆上的,Struct属于值类型,是分配在内存的栈上的.
3、根据委托(delegate)的知识,请完成以下用户控件中代码片段的填写:
(10)
namespacetest
{publicdelegatevoidOnDBOperate();
publicclassUserControlBase:
System.Windows.Forms.UserControl
{publiceventOnDBOperateOnNew;
privatevoidtoolBar_ButtonClick(objectsender,System.Windows.Forms.ToolBarButtonClickEventArgse)
{if(e.Button.Equals(BtnNew))
{
//请在以下补齐代码用来调用OnDBOperate委托签名的OnNew事件。
}
}
}答:
if(OnNew!
=null)
OnNew(this,e);
4、分析以下代码,完成填空(10分)
stringstrTmp="abcdefg某某某";
inti=System.Text.Encoding.Default.GetBytes(strTmp).Length;
intj=strTmp.Length;
以上代码执行完后,i= j=
答:
i=13,j=10
5、SQLSERVER服务器中,给定表table1中有两个字段ID、LastUpdateDate,ID表示更新的事务号,LastUpdateDate表示更新时的服务器时间,请使用一句SQL语句获得最后更新的事务号。
(10)
答:
SELECTID
FROMtable1
WHERELastUpdateDate=(SELECTMAX(LastUpdateDate)FROMtable1)
6、根据线程安全的相关知识,分析以下代码,当调用test方法时i>10时是否会引起死锁?
并简要说明理由。
(10分)
publicvoidtest(inti)
{
lock(this)
{
if(i>10)
{
i--;
test(i);
}
}
}
答:
不会发生死锁,(但有一点int是按值传递的,所以每次改变的都只是一个副本,因此不会出现死锁。
但如果把int换做一个object,那么死锁会发生)
7、分析以下代码。
(10)
publicstaticvoidtest(string ConnectString)
{
System.Data.OleDb.OleDbConnectionconn=newSystem.Data.OleDb.OleDbConnection();
conn.ConnectionString=ConnectString;
try
{
conn.Open();
…….
}catch(ExceptionEx)
{
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)
请画出遍历所有文件名(FileName)的流程图(请使用递归算法)。
答:
voidFindFile(Directoryd)
{
FileOrFolders=d.GetFileOrFolders();
foreach(FileOrFolderfofinFileOrFolders)
{
if(fofisFile)
YouFoundafile;
elseif(fofisDirectory)
FindFile(fof);
}
}
1.new有几种用法
第一种:
newClass();
第二种:
覆盖方法
publicnewXXXX(){}
第三种:
new约束指定泛型类声明中的任何类型参数都必须有公共的无参数构造函数。
2.如何把一个array复制到arrayList里
foreach(objectoinarray)arrayList.Add(o);
3.datagrid.datasouse可以连接什么数据源[dataset,datatable,dataview]
dataset,datatable,dataview,IList
4.概述反射和序列化
反射:
程序集包含模块,而模块包含类型,类型又包含成员。
反射则提供了封装程序集、模块和类型的对象。
您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。
然后,可以调用类型的方法或访问其字段和属性
序列化:
序列化是将对象转换
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 笔试