Java软件研发测试题目
一.OOP基础原理
1.为什么一般的java类都没有类似C++的析构函数的方法? 2.Java中的接口用于顶替C++中的哪种特性? 3.Java中有哪些引用类型。
答:Boolean,float,byte,short,long,double,intger,character。 4.如何理解java中的引用、对象、实例。
5.Java方法的参数传递有哪两种?是否有本质区别? 答:形参和实参,实参有实际数值,形参没有实际数值。 6.继承的目的是什么?
答:使程序简单化易于管理,减少代码的冗余度,增加程序的重用性。
二.Java Web基础相关
1.简述Servlet生命周期,解释为什么通常第一次调用JSP时需要的时间比较长。 答:用户请求-应用服务器响应-发出请求-调用Servlet-生成页面-删除请求
2.Servlet中的init()、service()、doget()、dopost()方法在何时被调用。request和response对象何时被创建。
3.Servlet的工作模式与传统的CGI程序(如C、perl)相比最大的差异在哪里。 答:Servlet是通过web.xml的配置进行工作。
4.JSP中request.getParameter()与request.getParameterValues()的区别。
答:request.getParameterValues()能接受名字相同的多个值,request.getParameter()只能接受名字相同的第一个值。
5.解释为什么在JSP或Servlet的html页面输出中可能出现中文乱码现象。 答:因为没有设置Servlet的页面编码。
三.SSH开发相关
1.Struts框架中核心J2EE技术包含哪些。
2.简要描述struts的工作机制,struts是如何实现MVC的。 答:初始化-处理请求-保存数据-表单验证-返回结果-请求转发
3.Hibernate的主要用途是完成什么功能。与Hibernate完成类似功能的框架还有哪些。 答:便于对数据库进行管理
4.简述Hibernate中session类提供的flush()方法的作用。
答:清理缓存和执行sql语句
5.对Hibernate的延迟加载进行介绍。如果在项目中进行过实际应用,请介绍一个应用场景。 6.IOC的概念以及在Spring中是如何运用的。 7.简述Spring的事务管理机制。
答: 在处理事物是要么全部成功,要么全部失败,失败后返回最初状态 8.简述OpenSessionInView模式。
四.程序算法相关
1.看一段java程序回答后面的问题。(程序见附录一) 2.常见的排序算法有哪些?常见的查找算法有哪些? 3.阅读下面程序,并回答问题。(程序见附录二)
五.SQL基础相关
1.常见的SQL聚合函数有哪些?并进行简单说明。 2.数据库中表的连接方式有几种? 答:不等值链接,外链接,自链接 3.看下面一个具体应用场景,回答问题。
系统中有三张表分别记录学生、课程、学生选修课程的成绩: 1) 学生表 student ( id int ,name char(10)) 2) 课程表 class(id int,name char(10))
3) 学生选修课成绩表 resultsheet(id int,sid int,cid int,result int ) 其中sid和student表id
外键相关;cid与class表的id外键相关。 三张表的记录分别是: 1)student
id name ----------- ---------- 1 tom 2 jerry 3 henson 2)class
id name ----------- ---------- 1 math 2 english 3 computer 3)resultsheet
id sid cid result
----------- ----------- ----------- ----------- 1 1 1 70 2 2 1 80
3 3 1 90 4 2 2 75 5 3 2 85 6 1 3 95
问题:
1) 写出resultsheet表的建表SQL语句,要求id作为主键,sid和cid做外键。
答:
Create table resultsheet( id int,
sid int foreign key references student(id), cid int foreign key references class(id), result int )
2) 写出每门课程平均分数的SQL语句,要求输出结果如下: 课程 平均分数 ---------- ----------- computer 95 english 80 math 80 答:
select class.name课程,resultsheet.avg(result)平均分数 from resultsheet,class resultsheet.cid=class.id;
3) 写出选修在2人次及以上的课程平均分数的SQL语句,要求输出结果如下: 课程 平均分数 ---------- ----------- english 80 math 80
4) 写出能按照下面二维表格式输出的SQL语句: 课程/学生 tom jerry henson ---------- ----------- ----------- ----------- math 70 80 90 english -- 75 85 computer 95 -- --
附录一.程序如下,回答后面问题:
/* exame */
public class ObjectSwap
where {
public static void main(String[] args) { ObjectSwap objectSwap = new ObjectSwap(); objectSwap.swap(); objectSwap.modify(); }
public void swap(){ A a1 = new A(1,\ A a2 = new A(2,\ objectSwap(a1,a2); System.out.println(a1.toString()); System.out.println(a2.toString()); }
public void modify(){ A a1 = new A(1,\ A a2 = new A(2,\ objectModify(a1); System.out.println(a1.toString()); objectModify(new A(a2)); System.out.println(a2.toString()); }
public void objectSwap(A a,A b){ System.out.println(\ A t; t = a; a = b; b = t; }
public void objectModify(A a){ System.out.println(\ a.setValue(100,\}
class A extends Object { public int iValue = 0; public String sValue = null;
public A(int a,String s){ iValue = a; sValue = s; }
public A(A a){ iValue = a.iValue; sValue = a.sValue;
}
}
}
public void setValue(int a,String s){ iValue = a; sValue = s; }
public String toString(){ String s; s = \ return s; }
问题:
1)写出程序的运行结果;
答:A:iValue=100; sValue=modify A:iValue=2; sValue=a2
2)objectModify(new A(a2))与objectModify(a2)有何区别,new A(a2)类似C++中的何种函数。
附录二.程序如下,回答后面问题:
/* Exame Sort */
public class Sort {
public static void main(String[] args) {
int a[] = new int[] { 25, 12, 49 ,38, 65, 97, 76, 13, 27 }; Sort st = new Sort();
System.out.println(\排序前:\ st.printArray(a);
st.sort(a, 0, a.length - 1);
System.out.println(\排序后:\ st.printArray(a); }
public void sort(int[] a, int left, int right) { int point = position(a,left,right); if(point>left+1) sort(a,left,point-1); if(point < right-1)
sort(a,point+1,right); }
public int position(int[] a, int left, int right) { while (left < right) {
while (left < right && a[right] >= a[left]) {
right--; }
if (a[right] < a[left]) { int temp = a[left]; a[left] = a[right]; a[right] = temp; }
while (left < right && a[left] <= a[right]) { left++; }
if(a[left] > a[right]){ int temp = a[left]; a[left] = a[right]; a[right] = temp; } }
System.out.println(\排序中:\ printArray(a); return left; }
public void printArray(int[] a){
for (int n = 0; n < a.length; n++) { if( n == a.length -1) System.out.println(a[n]); else System.out.print(a[n] + \ } } } 问题:
1)该排序是一个什么排序算法?简述该排序算法的原理。 2)写出程序的运行结果。
答:12 ,13 ,25 ,27 ,38 ,49 ,65 ,76 ,97
百度搜索“yundocx”或“云文档网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,云文档网,提供经典综合文库Java软件研发测试题目 - 2009在线全文阅读。
最新更新: