软通动力笔试题合集.docx
- 文档编号:6829874
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:24
- 大小:34.02KB
软通动力笔试题合集.docx
《软通动力笔试题合集.docx》由会员分享,可在线阅读,更多相关《软通动力笔试题合集.docx(24页珍藏版)》请在冰豆网上搜索。
软通动力笔试题合集
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./text
B./doc
C./xml
D./help
4:
如果设treeView1=newTreeView(),TreeNodenode=newTreeNode("根结点"),则treeView1.Nodes.Add(node)返回的是一个()类型的值。
A.TreeNode
B.int
C.string
D.TreeView
5:
以下描述错误的是:
A.在C++中支持抽象类而在C#中不支持抽象类。
B.C++中可在头文件中声明类的成员而在CPP文件中定义类的成员,在C#中没有头文件并且在同一处声明和定义类的成员。
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++) /*第2行*/
ia[i]=0; /*第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.BaseClass
B.BassClassClass1
C.Class1
D.Class1BassClass
9:
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=2000
B.i=2001,o=2001,,j=2001
C.i=2000,o=2001,,j=2000
D.i=2001,o=2000,j=2001
10:
软件生命周期的瀑布模型把软件项目分为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,0
B.0,1
C.1,0
D.1,1
13:
声明一个委托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.1
B.2
C.3
D.4
15:
在软件生命周期中,下列哪个说法是不准确的?
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
的字体的大小,如果想让此标签在页面中隐藏的方法
第二套:
1.Struts的运行机制:
Web应用初始化时,控制器加载分析配置文件(struts-config.xml),获得ActionMapping,配置应用程序
1.ActionServlet接收用户请求
2.ActionServlet根据应用程序配置填充ActionForm
3.ActionServlet根据ActionMapping调用Action的execute方法
4.Action调用业务逻辑类(Model),在简单的程序中也可以在Action的execute方法中执行业务处理
5.业务逻辑类将处理结果返回给Action,Action将处理结果保存在适当的作用域范围之内(session、request等)
6.Action的execute方法向ActionServlet返回ActionForward指明下一步调用的Action或JSP视图
7.JSP视图取得保存在作用域之中的业务处理结果并负责显示HTML页面
大家最好用自己的话来总结出来!
2.常用的集合以及介绍:
(应重点复习)
常用集合set、map、list
set、map是collection接口的子接口
set接口的实现类:
HashSet、TreeSet
List接口的实现类:
ArrayList、linkedList
Map接口的实现类:
HashMap、TreeMap、Hashtable。
ArrayList和linkedList的区别(略)
HashMap、HashTable区别(略)
3.遍历map的方法:
使用Map接口提供的方法entrySet();
importjava.util.HashMap;
importjava.util.Iterator;
importjava.util.Map;
publicclassMapTest{
publicstaticvoidmain(String[]args){
Map
map.put("a","中国");
map.put("b","ABC");
map.put("c",1000);
/*for(Iterator
Entry
System.out.println(entry);
System.out.println(entry.getKey());
System.out.println(entry.getValue());
}*/
for(Iterator
Objectkey=it.next();
System.out.println(key);
Objectvalue=map.get(key);
System.out.println(value);
}
}
}
4.字符串相加用“+”和append()的区别
用“+“号每加一次创建一个对象,比如:
字符串常量池中有原字符串:
”abc”
之后要加”de”,加过之后内存中会有”abc”、”abcde”两个字符串!
但”abc”会失去原本指向它的引用变成垃圾回收机制回收的对象!
Append()只是将字符串追加到原字符串的尾部,始终都是一个对象!
5.垃圾回收机制原理:
当一个对象赋值为null或者没有指引指向他的时候,那么这个对象就符合垃圾回收机制回收的范围,java虚拟机会不定时的对垃圾进行回收,回收对象之前会调用被回收对象的finalize()方法!
注意Java虚拟机何时来回收垃圾不确定!
6.如何实现多线程:
继承Thread类或者实现Runnable接口
那种好处多:
因为java是单继承所以一般会采用实现Runnable接口
两种实现方式的区别:
继承Thread类可以创建本类对象直接调用start()方法运行线程(也就是说本类对象就是一个线程个人理解)
实现Runnable接口必须用Threadthread=newThread()来获得一个线程!
7.代码的重构:
代码的输入、输出不变,只是改变中间实现代码!
8.MVC思想
是model、view、controller的缩写,model代表业务逻辑(通过javabean、EJB组建实现)、view是应用表示面(由jsp页面产生)、controller是提供应用处理过程的控制(一般是一个servlet)。
通过这种设计模式把应用逻辑、处理过程、显示逻辑分成不同的组件实现,可提高组件的交互和重用性。
9.struts1和struts2的区别(见最后一页)
10:
讲解一下Spring
11:
hibernate是怎么工作的
原理:
1.读取并解析配置文件
2.读取并解析映射信息,创建SessionFactory
3.打开Sesssion
4.创建事务Transation
5.持久化操作
6.提交事务
7.关闭Session
8.关闭SesstionFactory
12:
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中实现序列用什么关键字?
Sequence
22.数据库中有哪些函数?
23.解析XML的方法?
DOM解析和SAX解析
DOM:
处理大型文件时其性能下降的非常厉害。
这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问
SAX:
不现于DOM,SAX是事件驱动型的XML解析方式。
它顺序读取XML文件,不需要一次全部装载整个文件。
当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理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的区别
throw语句用来明确地抛出一个“异常”。
throws用来标明一个成员函数可能抛出的各种“异常”
33.在异常捕获时try,catch,finally中可不可以没有catch语句块。
可以,但try块不能单独执行,后面必须跟catch或者finally、或者两者都有。
34.面向对象有哪些特征,你如何理解?
抽象、继承、封装、多态
35.什么是多线程?
线程的状态有那几个?
创建线程的方法?
启动线程用什么方法?
线程同步包括的方法?
答:
多线程是为了同步完成多项任务,不是为了提高运行效率,而是为了提高资源使用效率来提高系统的效率。
线程是在同一时间需要完成多项任务的时候实现的。
线程状态有:
就绪、运行、挂起、结束。
启动线程用start()方法。
线程同步包含的方法:
线程睡眠sleep()、线程让步:
yield()、等待其他线程结束join()等。
36.String、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内置对象九个:
request、response、out、session、application、pagecantext、page、config、Exception
会话跟踪技术:
session、cookie、重写url、隐藏表单域
Jsp标准动作:
usebean、setProperty、getProperty、forward、include
不是,servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,所以你的项目中如果只有一个servlet,那么web容器就只会创建一个实例
通过request.getParameter()来获取页面参数
作用域范围由小到大:
page、request、session、application
47.jstl的包括哪些标签库?
如何实现迭代?
包括:
核心标签(包括通用标签、条件标签、迭代标签)、I18N与国际化标签、SQL标签、XML标签、function标签
使用迭代标签forEach来遍历
48.过滤器的原理?
过滤器的生命周期?
监听器的原理
49.hibernate的映射原理?
hibernate的查询方式有哪些?
关联关系的映射怎么理解?
三种查询方式:
HQL、条件查询、原生SQL查询,命名SQL、
50.oracle和sqlserver区别?
如何优化oracle数据库?
oracle的一些常用系统函数?
Oracle跨平台,SqlServer只能运行在window平台上。
51.为什么要用索引?
索引的分类?
视图是什么?
答:
提高查询的执行速度,强制实施数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 动力 笔试 题合集