软通动力笔试题合集_第1页
软通动力笔试题合集_第2页
软通动力笔试题合集_第3页
软通动力笔试题合集_第4页
软通动力笔试题合集_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1:在下述选项时,没有构成死循环的程序是A.inti=100while(1){i=i%100+1;if(i>100)break;}B.for(;;);C.intk=1000;do{++k;}while(k>=10000);D.ints=36;while(s);--s;2:设有变量说明语句inta=1,b=0;则执行以下程序段的输出结果为()。switch(a){case1:switch(b){case0:printf("**0**");break;case1:printf("**1**");break;}case2:printf("**2**");break;}printf("\n");A.**0**B.**0****2**C.**0****1****2**D.有语法错误3:Whatcompilerswitchcreatesanxmlfilefromthexmlcommentsinthefilesinanassembly?A./textB./docC./xmlD./help4:如果设treeView1=newTreeView(),TreeNodenode=newTreeNode("根结点"),则treeView1.Nodes.Add(node)返回的是一个()类型的值。A.TreeNodeB.intC.stringD.TreeView5:以下描述错误的是:A.在C++中支持抽象类而在C#中不支持抽象类。B.C++中可在头文件中声明类的成员而在CPPC#中没有头文件并且在同一处声明和定义类的成员。C.在C#中可使用new修饰符显式隐藏从基类继承的成员。D.在C#中要在派生类中重新定义基类的虚函数必须在前面加Override。6:关于ASP.NET中的代码隐藏文件的描述正确的是:A.Web窗体页的程序的逻辑由代码组成,这些代码的创建用于与窗体交互。编程逻辑唯一与用户界面不同的文件中。该文件称作为“代码隐藏”文件,如果用C#创建,该文件B.项目中所有Web窗体页的代码隐藏文件都被编译成.EXE文件C.项目中所有的Web窗体页的代码隐藏文件都被编译成项目动态链接库(.dll)文件D.以上都不正确7:下述程序代码中有语法错误的行是()。inti,ia[10],ib[10];for(i=0;i<=9;i++)ia[i]=0;/*第一行*//*第2行*//*第3行*/ib=ia;/*第4行*/A.第1行B.第2行C.第3行D.第4行8:abstractclassBaseClass{publicvirtualvoidMethodA(){Console.WriteLine("BaseClass");}publicvirtualvoidMethodB(){}}classClass1:BaseClass{publicvoidMethodA(){Console.WriteLine("Class1");}publicoverridevoidMethodB(){}}classClass2:Class1{newpublicvoidMethodB(){}}classMainClass{publicstaticvoidMain(string[]args){Class2o=newClass2();o.MethodA();}}请问,此程序输出结果是:A.BaseClassB.BassClassClass1C.Class1D.Class1BassClass9:publicstaticvoidMain(string[]args){inti=2000;objecto=i;i=2001;intj=(int)o;Console.WriteLine("i={0},o={1},j={2}",i,o,j);}A.i=2001,o=2000,j=2000B.i=2001,o=2001,,j=2001C.i=2000,o=2001,,j=2000D.i=2001,o=2000,j=200110:软件生命周期的瀑布模型把软件项目分为3个阶段、8个子阶段,以下哪一个是正常的开发顺序?A.计划阶段、开发阶段、运行阶段B.设计阶段、开发阶段、编码阶段C.设计阶段、编码阶段、维护阶段D.计划阶段、编码阶段、测试阶段11:如下程序的运行结果是:publicabstractclassA{publicA(){Console.WriteLine(''A'');}publicvirtualvoidFun(){Console.WriteLine("A.Fun()");}}publicclassB:A{publicB(){Console.WriteLine(''B'');}publicnewvoidFun(){Console.WriteLine("B.Fun()");}publicstaticvoidMain(){Aa=newB();a.Fun();}}A.ABA.Fun()B.ABB.Fun()C.BAA.Fun()D.BAB.Fun()12:以下的C程序代码片段运行后C和d的值分别是多少Inta=1,b=2;Intc,d;c=(a&b)&&a;d=(a&&b)&a;A.0,0B.0,1C.1,0D.1,113:声明一个委托publicdelegateintmyCallBack(intx);则用该委托产生的回调方法的原型应该是A.voidmyCallBack(intx)B.intreceive(intnum)C.stringreceive(intx)D.不确定的14:classClass1{publicstaticintCount=0;staticClass1(){Count++;}publicClass1(){Count++;}}Class1o1=newClass1();Class1o2=newClass1();请问,Class1.Count的值是多少?A.1B.2C.3D.415:在软件生命周期中,下列哪个说法是不准确的?A.软件生命周期分为计划、开发和运行三个阶段B.在计划阶段要进行问题焉醛和需求分析C.在开发后期要进行编写代码和软件测试D.在运行阶段主要是进行软件维护简答题16:写一个二叉树的类,包括主要的方法,遍历,比较大小等17:VaryByCustom是如何工作的?18:述面向接口、面向对象、面向方面编程的区别19:用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层?20:如何判别一个数是unsigned。21:假设你有一个用1001道所有的整数都在1到1000(包括1000)之间。此外,除一个数字出现两次外,种方式的算法吗?22:34+56则输出结果90.00。要求运算结果保留两位小数,用户输入时一次将两个数和操作符输入。23:几种判断空字符串的方法和特点24:简述活动目录概念和作用25:用css控制一个html标签test的字体的大小,如果想让此标签在页面中隐藏的方法Struts的运行机制:Web应用初始化时,控制器加载分析配置文件(struts-config.xmlActionMapping,配置应用程序1.ActionServlet接收用户请求2.ActionServlet根据应用程序配置填充ActionForm3.ActionServlet根据ActionMapping调用Action的execute方法4.Action调用业务逻辑类(ModelAction的execute方法中执行业务处理5.业务逻辑类将处理结果返回给Action,Action将处理结果保存在适当的作用域范围之内(session、request等)6.Action的execute方法向ActionServlet返回ActionForward指明下一步调用的Action或JSP视图7.JSP视图取得保存在作用域之中的业务处理结果并负责显示HTML页面大家最好用自己的话来总结出来!常用的集合以及介绍:(应重点复习)常用集合set、map、listset、map是collection接口的子接口set接口的实现类:HashSet、TreeSetList接口的实现类:ArrayList、linkedListMap接口的实现类:HashMap、、Hashtable。ArrayList和linkedList的区别略)HashMap、HashTable区别略)遍历map的方法:使用Map接口提供的方法entrySet();importjava.util.HashMap;importjava.util.Iterator;importjava.util.Map;publicclassMapTest{publicstaticvoidmain(String[]args){Map<Object,Object>map=newHashMap<Object,Object>();map.put("a",中国");map.put("b","ABC");map.put("c",1000);/*for(Iterator<Entry<Object,Object>>map.entrySet().iterator();it.hasNext();){Entry<Object,Object>entry=it.next();System.out.println(entry);it=System.out.println(entry.getKey());System.out.println(entry.getValue());}*/for(Iterator<Object>it=map.keySet().iterator();it.hasNext();){Objectkey=it.next();System.out.println(key);Objectvalue=map.get(key);System.out.println(value);}}}4.字符串相加用“”和append()的区别abc”之后要加,加过之后内存中会有abc、”abcde两个字符串!但”abc会失去原本指向它的引用变成垃圾回收机制回收的对象!只是将字符串追加到原字符串的尾部,始终都是一个对象!5.垃圾回收机制原理:当一个对象赋值为null或者没有指引指向他的时候,那么这个对象就符合垃圾回收机制回收的范围,java虚拟机会不定时的对垃圾进行回收,回收对象之前会调用被回收对象的finalize()方法!注意Java虚拟机何时来回收垃圾不确定!6.如何实现多线程:继承Thread类或者实现Runnable接口那种好处多:因为java是单继承所以一般会采用实现Runnable接口两种实现方式的区别:继承Thread类可以创建本类对象直接调用方法运行线程(也就是说本类对象就是一个线程个人理解)实现Runnable接口必须用Threadthread=new来获得一个线程!7.代码的重构:代码的输入、输出不变,只是改变中间实现代码!8.MVC思想是modelviewcontroller的缩写,model代表业务逻辑通过javabeanEJB组建实现view是应用表示面由jsp页面产生controller是提供应用处理过程的控制一般是一个servlet)。通过这种设计模式把应用逻辑、处理过程、显示逻辑分成不同的组件实现,可提高组件的交互和重用性。9.struts1和struts2的区别(见最后一页)10:讲解一下Spring11:hibernate是怎么工作的原理:1.读取并解析配置文件2.读取并解析映射信息,创建SessionFactory3.打开Sesssion4.创建事务Transation5.持久化操作6.提交事务7.关闭Session8.关闭SesstionFactory12:hibernate的一级和二级缓存是什么Hibernate提供了两级缓存,第一级是Session的缓存。由于Session对象的生缓存。第一级缓存是必需的,Session的缓存是内置的,不能被卸载。第二级缓存是一个可插拔的的缓存插件,它是由SessionFactory负责管理。由于SessionFactory对象的生命周期和应用程序的整个过程对应,因此第二级缓存是第二级缓存。当Hibernate根据ID访问数据对象的时候,首先从Session一级缓存中查;查不到,如果配置了二级缓存,那么从二级缓存中查;查不到,再查询数据库,把结果按照ID放入到缓存。13:hibernate的连接池14:怎么接收dwr返回的数组或集合15:怎么读取一个文本文件(流)16:javascript中这么去掉字符串的空格17:用ajax的时候怎么运行后台返回的javascript代码18:存储过程是用来干什么的19:怎么终止一个线程抛出异常和等待run()方法结束。20.悲观锁和乐观锁?21.Oracle中实现序列用什么关键字?Sequence22.数据库中有哪些函数?23.解析XML的方法?DOM解析和SAX解析DOM:处理大型文件时其性能下降的非常厉害。这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问SAX:不现于DOM,SAX是事件驱动型的XMLXML文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问24.用递归法求n的阶乘?25.Orcale中左右连接用“”怎样连接Oracle数据库左连接“”在右边,右连接“+”在左边。26.Equals方法和的区别。equals()方法是用来比较两个字符串值是否相等而==是用来比较对象引用是否相等也就是是否为同一个对象)27.线程池的问题。的,那就是为了提高对象的使用率,从而达到提高程序效率的目的。比如对于Servlet,它被设计为多线程的(如果它是单线程的,你就可以想象,当1000个人同时请求一个网页时,在第一个人获得请求结果之前,其它999个人都在郁系统就会在创建线程和销毁线程上耗费很大的开销,大大降低系统的效率。因此,Servlet对象,从而达到提高程序的效率的目的。28.struts1的一些配置问题web.xml和struts-config.xml中的一些配置。29.JavaScript的一个操作流程。30.一些简单的sql语句,比如说现在数据库中有10记录,要求你写一个语句保留第二条和第五条记录,将其他的记录全部删除。31.存储过程、触发器32.Throw和Throws的区别throwthrows用来标明一个成员函数可能抛出的各种“异常”33.在异常捕获时try,catch,finally中可不可以没有catch语句块。trycatch或者34.面向对象有哪些特征,你如何理解?抽象、继承、封装、多态35.什么是多线程?线程的状态有那几个?创建线程的方法?启动线程用什么方法?线程同步包括的方法?答:多线程是为了同步完成多项任务,不是为了提高运行效率,而是为了提高资源使用效率来提高系统的效率。线程是在同一时间需要完成多项任务的时候实现的。线程状态有:就绪、运行、挂起、结束。启动线程用start()线程睡眠sleep()yield()、等待其他线程结束join()等。36.、stringBuffer、StringBuilder的区别37.垃圾回收机制的原理?final,finally,finalize的区别?38.内存的泄露以及溢出是怎么回事?内存溢出就是你要求分配的java满足需求,于是产生溢出。内存泄漏是指你向系统申请分配内存进行使用(new),可是使用完了以后却不归还(delete),结果你申请到的那块内存你自己也不能再访问,该块已分配出多,系统也不能再次将它分配给需要的程序,产生泄露。一直下去,程序也逐渐无内存使用,就会溢出。39.数据库连接池的原理?数据库连接池的基本思想就是为数据库连接建立一个“缓冲池”。预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从缓冲池”中取出一个,使用完毕之后再放回去。我们可以通过设定连接池最大连接数供依据。40.数组和链表的区别?栈以及队列的特点以及区别?数组处理一组数据类型相同的数据,但不允许动态定义数组的大小,即在使用数组之前必须确定数组的大小。而在实际应用中,用户使用数组之前有时无法准确确定数组的大小,只能将数组定义成足够大小,这样数组中有些空间可能不被使用,从而造成内存空间的浪费。要时可以用new分配内存空间,不需要时用delete将已分配的空间释放,不会造成内存空间的浪费。数组中的数据在内存中的按顺序存储的,而链表是随机存储的!要访问数组中的元素可以按下标索引来访问,速度比较快,如果对他进行插入操作的话,就得移动很多元素,所以对数组进行插入操作效率很低!由于连表是随机存储的,链表在插入,删除操作上有很高的效率(相对到找到所需要的元素为止,所以链表的随机访问的效率就比数组要低41.递归的算法?比如阶乘和fif数列的实现。常用的一些算法,如冒泡,二分查找,折半查找,选择排序等等42.java中多态是如何实现的?重载和覆盖的区别?注意代码的重构不是重载!43.接口和抽象类的区别?44.jsp和servlet的区别?jsp的内置对象?jsp的标准动作?jsp的页面元素有哪些?四种会话跟踪技术是什么?servlet是不是线程安全的?servlet生命周期?动态include和静态include区别?重定向和请求转发的区别?servlet中如何从页面获取参数?jsp的四种作用于范围是什么?Jsp是Servlet的技术扩展,本质上是Servlet的简易方式,Jsp侧重于视图而Servlet侧重于控制业务逻辑。Jsp内置对象九个:requestresponseoutsessionapplicationpagecantext、、config、Exception会话跟踪技术:session、cookie、重写url、隐藏表单域Jsp标准动作:、setProperty、、forward、include不是,servletservice个实例可以服务于多个请求,并且其实例一般不会销毁,所以你的项目中如果只有一个servlet,那么web容器就只会创建一个实例通过request.getParameter()来获取页面参数作用域范围由小到大:、request、session、application47.jstl的包括哪些标签库?如何实现迭代?I18N与国际化标签、SQL标签、XML标签、function标签使用迭代标签forEach来遍历48.过滤器的原理?过滤器的生命周期?监听器的原理49.hibernate的映射原理?hibernate的查询方式有哪些?关联关系的映射怎么理解?三种查询方式:、条件查询、原生SQL查询,命名、50.oracle和sqlserver区别?如何优化oracle数据库?oracle的一些常用系统函数?Oracle跨平台,SqlServer只能运行在window平台上。51.为什么要用索引?索引的分类?视图是什么?度。聚集索引和非聚集索引(SQLServer)标准索引、组合索引、唯一索引、反向索引、位图索引(Oracle)中派生出来的对象。52.存储过程你是怎么理解的?如何实现?答:我感觉存储过程就像java中的方法一样,输入参数就是方法传的参数,而输出参数就像方法的返回值一样。Java中通过CallAbleStatement接口实现了对存储过程的调用。53.触发器、游标的一些基本知识!54.oracle数据库的一些特殊之处如簇、序列等如何理解簇是用来存储表的方法这些表互相联系密切并通常相连在磁盘的相同区域上,共享同一列的一组表,用于检索时提高效率oracle中没有sqlserver中的标识列,只能通过创建序列来实现这一功能。55.权限的问题如何解决?56.Ajax的javaScript代码如何实现?Ajax的一些框架?57.单例模式和工厂模式如何实现?publicclassCar{privateCar(){}//私有的构造方法使别的类不能通过new来创建本类是类只能通过我们下面的方法来获得对象privatestaticCarbaoma=newCar();//静态类类型的变量保证对象只有一个publicstaticCargetCar(){//注意方法定义为静态的再别的类中就可以用本类类名来调用此方法得到本类对象returnbaoma;}}单列模式使本类对象只有一个,只能通过方法调用来获得对象,而且无论你掉用多少次方法,得到的都是一个实例。58.类的加载顺序父类静态块>子类的静态块>程序的入口(main)>父类的初始化块>父类的构造方法>子类的初始化块>子类的构造方法59.如何处理数据库差异比如用户刚开始使要求用SqlServer之后需求改变要使用Oracle:a)使用hibernate只需要改变方言即可b)使用sql标准语句60.Session和cookie的区别61.一个抽象类是否可以继承一个普通类可以,但被继承的类必须要有明确的构造方法62.什么时候用接口?抽象类?当你写一个类时,可能面临部分代码可能会发生变化你可以把这些代码封装成(接口或抽象类或基础类中的)一个或多个方法1、如果所有抽象出的方法不确定性很高,就定义为接口来封装,所有方法抽象,由实现类全部实现2、如果部分抽象出的方法不确定性很高,就定义为抽象类来封装,能确定的3、如果所有抽象出的方法确定性很高,就定义为基础类,所有方法提供基本实现,由子类去重写(不变就不用写子类啦)63.函数和存储过程的区别1.一般来说,存储过程实现的功能要复杂一点,而函数的实现的功能针对性比较强。2.对于存储过程来说可以返回参数,而函数只能返回值或者表对象。3.存储过程一般是作为一个独立的部分来执行,而函数可以作为查询语句的一个部分来调用,由于函数可以返回一个表对象,因此它可以在查询语句中位于FROM关键字的后面。4.当存储过程和函数被执行的时候,SQLManager会到procedurecache中去取相应的查询语句,如果在procedurecache里没有相应的查询语句,SQLManager就会对存储过程和函数进行编译。Procedurecache中保存的是执行计划(executionplan),当编译好之后就执行procedurecache中的executionplanSQLSERVER会根据每个executionplan的实际情况来考虑是否要在cache中保存这个,评判的标准一个是这个executionplan可能被使用的频率;其次是生成这个plan的代价,也就是编译的耗时。保存在cache中的plan在下次执行时就不用再编译了。Struts1和struts2比较:Action类Struts1要求Action类要扩展自一个抽象基类。Struts1的一个共有的问题是面向抽象类编程而不是面向接口编程。Struts2的Action类实现了一个Action接口,连同其他接口一起实现可选择和自定义的服务。Struts2提供一个名叫ActionSupport的基类实现一般使用的接口。虽然,Action接口不是必须的。任何使用execute方法的POJO对象可以被当作Struts2的Action对象使用。程模型Struts1Action类是单例类,因只有一个示例控制所有的请求。单例类策略造成了一定的限制且给开发带来了额外的烦恼。Action资源必须是程安全或者同步的。Struts2Action对象每一个请求都实例化对象,所以没有程安全的问题。(实践中,servlet容器生许多丢的对象对于每一个请求,多于一个的对象并不影响垃圾收集)Servlet依赖Struts1的Action类依赖于servletAPI以HttpServletRequest和HttpServletResponse作参数传给execute方法当Action被调用时。Struts2的Action不和容器有关。Servlet上下文被表现简单的Maps,允许ActionStruts2的Action可以访问最初的请求和相应,如果需要的话。然而,其他的架构元素少或者排除直接访问HttpServletRequest或者HttpServletResponse的需要。易测性测试Struts1的主要障碍是execute方法暴露了ServletAPI。第三方的扩展,Struts测试用例,提供Struts1的集合对象。Struts2的Action可以通过实例化Action测试,设置属性,然后调用方法。依赖注入的支持也是测试变得更简单。接受输入Struts1使用ActionForm对象捕获输入。象Action一样,所有的ActionFormJavaBean不能作ActionForm余的类捕获输入。DynaBeans可以被用来作替代ActionForm的类创建。但是开发者可以重新描述已经存在的JavaBean。Struts2Action属性作输入属性,排除第二个输入对象的需要。输入属性可能有丰富的对象类型这些类型有他们自己的属性。Action的属性可以通过标签库访问。Struts2也支持ActionForm形式。丰富的对象类型,包含业务或者

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论