(含参考答案)浙江大学城市学院试卷(Java高级程序设计2010-1011-1)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Thread thread = new Thread(new AnTask());
thread.start();
}
}
class AnTask implements Runnable {
@Override
public void run() {
//do something
}
}
采用“扩展Thread类”方式无只需创建扩展Thread类的实例(无参构造)即可,但是不推荐使用这种方法,因为它将任务和运行任务的机制混在了一起。将任务从线程中分离出来是比较好的设计。
2、无法表现树形结构、数组结构等复杂数据结构
优点:
1、书写简单方便
2、程序读取简单
XML文件
优点:
1.可拓展性xml中标记可以由程序员自己定义。
2.xml和内容和形式的分离
(1)显示方式内嵌于数据当中
(2)数据库搜索可以简单高效率的运行
(3)XML是自我描述语言
3.遵守严格的语法要求
缺点:
1.在数据中寻找信息非常困难(树状存储虽然搜索效率高但是插入和修改比较困难)
}
pБайду номын сангаасblic static void main(String[] args) {
TaskThread taskThread = new TaskThread();
taskThread.start();
try {
Thread.sleep(100);
} catch (InterruptedException e) {
(1)OR映射即对象关系映射,O为Object即面向对象程序中的对象,R为Relation即关系数据库。使用OR映射的编程方法使得Java程序员可以使用对象编程思维来操纵数据库,使得程序设计得更加精炼易于理解和修改,把复杂的SQL语句和业务逻辑解耦,使得程序更符合高内聚低耦合的设计思想。
(2)创建和数据库表对应的实体类(Entity或Object),设置相应的域于数据库表的属性做映射,然后设置get/set方法,然后封装操作SQL语句(查删改)到对应的DAO (Data Access Objects数据访问对象)中,由这两种对象构成即为数据持久层,封装了底层数据操作细节,提供相应的接口给业务逻辑层使用,分工明确,体现了高内聚低耦合的思想。
请简述Java Swing/AWT的事件处理机制(说明事件源、事件监听器、以及它们的关系)。
Page.322
请举例说明什么情况下需要使用多线程。
1、使用线程可以把占据时间长的程序中的任务放到后台去处理
2、用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度
举例:
public class TestThread {
public static void main(String[] args) {
Thread thread = new AnThread();
thread.start();
}
}
class AnThread extends Thread {
@Override
纯Java方式,即JDBC连接方式,就是通过java代码直接和数据库建立连接关系,所以执行效率很高,而且可移植性较好,Java本身跨平台性较好,所以不存在平台的障碍,也无需配置数据源。
早期的JDBC由于各大数据库厂商没有提供较完善的JDBC驱动器,所以JDBC-ODBC成为一个主要的连接方式,但是现在不存在这种问题,只有Access数据库必须采用JDBC-ODBC方式桥接。
(1)
ServerSocket:此类实现服务器套接字。服务器套接字等待请求通过网络传入。它基于该请求执行某些操作,然后可能向请求者返回结果。
Socket:此类实现客户端套接字(也可以就叫“套接字”)。套接字是两台机器之间的通信端点。
(2)
DatagramSocket:此类表示用来发送和接收数据报包的套接字。
(2)
List实现类:元素可重复且有序的情况下;
Set实现类:元素不可重复且无需的情况下;
Map实现类:需要存储键值对的情况下。
(3)
方式1:利用Java继承的机制,隐藏了List实现类的细节,让使用者无需考虑List接口的具体实现方式,有利于代码的维护(一个简单的例子,如需更换List的实现类,只需修改在创建对象的那一句代码),缺点就是无法调用ArrayList扩展的方法,例如方法trimToSize();
方式2:直接把ArrayList这个实现类耦合进代码,不利于代码的维护。优点就是可以调用ArrayList扩展的方法。
根据具体情况选择相应的方式。
2.关于OR映射,请回答以下问题:
(1)什么是OR映射?OR映射有何用途?
(2)请简要说明OR映射的基本原理。
(3)访问数据库既可以通过OR映射方式,也可以直接通过JDBC。请分析比较两种访问方式的优缺点?
//do something
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("do something");
}
@Override
public void run(){
多线程可以使用Runnable接口。是否可以认为,通过Runnable接口实现多线程的方式和Thread类没有任何关系?如果你认为有关系,那么Runnable实现类和Thread类是什么关系?请举例说明。
有关系;
Thread类实现了Runnable接口,因此可以扩展了Thread即实现了Runnable接口。
3.关于Java网络编程,请回答以下问题:
(1)在使用TCP协议进行网络编程时,需要使用哪些关键类(包括侦听、数据传送时所涉及的核心类)?并请简要描述这些类的用途。
(2)在使用UDP协议进行网络编程时,需要使用哪些关键类(包括侦听、数据传送时所涉及的核心类)?并请简要描述这些类的用途。
(3)请简要说明上述两种网络通信方式的各自优缺点。
该线程类有一个stopTask方法(为实例方法)。stopTask方法被调用后,可以终止线程的执行(即终止循环)。
public class TaskThread extends Thread {
private boolean isExit;//退出标志
public void excuteTask(){
1.设计一个线程类,该线程类可以执行长时间任务,并且可以被中途终止。要求如下:
该线程类的类名为TaskThread,为Thread的子类。
该线程类中有一个excuteTask方法(为实例方法),该方法用于模拟一种操作(比如压缩文件操作),具体实现代码可以用注释方式说明,无需实现。线程启动执行时,在run方法中可以循环调用上述excuteTask方法。换言之,线程所执行的长时间任务就是对excuteTask方法的循环调用。
e.printStackTrace();
}
taskThread.stopTask();
}
}
实现电话拨号器程序,界面如下:
设计要求如下:
设计一个MyTelephone类,该类从JFrame继承。
public void run() {
//do something
}
}
2.通过Jdbc可以访问数据库。很多情况下,既可以使用JDBC-ODBC驱动、也可以使用纯java驱动。请问两种驱动方式都有何特点和优缺点?
JDBC-ODBC桥接方式:就是搭建JDBC和ODBC之间的桥梁,(ODBC是微软的驱程,JDBC是甲骨文的驱程)你要在控制面板上指定数据源,通过数据源来建立连接。这样程序的可移植性并不高,需要有ODBC数据源,几乎只能在Windows平台下运行,跨平台性较差。而且当你换一台主机运行,必须先要去配置数据源,否则程序是无法运行的。
诚信应考考出水平考出风格
浙江大学城市学院
2010—2011学年第一学期期末测试试卷
《Java高级程序设计》
开课单位:计算分院;测试形式:开卷;测试时间:2011年1月16日
所需时间:120分钟
题序



总分
得分
评卷人
得分
一.__简答题_(本大题共_7__题,每题__5__分,共__35_分)
注意:回答问题尽量简明扼要。
2.数据自身逻辑不得不让位于HTML语言
3.大数据量低效率
4.XML文档做为数据提供者使用,没有数据库系统那样完善的管理功能
5通信难,由于XML是元置标语言,任何人、公司和组织都可以利用它定义新的标准,这些标准间的通信就成了巨大的问题
MVC是什么?请简要说明它的特点。
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用于组织代码用一种业务逻辑和数据显示分离的方法,这个方法的假设前提是如果业务逻辑被聚集到一个部件里面,而且界面和用户围绕数据的交互能被改进和个性化定制而不需要重新编写业务逻辑MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
System.out.println("TaskThread begin");
while(!isExit){
this.excuteTask();
}
System.out.println("TaskThread stop");
}
public void stopTask(){
this.isExit = true;
采用“Runnable实现类”方式需要构造一个新的Thread对象,并把Runnable实现类的实例作为参数传入Thread的构造器中——Thread(task: Runnable)。
举例:
public class TestRunnable {
public static void main(String[] args) {
(3) OR映射:采用低耦合高内聚的设计思想,分别封装了数据、数据访问以及业务逻辑,虽然程序设计会变得更为复杂,但是从长期的扩展性、健壮性、可理解性来说,这样的付出是值得的,尤其是在大型项目中显得尤为必要。
JDBC:直接使用JDBC接口操纵数据库,使得程序模式简单,而且效率会比OR映射略高,更易于性能和存储的优化等,但是在复杂的项目中使得数据库操作和业务逻辑耦合在一起,变的难以调试,所以适合小型项目、业务逻辑简单的项目。
请说明BorderLayout布局的特点。如果希望在BorderLayout布局的容器中放入多于5个的控件,那么需要如何处理?
嵌套JPanel
当使用程序需要配置文件时,既可以采用Properties属性文件、也可以采用XML文件。请简要分析它们各自的特点。
Properties属性文件
缺点:
1、无法直接使用中文编码
ArrayList b = new ArrayList();//用ArrayList类型变量b来访问ArrayList对象
(1)
List特点:元素有放入顺序,元素可重复
Map特点:元素按键值对存储,无放入顺序
Set特点:元素无放入顺序,元素不可重复(注意:元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的)
DatagramPacket:此类表示UDP数据报包。
(3)
1、TCP是基于连接的,UDP是基于无连接
2、对系统资源的要求(TCP较多,UDP少)
3、UDP程序结构较简单
4、流模式和数据报模式
5、TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证
得分
三.__编程题__(本大题共__2__题,每题__10_分,共___20__分。)
3、增加算法效率
4、在一些等待的任务实现上如用户输入、文件读写和网络收发数据等,线程就比较有用了。在这种情况下可以释放一些珍贵的资源如内存占用等等。
得分
二.__论述题__(本大题共__3__题,每题_15_分,共__45_分。)
1. Java集合框架中有List、Set、Map等接口,请分析回答以下问题:
(1)请分别说明上述三个接口的实现类的特点。
(2)请分析比较一下如何选用上述三个接口的实现类,即什么情况下选用List实现类,什么情况下应该使用Set实现类,什么情况下使用Map实现类。
(3)使用接口变量操作集合对象有何优点和缺点?比如,以下两行代码都各自有何优缺点?
List a = new ArrayList();//用List接口类型变量a来访问ArrayList对象
相关文档
最新文档