*15、给定如下代码,哪个声明能插入至所示的位置而不会导致编译错误。( )
interface MyConstants { int r =42; int s = 69; int Area; //插入代码 }
A.final double circumference = 2 *Math.PI*r ; B.int total = total + r +s; //后面的total会出错 C.int ArRa = r*s;
D.public static MAIN=15; //MAIN不对 E.protected int CODE = 31337; //CODE不对
16、哪种说法阐明了垃圾收集和终结化机制所承诺的行为? 请选出1个正确的答案。(A.对象直到没有任何引用指向自己时才会立即被销毁 B.对一个对象调用的finalize()方法永远不会多于一次 C.适用于收集的对象会最终由垃圾收集器销毁
D.对象一量适用于垃圾收集,就再也无法由存活线程访问了
17、以下哪个方法是正确的启动新线程的方法?请选出1个正确的答案。( )A.只须创建新线程对象,新线程会自动启动 B.创建新线程对象并调用方法begin() C.创建新线程对象并调用方法start() D.创建新线程对象并调用方法run()
18、哪个方法不是在String类中定义的? 请选出1个正确的答案。( ) A.trim() B.length() C.concat(String) D.hashCode() E.reverse()
19、下列哪个集合实现是线程安全的?请选出1个正确的答案。( ) A.ArrayList B.HashSet C.Vector D.TreeSet E.LinkedList
20、Struts控制器具有的职责中,以下哪种说法不正确。( ) A.拦截客户请求
B.把每个请求映射到一个特定的业务操作
C.从业务操作收集结果,使其成为可供客户使用的形式
D.根据目前的状态和业务操作的结果,确定要显示给客户看的视图 E.控制页面访问的次数和方式
.- 5 -
)
二、简答题(前两题每题5分,3,4题任选一道10分,共20分)
1、Struts框架会使用不同的共享资源区来存储对象,共享资源区都有一个lifetime和visibilty规则,请列举出四种不同的作用域并说明作用范围,并简述转发与重定向的主要差异: Request:作用域是Request,有效范围是当前的请求周期. Session:作用域是Session,有效范围是整个会话周期. Application:作用域是Application,有效期范围是整个应用. PageContext:作用域是Page,有效范围只是当前的jsp页面.
转发: 之前request中存放的变量不会失效,如同把两个页面整合在一起. 重定向: 之前request中存放的变量全部失效,并进入一个新的request作用域. 2、JSP标准提供了三种独立的向JSP添加代码的技术,请列举两种 JavaSciprt
<%Page include=”…” %>
3、某省的计费帐务系统已设计完成,包括计费子系统(C++编写),销帐子系统(c++编写),前台WEB子系统.现客户已确定采用了tuxedo和weblogic中间件及ORACLE产品,请您根据上述工具,及封装业务逻辑具体实现过程的思想,确定tuxedo主要完成哪类操作,并简述前台可以采用何种框架及如何实现的设想。
…
4、在你以前所做的项目中,请列举一种实施效果比较好的框架技术,并结合你的项目说明采用这种框架技术的利与弊,谈谈你的体会,请主要结合业务与实际运行效果,针对这种框架技术的特点展开来说明。 Struts+hibernate+spring框架技术 Struts框架特点和优点
1.采用的mvc的设计模式,mvc使业务逻辑接口和数据接口之间的耦合减弱.struts继承了mvc的各项特性,并根据J2EE的特点进行扩展,视图层提供了丰富了jsp标签库,html,bean,logic,template等等,这有利于分开表现逻辑和程序逻辑. 单个的struts框架不是推荐采用的,之前做的一些项目中就采用了多种框架技术的整合,比如Struts+hibernate+spring
2.struts是开源的软件,能更深入了解其内部实现机制 3.Tablib标记库,可以提高开发效率
4.通过struts.xml配置文件,就可以把整个系统各个部分之间的联系,这对于后期的维护和二次开发有好处. 5.提供Exception的异常处理机制. 6.数据库连接池的管理. 7.struts的action是线程安全的 Struts框架的缺点
1.struts框架采用mvc的同时,使程序的系统结构非常清晰,同时却也增加了各个部分之间关联的复杂度. 2.ActionForm使用不方便,使测试人员无法进行单元测试(测试用例只能用于集成)
三、编程题(前两题每题5分,第3题10分,共20分)
1、在web.xml的配置文件中,利用struts的error-page元素,增加一段代码配置,将404(服务器内部错误)产生时转到error404.jsp进行处理。或者用文字来描述出这种配置方式,系统的处理机制和原理过程。
.- 6 -
2、现有一个数组int data_arr[]={12,31,56,23,27,1,43,65,4,99} ,已完成如下代码,请在注释处增加一段代码,实现这样的功能:将data_arr数组的内容先写入一个名为”temp.dat”文件中,再重新将该文件的内容读出,能逆序将文件的内容输出至控制台(形如99,4,65,43,1,27,23,56,31,12)。 package a;
import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; public class arrayTest {
public static void main(String[] args) throws IOException{
try {
//String data_arr[]={\南京\北京\上海\天津\苏州\杭州\大
连\西藏\新疆\ int data_arr[]={12,31,56,23,27,1,43,65,4,99};
//定义输出流
DataOutputStream douts=new DataOutputStream(new //定义BufferedWriter,如果是中文数组,可以加上字符编码 BufferedWriter bw=new BufferedWriter(new
//定义输入流
DataInputStream dinputs=new DataInputStream(new //定义BufferedReader,如果是中文数组,可以加上字符编码 BufferedReader br=new BufferedReader(new //写入操作
String inContent=\;
for(int i=0;i bw.write(inContent); bw.flush(); //读取操作 String outContent=\; char tag=0; while(tag!=(char)-1){ outContent=tag+br.readLine()+\+outContent.trim(); tag=(char)br.read(); .- 7 - BufferedOutputStream(new FileOutputStream(\))); OutputStreamWriter(douts)); BufferedInputStream(new FileInputStream(\))); InputStreamReader(dinputs)); inContent += data_arr[i]+\; } System.out.println(\逆序结果 \\n\+outContent.substring(0,outContent.length()-1)); //截取 bw.close(); } 3、请您为某地的营业系统写一个用户登录页面。 } } br.close(); e.printStackTrace(); } catch (Exception e) { NO 2 一、选择题(含单选题和多选题,每题2分,共40分) 在每小题列出的四个备选项中只有1个或多个是符合题目要求的,多选题已用*标识出来,请将其答案填写在题后的括号内,错选或未选均无分。 1、在JAVA中,对象是如何传递消息的? 请选出1个正确的答案。( ) A.对象是通过修改彼此的字段来传递消息的 B.对象是通过修改彼此类的静态变量来传递消息的 C.对象是通过调用彼此的实例方法来传递消息的 D.对象是通过调用彼此类的静态方法来传递消息 2、这是否是一条完整且合法的注释? /* // */ 请选出1个正确的答案。 ( ) A.不是,块状注释(/* …. */)尚未闭合,因为这里单行注释(//…)注释掉了块状注释的闭合部分 B.这是一条完全有效的注释 C.这种注释组合是非法的 D.这种注释要看编译器的版本,在早期编译器将拒绝接受它,但在JBUILDER X的后续版本允许这种方式 3、尝试编译,运行如下程序会发生什么? ( ) Public class prog1 { Public static void main (string[] args){ int k = 1 ; int i = ++k + k++ + +k; System.out.println(i) ; } } 请选出1个正确的答案. A.该程序无法编译,编译器会抱怨表达式++k + k++ + +k有问题。 B.该程序可以编译且运行时会打印出值3. C.该程序可以编译且运行时会打印出值4. .- 8 -

