1.Struts的运行机制:
Web应用初始化时,控制器加载分析配置文件(),获得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();
import class MapTest {
public static void main(String[] args) {
Map
("a", "中国");
("b", "ABC");
("c", 1000);
/*for(Iterator
}*/
for(Iterator
Object key = ();
Object value = (key);
}
}
}
4. 字符串相加用“+”和append()的区别
用“+“号每加一次创建一个对象,比如:字符串常量池中有原字符串:”abc”
之后要加”de”,加过之后内存中会有”abc”、”abcde”两个字符串!但”abc”会失去原本指向它的引用变成垃圾回收机制回收的对象!
Append()只是将字符串追加到原字符串的尾部,始终都是一个对象!
5.垃圾回收机制原理:
当一个对象赋值为null或者没有指引指向他的时候,那么这个对象就符合垃圾回收机制回收的范围,java虚拟机会不定时的对垃圾进行回收,回收对象之前会调用被回收对象的finalize()方法!
注意Java虚拟机何时来回收垃圾不确定!
6.如何实现多线程:
继承Thread类或者实现Runnable接口
那种好处多:因为java是单继承所以一般会采用实现Runnable接口
两种实现方式的区别:
继承Thread类可以创建本类对象直接调用start()方法运行线程(也就是说本类对象就是一个线程个人理解)
实现Runnable接口必须用Thread thread = new Thread()来获得一个线程!
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的一些配置问题和中的一些配置。
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容器就只会创建一个实例
通过()来获取页面参数
作用域范围由小到大:page、request、session、application
47. jstl的包括哪些标签库如何实现迭代
包括:核心标签(包括通用标签、条件标签、迭代标签)、I18N与国际化标签、SQL标签、XML标签、function标签
使用迭代标签forEach来遍历
48. 过滤器的原理过滤器的生命周期监听器的原理
49.hibernate的映射原理hibernate的查询方式有哪些
关联关系的映射怎么理解
三种查询方式:HQL、条件查询、原生SQL查询,命名SQL、
50.oracle和sqlserver区别如何优化oracle数据库oracle的一些常用系统
函数
Oracle跨平台,Sql Server只能运行在window平台上。
51.为什么要用索引索引的分类视图是什么
答:提高查询的执行速度,强制实施数据库的唯一性,提高表与表之间的链接速度。聚集索引和非聚集索引(SQL Server)
标准索引、组合索引、唯一索引、反向索引、位图索引(Oracle)
视图是一张虚拟表,该表提供对一个或多个表中列的访问,它是从一个或多个表中派生出来的对象。
52.存储过程你是怎么理解的如何实现
答:我感觉存储过程就像java中的方法一样,输入参数就是方法传的参数,而
输出参数就像方法的返回值一样。Java中通过CallAbleStatement接口实现了对存储过程的调用。
53.触发器、游标的一些基本知识!
54.oracle数据库的一些特殊之处如簇、序列等如何理解
簇是用来存储表的方法,这些表互相联系密切并通常相连在磁盘的相同区域上,共享同一列的一组表,用于检索时提高效率
oracle中没有sql server中的标识列,只能通过创建序列来实现这一功能。
55.权限的问题如何解决
56.Ajax的javaScript代码如何实现Ajax的一些框架
57.单例模式和工厂模式如何实现
单列模式:(饿汉式)
public class Car{
private Car(){} 一般来说,存储过程实现的功能要复杂一点,而函数的实现的功能针对性比较强。
2. 对于存储过程来说可以返回参数,而函数只能返回值或者
表对象。
3. 存储过程一般是作为一个独立的部分来执行,而函数可以
作为查询语句的一个部分来调用,由于函数可以返回一个表对象,因此它可以在查询语句中位于FROM关键字的后面。
4. 当存储过程和函数被执行的时候,SQL Manager会到
procedure cache中去取相应的查询语句,如果在procedure cache里没有相应的查询语句,SQL Manager就会对存储过程和函数进行编译。
Procedure cache中保存的是执行计划 (execution plan) ,当编译好之后就执行procedure cache中的execution plan,之后SQL SERVER 会根据每个execution plan的实际情况来考虑是否要在cache中保存这个plan,评判的标准一个是这个execution plan可能被使用的频率;其次是生成这个plan的代价,也就是编译的耗时。保存在cache中的plan在下次执行时就不用再编译了。
Struts1和struts2比较:
Action类
Struts 1要求Action类要扩展自一个抽象基类。Struts 1的一个共有的问题是面向抽象类编程而不是面向接口编程。
Struts 2的Action类实现了一个Action接口,连同其他接口一起实现可选择和自定义的服务。Struts 2提供一个名叫ActionSupport的基类实现一般使用的接口。虽然,Action接口不是必须的。任何使用execute方法的POJO对象可
以被当作Struts 2的Action对象使用。
程模型
Struts 1 Action类是单例类,因只有一个示例控制所有的请求。单例类策略造成了一定的限制且给开发带来了额外的烦恼。Action资源必须是程安全或者同步的。
Struts 2 Action对象每一个请求都实例化对象,所以没有程安全的问题。(实践中,servlet容器生许多丢的对象对于每一个请求,多于一个的对象并不影响垃圾收集)
Servlet 依赖
Struts 1的Action类依赖于servlet API以HttpServletRequest和HttpServletResponse作参数传给execute方法当Action被调用时。
Struts 2的Action不和容器有关。Servlet上下文被表现简单的Maps,允许Action被独立的测试。Struts 2的Action可以访问最初的请求和相应,如果需要的话。然而,其他的架构元素少或者排除直接访问HttpServletRequest或者HttpServletResponse的需要。
易测性
测试Struts 1的主要障碍是execute方法暴露了Servlet API。第三方的扩展,Struts测试用例,提供Struts 1的集合对象。
Struts 2的Action可以通过实例化Action测试,设置属性,然后调用方法。依赖注入的支持也是测试变得更简单。
接受输入
Struts 1使用ActionForm对象捕获输入。象Action一样,所有的ActionForm 必须扩展基类。因其他的JavaBean不能作ActionForm使用,开发者经常创建多余的类捕获输入。DynaBeans可以被用来作替代ActionForm的类创建。但是开发者可以重新描述已经存在的JavaBean。
Struts 2 Action属性作输入属性,排除第二个输入对象的需要。输入属性可能有丰富的对象类型这些类型有他们自己的属性。Action的属性可以通过标签库访问。Struts 2也支持ActionForm形式。丰富的对象类型,包含业务或者域对象,可以被当作输入或者输出对象使用。馍型驱动特性简化标签对POJO输入对象的引用。
表达式语言
Struts 1整和JSTL,所以它使用JSTL的表达式语言。表达式语言有基本的图形对象移动,但是相对很弱的集合和被索引的属性支持。
Struts 2使用JSTL,但是框架也支持更大和更灵活的表达式,叫做“对象图形符号语言”(OGNL)。
将值绑定要视图上
Struts 1使用标准JSP机制来绑定对象到页面上下文。
Struts 2使用“ValueStack”技术了标签库可以不用链接你的视图到对象的表现类型访问值。ValueStack策略允许重用视图。
类型转换
Struts 1的ActionForm属性经常都是String的。Struts 1使用
Commons-Beanutils类型转换。转换每一个类,不是每一个实例配置。
Struts 2使用OGNL类型转换。框架包含转换器基本的和共同的对象类型和原始
类型。
验证
Struts 1支持手动验证凭借ActionForm的validate方法,或者通过扩展的公用验证器。类可以有不同的验证上下文未相同的类,但是不能不能包括验证子对象。
Struts 2支持手动验证凭借validate方法和XWork验证框架。Xwork验证框架支持一连串的验证子属性使用的验证了属性类的类型和严正上下文而定义。
Action执行的控制
Struts 1支持独立的请求处理器对于每一个模型,但是所有在模型中的Action 必须共享同一个生命周期。
Struts 2支持在每一个Action基础上凭借拦截栈创建不同的生命周期。自定义栈可以被创建且使用不同的所需的Action
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(); import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class MapTest { public static void main(String[] args) { Map
天去软通动力面试,凭着印象大概把题记了一下: 1.静态变量的作用。const,V olatile,synchrnize什么情况下使用?如何声明一个常量。 静态变量甚至在没有创建对象时也能访问 静态变量的本意是为了让所有的对象共享这个变量静态变量只能写在类中而不能写在方法中,因为静态变量也称为类变量,是整个类的所有实例对象都能引用的,而且仅在第一次生成这个类的对象时为这个静态变量分配空间,故这个静态变量对于该类的所有实例对象是公用的。 被const修饰的东西都受到强制保护,作用和final差不错不过貌似只作为java中的保留字吧和goto一样 在关键字前加上volatile目的是让此变量的操作保证为原子操作,在JA V A中char,int,boolean 这些的引用和赋值都是原子的,不可分割的.但是long和double却不是原子的.一个int类型的字段n,某个线程对其进行操作:n=123;而前后有另一个线程也进行n=456的操作,那么结果可能是123或者是456,不可能出现134之类的.但是long和double就不一样,如果是n=123L 和n=456L做同样的操作, 结果可能会出现156234L的情况等. public static final int aaa = 1; private static final String bbb = "Hello world!"; 2.用于线程实现的类和接口分别是什么?简单举出使用范例。 3.java.io.reader和java.io.inputstream的区别。 Java.io.Reader 和java.io.InputStream 组成了Java 输入类。 Reader 用于读入16位字符,也就是Unicode 编码的字符;而InputStream 用于读入ASCII 字符和二进制数据 4.设计一个servlet读取客户端上载的文件,继承自那个类?支持post/get操作要实现哪些方法?简述如何读取 上载文件。 读取文件用FileInputStream(File f)或者getServletContext().getRealPath("WEB-INF/tst.txt")? 输出的时候可以用ByteArrayOuputStream的writeTo(ServletOutputStream)
A)证明软件错误不存在 B)证明软件错误的存在 C)改正程序所有的错误 D)发现程序所有的错误 2.对于软件质量描述不正确的是:() A)高质量的过程产生高质量的产品 B)软件质量是测试人员测试出来的 C)软件质量是设计和规划出来的 D)项目阶段结束意味着产品质量达到了预期的标准 3.对于软件测试描述不正确的是:() A)软件测试无法找到程序当中的所有缺陷 B)测试工程师需要在最短时间内完成最有效的测试 C)软件测试工程师只要了解需求就可以了 D)测试工程师也需要了解编码知识 4.测试工程师需要了解下面哪些知识:() A)项目管理知识 B)测试知识 C)需求管理 D)以上都包括 5.检查软件产品是否符合需求定义的过程称为:() A)确认测试 B)集成测试 C)性能测试 D)功能测试 6.评审是对软件进行表态测试的一种方法,下述结论中。哪个是与软件评审无关的内容:() A)尽量发现错误
B)检查软件文档 C)根据评审标准 D)依靠测试信息 7.路径测试是整个结构测试的重要组成,但在研究路径测试时,通常又是使用程序控制流图来代替() A)程序框图 B)结构图 C)数据流图 D)程序流程图 8.软件测试类型按开发阶段划分是() A)需求测试、单元测试、集成测试、验证测试 B)单元测试、集成测试、确认测试、系统测试、验收测试 C)单元测试、集成测试、验收测试、确认测试、验收测试 D)调试、单元测试、集成测试、用户测试 9.下述说法错误的是() A)单元测试又称为模块测试,是针对软件测试的最小单位—程序模块进行正确性检验的测试工作 B)集成测试也叫做组装测试,通常在编码完成的基础上,将所有的程序模块进行有序的、弟增的测试。 C)集成测试是检验程序单元和部件的接口关系,逐步集成为符合概要设计要求的程序部件或整个系统。 D)系统测试是真实或模拟系统运行环境下,检查完整的程序系统能否和相关硬件、外设、网络、系统软件和支持平台等正确配置与连接,并满足用户需求 10.下列关于alpha测试的描述: (1)alpha测试需要用户代表参加 (2)alpha测试不需要用户代表参加 (3)alpha测试是系统测试的一种
答案仅供参考 一、改错题 1. 找出以下两处逻辑错误(非编程规范)并改正 char* getErrorString(int errcode) { char errorString[] = "not exist"; char errorString2[] = "not available"; switch(errcode) { case 1: return errorString; case 2: return errorString2; default: return NULL; } } void printErrorString(int errcode) { char *errorString = getErrorString(errcode); printf("errcode:%d, errorString:%s\n", errcode, errorString); } case1和case2返回了两个局部变量指针,而局部变量在函数结束后将自动释放。改正:将字符数组改为指针 char *errorString= "not exist"; char *errorString2 = "not available"; 2. 以下是输出“welcome home”的程序,找出逻辑错误(非编程规范)并改正const int MAX_STR_SIZE = 12; int main(int argc, char *argv[]) { char str[MAX_STR_SIZE]; strcpy(str,"welcome home"); printf("%s", str); return 0; } “welcome home”字符串应该是13个字节,而str字符数组只能存储12个字符改正:const int MAX_STR_SIZE = 13; 二、程序填空题 1. 写出String类的构造函数,析构函数和赋值函数 class String { public: String(const char *str = NULL);
1.软件测试是软件开发的重要环节,进行软件测试的目的是() A)证明软件错误不存在 B)证明软件错误的存在 C)改正程序所有的错误 D)发现程序所有的错误 2.对于软件质量描述不正确的是:() A)高质量的过程产生高质量的产品 B)软件质量是测试人员测试出来的 C)软件质量是设计和规划出来的 D)项目阶段结束意味着产品质量达到了预期的标准 3.对于软件测试描述不正确的是:() A)软件测试无法找到程序当中的所有缺陷 B)测试工程师需要在最短时间内完成最有效的测试 C)软件测试工程师只要了解需求就可以了 D)测试工程师也需要了解编码知识 4.测试工程师需要了解下面哪些知识:() A)项目管理知识 B)测试知识 C)需求管理 D)以上都包括 5.检查软件产品是否符合需求定义的过程称为:() A)确认测试 B)集成测试 C)性能测试 D)功能测试 6.评审是对软件进行表态测试的一种方法,下述结论中。哪个是与软件评审无关的内容:() A)尽量发现错误 B)检查软件文档 C)根据评审标准 D)依靠测试信息 7.路径测试是整个结构测试的重要组成,但在研究路径测试时,通常又是使用程序控制流图来代替() A)程序框图 B)结构图 C)数据流图 D)程序流程图 8.软件测试类型按开发阶段划分是() A)需求测试、单元测试、集成测试、验证测试 B)单元测试、集成测试、确认测试、系统测试、验收测试 C)单元测试、集成测试、验收测试、确认测试、验收测试 D)调试、单元测试、集成测试、用户测试 9.下述说法错误的是() A)单元测试又称为模块测试,是针对软件测试的最小单位—程序模块进行正确性检验的测
1.软件测试就是软件开发的重要环节,进行软件测试的目的就是( ) A)证明软件错误不存在 B)证明软件错误的存在 C)改正程序所有的错误 D)发现程序所有的错误 2.对于软件质量描述不正确的就是:( ) A)高质量的过程产生高质量的产品 B)软件质量就是测试人员测试出来的 C)软件质量就是设计与规划出来的 D)项目阶段结束意味着产品质量达到了预期的标准 3.对于软件测试描述不正确的就是:( ) A)软件测试无法找到程序当中的所有缺陷 B)测试工程师需要在最短时间内完成最有效的测试 C)软件测试工程师只要了解需求就可以了 D)测试工程师也需要了解编码知识 4.测试工程师需要了解下面哪些知识:( ) A)项目管理知识 B)测试知识 C)需求管理 D)以上都包括 5.检查软件产品就是否符合需求定义的过程称为:( ) A)确认测试 B)集成测试 C)性能测试 D)功能测试 6.评审就是对软件进行表态测试的一种方法,下述结论中。哪个就是与软件评审无关的内容:( ) A)尽量发现错误 B)检查软件文档 C)根据评审标准 D)依靠测试信息 7.路径测试就是整个结构测试的重要组成,但在研究路径测试时,通常又就是使用程序控制流图来代替( ) A)程序框图 B)结构图 C)数据流图 D)程序流程图 8.软件测试类型按开发阶段划分就是( ) A)需求测试、单元测试、集成测试、验证测试 B)单元测试、集成测试、确认测试、系统测试、验收测试 C)单元测试、集成测试、验收测试、确认测试、验收测试 D)调试、单元测试、集成测试、用户测试 9.下述说法错误的就是( ) A)单元测试又称为模块测试,就是针对软件测试的最小单位—程序模块进行正确性检验的测
软件测试面试题(软通动力,博彦科技,奇虎,瑞星,中软) 软件测试面试题(软通动力,博彦科技,奇虎,瑞星,中软) 1。软通动力面试笔答 1.白箱测试和黑箱测试是什么?什么是回归测试? 2.单元测试、集成测试、系统测试的侧重点是什么? 单元测试的重点是系统的模块,包括子程序的正确性验证等。 集成测试的重点是模块间的衔接以及参数的传递等。 系统测试的重点是整个系统的运行以及与其他软件的兼容性。 3.设计用例的方法、依据有那些? 白盒测试用例设计有如下方法:基本路径测试\等价类划分\边界值分析\覆盖测试\循环测试\数据流测试\程序插桩测试\变异测试.这时候依据就是详细设计说明书及其代码结构吧; 黑盒测试用例设计方法:基于用户需求的测试\功能图分析方法\等价类划分方法\边界值分析方法\错误推测方法\因果图方法\判定表驱动分析方法\正交实验设计方法.依据是用户需求规格说明书,详细设计说明书 4.一个测试工程师应具备那些素质和技能? 掌握基本的测试基础理论 本着找出软件存在的问题的态度进行测试,即客观吧,不要以挑刺形象出现 可熟练阅读需求规格说明书等文档 以用户的观点看待问题 有着强烈的质量意识 细心和责任心 良好的有效的沟通方式(与开发人员及客户) 具有以往的测试经验 能够及时准确地判断出高危险区在何处. 5.集成测试通常都有那些策略? 大爆炸集成;自顶向下集成;自底向上集成;三明治集成;分层集成;基干集成;基于功能的集成;基于消息的集成;基于风险的集成;基于进度的集成. 6.你用过的测试工具的主要功能、性能及其他? 7.一个缺陷测试报告的组成? 缺陷跟踪报告: 编号 如:ut-dt00016 标题 如:文字排版功能.字间距.MarchCalculator计算错误 版本号 如:V1.3 执行状态 如:空白/草稿/提交/审批/分发/正在修改/修改完毕/正在确认/关闭… 修改记录
应聘软通动力测试工程师笔试题分享 D)项目阶段结束意味着产品质量达到了预期的标准 2.软件测试是软件开发的重要环节,进行软件测试的目的是( ) A)证明软件错误不存在 B)证明软件错误的存在 C)改正程序所有的错误 D)发现程序所有的错误 3.对于软件测试描述不正确的是:( ) A)软件测试无法找到程序当中的所有缺陷 B)测试工程师需要在最短时间内完成最有效的测试 C)软件测试工程师只要了解需求就可以了 D)测试工程师也需要了解编码知识 4.测试工程师需要了解下面哪些知识:( ) A)项目管理知识 B)测试知识 C)需求管理 D)以上都包括 5.检查软件产品是否符合需求定义的过程称为:( ) A)确认测试 B)集成测试
C)性能测试 D)功能测试 6.评审是对软件进行表态测试的一种方法,下述结论中。哪个是与软件评审无关的内容:( ) A)尽量发现错误 B)检查软件文档 C)根据评审标准 D)依靠测试信息 7.路径测试是整个结构测试的重要组成,但在研究路径测试时,通常又是使用程序控制流图来代替( ) A)程序框图 B)结构图 C)数据流图 D)程序流程图 8.软件测试类型按开发阶段划分是( ) A)需求测试、单元测试、集成测试、验证测试 B)单元测试、集成测试、确认测试、系统测试、验收测试 C)单元测试、集成测试、验收测试、确认测试、验收测试 D)调试、单元测试、集成测试、用户测试 9.下述说法错误的是( ) A)单元测试又称为模块测试,是针对软件测试的最小单位程序模块进行正确性检验的测试工作
B)集成测试也叫做组装测试,通常在编码完成的基础上,将所有的程序模块进行有序的、弟增的测试。 C)集成测试是检验程序单元和部件的接口关系,逐步集成为符合概要设计要求的程序部件或整个系统。 D)系统测试是真实或模拟系统运行环境下,检查完整的程序系统能否和相关硬件、外设、网络、系统软件和支持平台等正确配置与连接,并满足用户需求 10.下列关于alpha测试的描述: (1)alpha测试需要用户代表参加 (2)alpha测试不需要用户代表参加 (3)alpha测试是系统测试的一种 (4)alpha测试是验收测试的一种 A)(1)(3) B)(2)(3) C(1)(4) C(2)(4) 11.关于自动化测试描述正确的是( ) A)引入自动化测试可以降低测试成本 B)软件产品测试适合自动化测试 C)自动化测试工具能够完成所有的自动化测试 D)自动化测试脚本同样需要进行验收和确认 12.LoadRunner中关于关联(Conelation) 描述错误的是( )
软件公司面试题 软通动力面试1.白箱测试和黑箱测试是什么?什么是回归测试? 白盒测试是测试人员要了解程序结构和处理过程,按照程序内部逻辑测试程序,检查程序中的每条通路是否按照预定要求正确工作.它主要的针对被测程序的源代码,测试者可以完全不考虑程序的功能. 白盒测试流程:源程序-->分析程序内部逻辑结构-->流程图-->制定测试用例-->被测程序-->执行路径-->覆盖情况分析 黑盒测试:主要是根据功能需求来测试程序是否按照预期工作,是要从用户的角度分析.尽量发现代码所表现的外部行为的错误.黑盒测试应该是由测试团队来完成的.根据某个给定的输入,应该能够理解并详细说明程序的预期输出. 黑盒测试流程:功能需求-->产生测试用例-->被测程序-->输出实际结果-->及预期结果比较-->分析功能是否实现. 回归测试:在对软件进行修正后进行的有选择的重新测试过程.一般要重复已用的测试用例.目的是检验软件在更改后所引起的错误,验证软件在修改后未引起不希望的有害效果. 2.单元测试、集成测试、系统测试的侧重点是什么? 单元测试的重点是系统的模块,包括子程序的正确性验证等。 集成测试的重点是模块间的衔接以及参数的传递等。
系统测试的重点是整个系统的运行以及及其他软件的兼容性。 3.设计用例的方法、依据有那些? 白盒测试用例设计有如下方法:基本路径测试\等价类划分\边界值分析\覆盖测试\循环测试\数据流测试\程序插桩测试\变异测试。这时候依据就是详细设计说明书及其代码结构。 黑盒测试用例设计方法:基于用户需求的测试\功能图分析方法\等价类划分方法\边界值分析方法\错误推测方法\因果图方法\判定表驱动分析方法\正交实验设计方法。依据是用户需求规格说明书,详细设计说明书。 4.一个测试工程师应具备那些素质和技能? 掌握基本的测试基础理论 本着找出软件存在的问题的态度进行测试,即客观吧,不要以挑刺形象出现 可熟练阅读需求规格说明书等文档 以用户的观点看待问题 有着强烈的质量意识 细心和责任心 良好的有效的沟通方式(及开发人员及客户) 具有以往的测试经验 能够及时准确地判断出高危险区在何处.
软通动力C语言笔试题 1、局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用:: 局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。 2、如何引用一个已经定义过的全局变量?
答:extern 可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个变写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。 3、全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么? 答:可以,在不同的C文件中以static形式来声明同名全局变量。 可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错
4、语句for( ;1 ;)有什么问题?它是什么意思? 答:和while(1)相同。 5、do while和while do有什么区别? 答:前一个循环一遍再判断,后一个判断以后再循环6、请写出下列代码的输出内容 #include main()
int a,b,c,d; a=10; b=a++; c=++a; d=10*a++; printf( b,c,d:%d,%d,%d ,b,c,d); return 0;
} 答:10,12,120 7、static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别? 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。而静态全局变量则限制了其作用域,即只在定义该变量的源文件内有效,在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错误。
关于一套笔试题(软通动力) 1年。软件测试是软件开发的重要组成部分。软件测试的目的是(a)证明软件错误不存在,b)证明软件错误存在,c)纠正程序的所有错误,d)找出程序的所有错误 2。对软件质量的错误描述如下:(1)高质量的过程产生高质量的产品;(b)软件质量由测试人员进行测试;和(c)软件质量被设计和计划为 D)项目阶段的结束意味着产品质量已经达到预期的标准3。软件测试的描述是不正确的:(a)软件测试不能找到所有的缺陷 B)测试工程师需要在尽可能短的时间内完成最有效的测试c)软件测试工程师只需要知道需求d)测试工程师也需要知道编码知识4。测试工程师需要知道以下哪些知识:(1)项目管理知识(2)测试知识(3)需求管理(4)以上包括 5。检查软件产品是否满足需求定义的过程称为:(a)确认测试(b)集成测试(c)性能测试(d)功能测试( 6)。评审是软件语句测试的一种方法。在下面的结论中这与软件评审无关:() A)尝试查找错误b)检查软件文档c)根据评审标准d)依靠测试信息7。路径测试是整体结构测试的重要组成部分,但在研究路径测试时,通常使用程序控制流程图来代替(a)程序框图(b)结构图(c)数据流图(d)程序流程图( 8)。软件测试类型分为()
A)需求测试、单元测试、集成测试、验证测试 B)单元测试、集成测试、确认测试、系统测试、验收测试C)单元测试、集成测试、验收测试、确认测试、验收测试D)调试、单元测试、集成测试、用户测试9。以下陈述是错误的() A)单元测试也称为模块测试,它是一种用于检查程序模块正确性的测试,是软件测试的最小单元。 试验工作 B)集成测试也称为组装测试。通常,所有程序模块都是在代码完成的基础上以有序和增量的方式进行测试的 C)集成测试是检查程序单元和组件之间的接口关系,并逐步将它们集成到程序组件或满足概要设计要求的整个系统中。 D)系统测试是检查在真实或模拟的系统运行环境下,完整的程序系统是否能够正确配置并与相关硬件、外设、网络、系统软件和支持平台连接。并且满足用户10的需求。alpha测试的以下描述:(1)alpha测试要求用户代表参与(2)alpha测试不要求用户代表参与(3)alpha测试是系统测试(4)alpha测试是验收测试(a)(1)(3)b)(2)(3)c(1)(4)c(2)(4) 21。自动化测试的描述是正确的(a)引入自动化测试可以降低测试成本(b)软件产品测试适合自动化测试( C)自动化测试工具可以完成所有自动化测试(d)自动化测试脚本也需要接受和确认(22)。对软件性能的描述不正确() A)在代码完成之前,不能进行与性能相关的工作b)设计和规划性能。但不是被测试的c)性能测试在许多情况下找不到具体的性能缺
软件公司面试题 软通动力面试 1.白箱测试和黑箱测试是什么?什么是回归测试? 白盒测试是测试人员要了解程序结构和处理过程,按照程序内部逻辑测试程序,检查程序中的每条通路是否按照预定要求正确工作.它主要的针对被测程序的源代码,测试者可以完全不考虑程序的功能. 白盒测试流程:源程序-->分析程序内部逻辑结构-->流程图-->制定测试用例-->被测程序-->执行路径-->覆盖情况分析 黑盒测试:主要是根据功能需求来测试程序是否按照预期工作,是要从用户的角度分析.尽量发现代码所表现的外部行为的错误.黑盒测试应该是由测试团队来完成的.根据某个给定的输入,应该能够理解并详细说明程序的预期输出. 黑盒测试流程:功能需求-->产生测试用例-->被测程序-->输出实际结果-->与预期结果比较-->分析功能是否实现. 回归测试:在对软件进行修正后进行的有选择的重新测试过程.一般要重复已用的测试用例.目的是检验软件在更改后所引起的错误,验证软件在修改后未引起不希望的有害效果. 2.单元测试、集成测试、系统测试的侧重点是什么? 单元测试的重点是系统的模块,包括子程序的正确性验证等。 集成测试的重点是模块间的衔接以及参数的传递等。 系统测试的重点是整个系统的运行以及与其他软件的兼容性。 3.设计用例的方法、依据有那些? 白盒测试用例设计有如下方法:基本路径测试\等价类划分\边界值分析\覆盖测试\循环测试\数据流测试\程序插桩测试\变异测试。这时候依据就是详细设计说明书及其代码结构。 黑盒测试用例设计方法:基于用户需求的测试\功能图分析方法\等价类划分方法\边界值分析方法\错误推测方法\因果图方法\判定表驱动分析方法\正交实验设计方法。依据是用户需求规格说明书,详细设计说明书。 4.一个测试工程师应具备那些素质和技能? 掌握基本的测试基础理论 本着找出软件存在的问题的态度进行测试,即客观吧,不要以挑刺形象出现可熟练阅读需求规格说明书等文档 以用户的观点看待问题
软通动力Java笔试题2011-4-1 1.填空题(共32分,每空1分) 1)Java中存在______、________、__________、____________、四种访问权限控制等 级(按从最宽松到最严格控制等级依次填写). 2)常用的两个List的非同步实现类是__________、______________。其中基于链表实 现的是___________,其查询效率较_________、增删效率较___________. 3)Spring简化了Bean的配置,提供了自动装配(autowire)机制,根据指定的原则(通过
一、选择题 1、下面哪些是java语言中的关键字?A sizeof B abstract C NULL D Native 答:B 2、下面语句哪个是正确的?A char='abc'; B long l=oxfff; C float f=0.23; D double=0.7E-3; 答:D 3、以下程序测试String 类的各种构造方法,试选出其运行效果。 class STR{ public static void main(String args[]){ String s1=new String(); String s2=new String("String 2"); char chars[]={'a',' ','s','t','r','i','n','g'}; String s3=new String(chars); String s4=new String(chars,2,6); byte bytes[]={0,1,2,3,4,5,6,7,8,9}; StringBuffersb=new StringBuffer(s3); String s5=new String(sb); System.out.println("The String No.1 is "+s1); System.out.println("The String No.2 is "+s2); System.out.println("The String No.3 is "+s3); System.out.println("The String No.4 is "+s4); System.out.println("The String No.5 is "+s5); } } A The String No.1 is The String No.2 is String 2 The String No.3 is a string The String No.4 is string The String No.5 is a string B The String No.1 is The String No.2 is String 2 The String No.3 is a string The String No.4 is tring The String No.5 is a string C The String No.1 is The String No.2 is String 2 The String No.3 is a string The String No.4 is strin The String No.5 is a string D 以上都不对答:A 4、下面语句段的输出结果是什么?inti = 9; switch (i) { default: System.out.println("default"); case 0: System.out.println("zero"); break; case 1: System.out.println("one"); case 2: System.out.println("two"); } A default B default, zero C error default clause not defined D no output displayed 答:B 二、不定项选择题(在每小题的五个备选答案中选出正确答案,并将正确答案的序号填入题干后面的括号内,错选多选,漏选均不得分。) 1、给出如下代码: class Test{ private int m; public static void fun() { // some code... } } 如何使成员变量m 被函数fun()直接访问? A、将private int m 改为protected int m B、将private int m 改为public int m C、将private int m 改为static int m D、将private int m 改为int m 答: C 2、下面哪几个函数是public void example(){...}的重载函数?A、public void example( int m){...} B、public int example(){...} C、public void example2(){...} D、public int example ( int m, float f){...} 答: A,D 3、给出下面的代码段: public class Base{ int w, x, y ,z; public Base(inta,int b) { x=a; y=b; } public Base(int a, int b, int c, int d) { // assignment x=a, y=b w=d; z=c; } } 在代码说明// assignment x=a, y=b处写入如下哪几个代码是正确的?A、Base(a,b); B、x=a, y=b; C、x=a; y=b; D、this(a,b); 答: C,D 4、已知如下定义:String s = "story"; 下面哪个表达式是合法的?A、s += "books"; B、char c = s[1]; C、intlen = s.length; D、String t = s.toLowerCase(); 答: A,D 5、Java中main()函数的值是什么? A、String B、int C、char D、void 答:D 6、如下哪些字串是Java中的标识符?A、fieldname B、super C、3number D、#number E、$number 答:A,E 7、如下哪些是Java中有效的关键字?A、const B、NULL C、false D、this E、native 答:A,C,D,E 8、如下哪些是Java中正确的整数表示? A、22 B、0x22 C、022 D、22H 答: A,B,C 9、下面的代码段中,执行之后i和j 的值是什么? inti = 1; int j; j = i++; A、1, 1 B、1, 2 C、
软通动力c笔试题 1、局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用 ":: " 局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。 2、如何引用一个已经定义过的全局变量? 答:extern 可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个变写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。 3、全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么? 答:可以,在不同的C文件中以static形式来声明同名全局变量。 可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错 4、语句for( ;1 ;)有什么问题?它是什么意思? 答:和while(1)相同。 5、do……while和while……do有什么区别? 答:前一个循环一遍再判断,后一个判断以后再循环 6、请写出下列代码的输出内容 #include main() { int a,b,c,d; a=10; b=a++; c=++a; d=10*a++; printf( "b,c,d:%d,%d,%d ",b,c,d); return 0; } 答:10,12,120 7、static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别? 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。而静态全局变量则限制了其作用域,即只在定义该变量的源文件内有效,在同一源程序的其它源文件中不能使用它。由于静态全局变量的作
软通动力 B/S的三层构架是什么? 数据访问层、业务逻辑层和表示层 数据库要注意那些? 命名的规范 数据的一致性和完整性 数据库性能调整 数据的清晰度和可查询性 怎么处理异常 (1)抛出异常throws Exception (2)捕获异常try catch 怎么增加代码的清晰度和可观性 注释,包和引入语句,类和接口声明,缩进排版,声明,初始化,布局严格按照Java语言编码规范 请写出冒泡排序 public class BubbleSort { public static void main(String[] args) { int []array={63,4,24,1,3,15}; BubbleSort sorter=new BubbleSort(); } public void sort(int []array){ for(int i=1;i
如何格式化日期 Import java.text. SimpleDateFormat; SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); 如何取1970到现在的毫秒数 Java.util.Date dat=new Date(); long now=dat.getTime(); 简单描述一下你对三大框架的了解? 有1--100的数字随机抽取98个数做为一个数组的元素写一段代码找出剩余的2个元素?
1.软件测试就是软件开发得重要环节,进行软件测试得目得就是( ) A)证明软件错误不存在 B)证明软件错误得存在 C)改正程序所有得错误 D)发现程序所有得错误 2.对于软件质量描述不正确得就是:( ) A)高质量得过程产生高质量得产品 B)软件质量就是测试人员测试出来得 C)软件质量就是设计与规划出来得 D)项目阶段结束意味着产品质量达到了预期得标准 3.对于软件测试描述不正确得就是:( ) A)软件测试无法找到程序当中得所有缺陷 B)测试工程师需要在最短时间内完成最有效得测试 C)软件测试工程师只要了解需求就可以了 D)测试工程师也需要了解编码知识 4.测试工程师需要了解下面哪些知识:( ) A)项目管理知识 B)测试知识 C)需求管理 D)以上都包括 5.检查软件产品就是否符合需求定义得过程称为:( ) A)确认测试 B)集成测试 C)性能测试 D)功能测试 6.评审就是对软件进行表态测试得一种方法,下述结论中。哪个就是与软件评审无关得内容:( ) A)尽量发现错误 B)检查软件文档 C)根据评审标准 D)依靠测试信息 7.路径测试就是整个结构测试得重要组成,但在研究路径测试时,通常又就是使用程序控制流图来代替( ) A)程序框图 B)结构图 C)数据流图 D)程序流程图 8.软件测试类型按开发阶段划分就是( ) A)需求测试、单元测试、集成测试、验证测试 B)单元测试、集成测试、确认测试、系统测试、验收测试 C)单元测试、集成测试、验收测试、确认测试、验收测试 D)调试、单元测试、集成测试、用户测试 9.下述说法错误得就是( ) A)单元测试又称为模块测试,就是针对软件测试得最小单位—程序模块进行正确性检验得测