第一篇:中科软面试题
1tomcat 怎么改变内存大小? 答:
一、使用 catalina.bat 等命令行方式运行的 tomcat1、修改 tomcatbinCatalina.bat 文件。在 %DEBUG_OPTS% 后面添加-Xms256m-Xmx512m保存后,重新以命令行的方式运行 tomcat,即可,然后通过最后面介绍的如何观察tomcat现有内存情况的方法进行查看是否已经变更成功。
二、使用 系统中的 “服务”,或者开始菜单的可执行程序运行的tomcat。
1、关闭 现在正在运行的tomcat 高版本tomcat配置方法]如果是tomcat 5.5 或者是 5.0.28 之后的版本,在 Java 选项卡中,下方,会有
Inital memory Pool:
Maximum memory Pool:
Thread stack size:
三个输入框,在这里即可不用做上面的操作,直接配置内存大小,只需要设置
Inital memory Pool 为 256
Maximum memory Pool 为 512。点击确定后,重启tomcat 生效
[低版本tomcat配置方法]在开始菜单中,找到“Apache Tomcat 5.0”,并选择“Configure Tomcat”,在弹出的对话框窗口中,切换到 Java VM 选项卡,并在 Java Options 输入框的最前面输入
-Xms256m-Xmx512m点击确定后,重启tomcat 生效
2动态include和静态include的区别?
答:动态INCLUDE用jsp:include动作实现
3当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
答:是值传递。Java 编程语言只由值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的。
4触发器分类?每种类别有什么区别?
答:DML 触发器在 INSERT、UPDATE 和 DELETE 语句上操作,并且有助于在表或视图中修改数据时强制业务规则,扩展数据完整性。DDL 触发器在 CREATE、ALTER、DROP 和其他 DDL 语句上操作。它们用于执行管理任务,并强制影响数据库的业务规则。它们应用于数据库或服务器中某一类型的所有命令。可以使用相似的 Transact-SQL 语法创建、修改和删除 DML 触发器和 DDL 触发器,它们还具有其他相似的行为。综上,创建触发器是DDL,触发器工作依靠DML。
5删除表的命令?
答:droptabletablename
6String和StringBuffer区别?
答:JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你
可以使用StringBuffers来动态构造字符数据。另外,String实现了equals方法,new String(“abc”).equals(new String(“abc”)的结果为true,而StringBuffer没有实现equals方法,所以,new StringBuffer(“abc”).equals(new StringBuffer(“abc”)的结果为false。
7java中常见的数据结构有哪些?他们的内部实现原理是什么?
8抽象类和接口的区别?
答:含有abstract修饰符的class即为抽象类,abstract 类不能创建的实例对象。含有abstract方法的类必须定义为abstract class,abstract class类中的方法不必是抽象的。abstract class类中定义抽象方法必须在具体(Concrete)子类中实现,所以,不能有抽象构造方法或抽象静态方法。如果的子类没有实现抽象父类中的所有抽象方法,那么子类也必须定义为abstract类型。
接口(interface)可以说成是抽象类的一种特例,接口中的所有方法都必须是抽象的。接口中的方法定义默认为public abstract类型,接口中的成员变量类型默认为public static final。
下面比较一下两者的语法区别:
1.抽象类可以有构造方法,接口中不能有构造方法。
2.抽象类中可以有普通成员变量,接口中没有普通成员变量
3.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。
4.抽象类中的抽象方法的访问类型可以是public,protected和(默认类型,虽然
eclipse下不报错,但应该也不行),但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型。
5.抽象类中可以包含静态方法,接口中不能包含静态方法
6.抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static final类型,并且默认即为public static final类型。
7.一个类可以实现多个接口,但只能继承一个抽象类。
下面接着再说说两者在应用上的区别:
接口更多的是在系统架构设计方法发挥作用,主要用于定义模块之间的通信契约。而抽象类在代码实现方面发挥作用,可以实现代码的重用,例如,模板方法设计模式是抽象类的一个典型应用,假设某个项目的所有Servlet类都要用相同的方式进行权限判断、记录访问日志和处理异常,那么就可以定义一个抽象的基类,让所有的Servlet都继承这个抽象基类,在抽象基类的service方法中完成权限判断、记录访问日志和处理异常的代码,在各个子类中只是完成各自的业务逻辑代码,伪代码如下:
public abstract class BaseServlet extends HttpServlet{
public final void service(HttpServletRequest request, HttpServletResponse response)throws记录访问日志 进行权限判断
if(具有权限){
}
}protected abstract void doService(HttpServletRequest request, HttpServletResponse response)throws try{} catch(Excetpion e)}{ 记录异常信息 doService(request,response);IOExcetion,ServletException {
IOExcetion,ServletException;
//注意访问权限定义成protected,显得既专业,又严谨,因为它是专门给子类用的}
public class MyServlet1 extends BaseServlet
{
protected void doService(HttpServletRequest request, HttpServletResponse response)throws IOExcetion,ServletException
}
父类方法中间的某段代码不确定,留给子类干,就用模板方法设计模式。{}本Servlet只处理的具体业务逻辑代码
9interger 和int 区别
答:int是java提供的8种原始数据类型之一。Java为每个原始类型提供了封装类,Integer是java为int提供的封装类。int的默认值为0,而Integer的默认值为null,即Integer可以区分出未赋值和值为0的区别,int则无法表达出未赋值的情况,例如,要想表达出没有参加考试和考试成绩为0的区别,则只能使用Integer。在JSP开发中,Integer的默认为null,所以用el表达式在文本框中显示时,值为空白字符串,而int默认的默认值为0,所以用el表达式在文本框中显示时,结果为0,所以,int不适合作为web层的表单数据的类型。
在Hibernate中,如果将OID定义为Integer类型,那么Hibernate就可以根据其值是否为null而判断一个对象是否是临时的,如果将OID定义为了int类型,还需要在hbm映射文件中设置其unsaved-value属性为0。
另外,Integer提供了多个与整数相关的操作方法,例如,将一个字符串转换成整数,Integer中还定义了表示整数的最大值和最小值的常量。
10单利
答:public class Singleton {
private Singleton(){}
//在自己内部定义自己一个实例,是不是很奇怪?
//注意这是private 只供内部调用
private static Singleton instance = new Singleton();
//这里提供了一个供外部访问本class的静态方法,可以直接访问
public static Singleton getInstance(){
return instance;
}
}
11forword和redirect区别
答:forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。
redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。
12jsp九大内置对象
答:JSP共有以下9个内置的对象:
request 用户端请求,此请求会包含来自GET/POST请求的参数
response 网页传回用户端的回应
pageContext 网页的属性是在这里管理
session 与请求有关的会话期
application servlet 正在执行的内容
out 用来传送回应的输出
config servlet的构架部件
page JSP网页本身
exception 针对错误网页,未捕捉的例外
13给你一个字符串 “welcome to zkr”中间以空格隔开。
输出“ zkr to welcome ”
public static void main(String[] args){
Stack ss = new Stack();
String str = “ welcome to zkr ”;
String[] strs = str.split(“ ”);
System.out.println(“========>” + strs.length);
for(int i = strs.length-1;i >= 0;i--){
System.out.print(strs[i] + “ ”);
}
}
68、你所知道的集合类都有哪些?主要方法?
最常用的集合类是 List 和 Map。List 的具体实现包括 ArrayList 和 Vector,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象的元素列表。List 适用于按数值索引访问元素的情形。
Map 提供了一个更通用的元素存储方法。Map 集合类用于存储元素对(称作“键”和“值”),其中每个键映射到一个值。
ArrayList/VectorList
Collection
HashSet/TreeSetSet
PropetiesHashTable
Map
Treemap/HashMap
它们都有增删改查的方法对于set,大概的方法是add,remove, contains;对于map,大概的方法就是put,remove,contains等,我记住的一些思想就是List类会有get(int index)这样的方法,因为它可以按顺序取元素,而set类中没有get(int index)这样的方法。List和set都可以迭代出所有元素,迭代时先要得到一个iterator对象,所以,set和list类都有一个iterator方法,用于返回那个iterator对象。map可以返回三个集合,一个是返回所有的key的集合,另外一个返回的是所有value的集合,再一个返回的key和value组合成的EntrySet对象的集合,map也有get方法,参数是key,返回值是key对应的value。请你写出5个最常见的runtime exception
答:NullPointerException、ArrayIndexOutOfBoundsException、ClassCastException校验手机号码
function CheckMobile(mobile)
{
if(mobile.length==0)
{
alert('请输入手机号码!');
document.form1.mobile.focus();
return false;
}
if(mobile.length!=11)
{
alert('请输入有效的手机号码!');
document.form1.mobile.focus();
return false;
}
var myreg = /^(((13[0-9]{1})|159|153)+d{8})$/;
if(!myreg.test(mobile))
{
alert('请输入有效的手机号码!');
document.form1.mobile.focus();
return false;
}
}
12.jsp有哪些动作?作用分别是什么?
(这个问题似乎不重要,不明白为何有此题)
答:JSP共有以下6种基本动作
jsp:include:在页面被请求的时候引入一个文件。
jsp:useBean:寻找或者实例化一个JavaBean。
jsp:setProperty:设置JavaBean的属性。
jsp:getProperty:输出某个JavaBean的属性。
jsp:forward:把请求转到一个新的页面。
jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记
6、SERVLET API中forward()与redirect()的区别?
答:前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用
sendRedirect()方法。
第二篇:中科软java面试题
中科软: 走去就是上机考试 接着是面试 上机题: 1: 写一个html文件,包括用户名,登陆密码.用户名是一个电子邮件,格式是里面必须含有@和.底下有一个登陆按钮,点击登陆按钮,用js代码判断,判断电子邮件格式是否符合,若符合就提示“登陆成功”,若不成功,则提示错误.2:有一个表,字段有保单号,保单金额 让你按保单号给保单金额汇总 select sno,sum(smoney)from 表名 group by sno having sum(smoney)>500000;3:给定一个字符串,求出该字符串里哪个字符出现的次数最多
4:给定一个字符串和一个预定的长度,把这个字符串按照这个长度分割成几部分,重新组合为一个字符串数组
5:读取一个文件,给定一个字符串,判断这个字符串在文件中出现的次数
6:随机产生10个数,并每个数给定一个序号,然后将这10个数按照从小到大的顺序输出来,并带上序号输出.面试题: 1.自我介绍
2.数据库中如何分页 3.说一下你的项目
4.数据库中有哪些连接,有什么区别(就是内连接,外连接等待...)5.说说struts 6.做一个项目,有哪些步骤? 需求分析,软件设计,写文档....(这个上网百度一下)7.statement和preparedstatement的区别? package test;public class Count1 {
/**
* @paramargs
*/ staticintcountNum = 0;staticintcountLetter = 0;staticintcountOther = 0;public static void main(String[] args){
// TODO Auto-generated method stub
String str = “sdSAAaazzZ12...,”;
char[] c = str.toCharArray();
for(inti=0;i if(c[i]>='a'&&c[i]<='z'||c[i]<='Z'&&c[i]>='A'){ countLetter++; }else if(c[i]>='0'&&c[i]<='9'){ countNum++; }else{ countOther++; } } System.out.println(“字母:”+countLetter); System.out.println(“数字:”+countNum); System.out.println(“其他:”+countOther); } } /^s*([A-Za-z0-9_-]+(.w+)*@([w-]+.)+w{2,3})s* $/ public static void main(String[] args){ test(“abbcccddddaa”); } public static void test(String str){ intmax_length = 0;String max_str = “";while(str.length()> 0){ int length = str.length();String first = str.substring(0, 1);str = str.replaceAll(first, ”“);if(max_length< lengthstr.length();max_str = first;} } System.out.println(max_length);System.out.println(max_str);} 王华东(40169FEF949C)09:54:20 importjava.io.BufferedReader; importjava.io.FileInputStream; importjava.io.FileNotFoundException; importjava.io.IOException; importjava.io.InputStreamReader; importjava.util.Scanner; 邮箱表达式 public class Main { public static void main(String[] args)throws IOException { Scanner input = new Scanner(System.in); System.out.println(”请输入文件名:“); String fileName = input.next(); BufferedReaderbr = new BufferedReader(new FileInputStream(fileName))); System.out.println(”请输入要查找的字符串:“); String find = input.next(); long count = 0; String line = br.readLine(); while(null!= line){ count += count(line,find); line = br.readLine(); } System.out.println(”文件“ + fileName + ”中共有“ + count +”个" + find); br.close(); } /** * 在str中查找find,并返回找到的个数 * @paramstr从文件读入的一行 * @param find 要查找的字符串 * @return str中find的个数 */ private static long count(String str,String find){ long count = 0; intlen = find.length(); int index = 0; for(inti=0;i if((index = str.indexOf(find, i))>-1) count ++; else break; } return count; } } InputStreamReader(new 东软面试试题汇总 堆和栈那个是对程序员透明的? 答案:栈。请结合具体实例阐述一下面向对象中“多态”的概念。 答案:同一操作用于不同的类的实例,不同的类将进行不同的解释,最后产生不同的结果,它有两种: →编译时多态----通过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的垃圾回收机制? 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,把他引向了这个方向,或者是我回答的太快了,时间太紧了。就这些。 东软面试总结: 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;int i;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语句是在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的认识、工作协调等问题,主要看对某些方面认识有多深,我认为能结合着自己的经历谈,再加上阐述合理,较容易得到面试官的认可。 SSH,java基础,oracle 线程、Socket、Servlet、Jsp等j2SE、javaWeb 谈JAVA的多态,说一下STRUTS的基本应用 笔试 专业知识 java 数据库基础知识 面试 java理论 左链接右链接,decode的用法,sendredirect和forward的区别(这个我没回答上来,汗),servlet的生命周期,doget和dopost的区别 如何解析 xml int 与integer的区别 javascript如何debug collectio和collections map jsp链接数据库 sql语句大全 cooki和session final finally finallize run Runnable 垃圾回收机制 帮我翻译一段话: 要运行已经生成的程序,可以通过A或者能力超强的B程序员自己编程实现,代码由A引擎解析。运行的每个过程是用WEB服务描述语言文档表示,它的消息由简单对象访问协议在网上传送。要查找可用WEB服务的过程可以是有通用的描述和发现 中科软笔试题 1、谈谈你对测试的理解 2、你的长期的人生规划 3、你对加班的看法?你曾经长期加班? 4、你心目中理想的公司怎么样?理想的工作环境?理想的同事关系? 5、你认为激励你努力工作的因素都有那些? 6、假设你发现别人不诚实(与工作有关),你会怎么办? 7、你的最大的缺点是什么?有什么专业特长?喜欢体育运动吗? 8、什么是管理信息系统?你认为管理信息系统的重点是什么? 9、什么是数据库?什么是关系型数据库?描述什么是主 10、假如你是质检员,怎么对自行车进行检查?若要保证质量必须要检查的三个部件,你认为是什么? 11、给出一段文字描述,画出ER 图 12、根据程序流程图,使用最少的路径,覆盖最多的语句 数据库题(给出了两个表成绩表和课程表) 1、说明主键、外键的作用,索引的好处与不足? 2、创建表 3、查询成绩小于60分的学生姓名和学号 4、查询成绩小于60分的学生姓名和课程名 5、查询平均成绩并排序 面试题: 1、自我介绍并描述你认为做得成功的两三个项目 2、你三年的职业规划 3、描述TD、QTP、工具的测试流程 4、描述登陆脚本的录制过程 5、LR脚本的组成6、缺陷报告的组成要素? 7、对缺陷怎么进行分析解决? 8、测试从哪个阶段开始介入? 9、项目测试的基本流程? 10、着重描述你在项目中担任的职责 笔试题 1.谈谈你对测试的理解 2.你三年的职业规划 3.你对加班的看法?是否可以加班? 4.你心目中理想的公司怎么样?理想的工作环境?理想的同事关系? 5.你觉得这笔试答的如何?优势在哪?劣势在哪? 6.如果初面没成功,你怎么说服我给你复试机会? 7.你认为激励你努力工作的因素都有哪些? 8.你的最大的优点是什么?缺点是什么?有什么专业特长?爱好是什么? 9.给你辆自行车,你认为最需要检查的是哪些地方?为什么?若要保证质量必须要检查三个部件,是什么?为什么? 技术题 数据库 1.咖啡厅,咖啡不同种类不同价格,有大杯小杯,食物不同种类不同价格,消费时间令算钱,结账可以用会员卡,会员卡根据等级不同打折不同,画出E-R图 2.给出两个表,成绩表和课程表 说明主键、外键的作用,索引的好处和不足? 创建表 查询成绩小于60分的学生姓名和学号 查询成绩小于60分的学生姓名和课程名 查询平均成绩并排序 3.两个表设计的有哪些缺陷,应该如何改动 程序题 1.给段代码,用白盒测试方法设计用例覆盖 2.给段JAVA代码,类的互相调用,写出显示结果,并说明过程,主要考察的是类以及私有变量的生命周期 3.写出一个类,调用另一个类的函数 测试题 1.什么是信息管理系统?最重要的是哪部分? 2.什么是数据库?是什么关系型数据库?描述主键、外键 3.TD中BUG处理过程 4.测试计划的内容 5.一个有广告的花杯子,尽可能多的设计测试用例 6.你会使用的测试工具 7.测试题太多,具体想不起来了,总之把老师总结的测试技术题全背下来就成了,考的也就是那些东西 初面 1.自我介绍 2.谈谈你做过的一个项目,担当什么职责 3.谈谈你做过项目的一个模块,具体都设计了哪些用例 4.使用QTP、Loadrunner多长时间?分别叙述使用过程 5.给出一个QTP的场景,问怎么设计,问的根本听不懂,所以也没记住 6.Loadrunner中都可以修改插入哪些东西?检查点是插在事务的里面还是外面?集合点是插在事务的前面还是后面? 7.是否参与过性能分析,都需要看哪些地方 8.QTP适合哪些系统?不适合哪些系统 9.你为什么离职 10.你的三年职业规划是什么 11.是否可以加班 12.原公司有多少人,测试团队有多少人,开发团队有多少人 复试(全是结合具体工作谈的) 1.谈谈以前的工作 2.测试计划都怎么写的3.讲讲QTP和LR的如何使用 4.如何回归的5.介绍一下TD的流程 6.结合你做过的一个系统的一个模块,设计用例 7.LR并发用户是如何确定的8.LR的分析需要看哪些方面 9.如何写测试分析报告 10.什么是冰冻测试 11.是否统招 12.三年职业规划 13.用过哪些管理工具,如何使用第三篇:东软面试题汇总
第四篇:中软面试题
第五篇:中科软 软件测试工程师笔试题