诚信应考考出水平考出风格 浙江大学城市学院
2010— 2011学年第一学期期末考试试卷 《 Java高级程序设计》
开课单位:计算分院;考试形式:开卷;考试时间: 2011年 1月16日 所需时间: 120 分钟 题序 一 二 三 总分 得分 评卷人 得分
一.__简答题_(本大题共_7__题,每题__5__分,共__35_分) 注意:回答问题尽量简明扼要。
多线程可以使用Runnable接口。是否可以认为,通过Runnable接口实现多线程的方式与Thread类没有任何关系?如果你认为有关系,那么Runnable实现类与Thread类是什么关系?请举例说明。 有关系;
Thread类实现了Runnable接口,因此可以扩展了Thread即实现了Runnable接口。
采用“Runnable实现类”方式需要构造一个新的Thread对象,并把Runnable实现类的实例作为参数传入Thread的构造器中——Thread(task: Runnable)。 举例:
public class TestRunnable { public static void main(String[] args) { Thread thread = new Thread(new AnTask()); thread.start(); } }
class AnTask implements Runnable { @Override public void run() { //do something } }
采用“扩展Thread类”方式无只需创建扩展Thread类的实例(无参构造)即可,但是不推荐使用这种方法,因为它将任务和运行任务的机制混在了一起。将任务从线程中分离出来是比较好的设计。 举例:
public class TestThread { public static void main(String[] args) { Thread thread = new AnThread(); thread.start(); } }
class AnThread extends Thread { @Override public void run() { //do something } }
2.通过Jdbc可以访问数据库。很多情况下,既可以使用JDBC-ODBC驱动、也可以使用纯java驱动。请问两种驱动方式都有何特点和优缺点?
JDBC-ODBC桥接方式:就是搭建JDBC与ODBC之间的桥梁,(ODBC是微软的驱程,JDBC是甲骨文的驱程)你要在控制面板上指定数据源,通过数据源来建立连接。这样程序的可移植性并不高,需要有ODBC数据源,几乎只能在Windows平台下运行,跨平台性较差。而且当你换一台主机运行,必须先要去配置数据源,否则程序是无法运行的。
纯Java方式,即JDBC连接方式,就是通过java代码直接与数据库建立连接关系,所以执行效率很高,而且可移植性较好,Java本身跨平台性较好,所以不存在平台的障碍,也无需配置数据源。
早期的JDBC由于各大数据库厂商没有提供较完善的JDBC驱动器,所以JDBC-ODBC成为一个主要的连接方式,但是现在不存在这种问题,只有Access数据库必须采用JDBC-ODBC方式桥接。
请说明BorderLayout布局的特点。如果希望在BorderLayout布局的容器中放入多于5个的控件,那么需要如何处理? 嵌套JPanel
当应用程序需要配置文件时,既可以采用Properties属性文件、也可以采用XML文件。请简要分析它们各自的特点。 Properties属性文件 缺点:
1、无法直接使用中文编码
2、无法表现树形结构、数组结构等复杂数据结构 优点:
1、书写简单方便 2、程序读取简单 XML文件 优点:
1.可拓展性 xml中标记可以由程序员自己定义。 2.xml与内容与形式的分离
(1)显示方式内嵌于数据当中
(2)数据库搜索可以简单高效率的运行 (3)XML是自我描述语言 3.遵守严格的语法要求 缺点:
1.在数据中寻找信息非常困难(树状存储虽然搜索效率高但是插入和修改比较困难) 2.数据自身逻辑不得不让位于HTML语言 3.大数据量低效率
4.XML文档做为数据提供者使用,没有数据库系统那样完善的管理功能
5通信难,由于XML是元置标语言,任何人、公司和组织都可以利用它定义新的标准,这些标准间的通信就成了巨大的问题
MVC是什么?请简要说明它的特点。
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用于组织代码用一种业务逻辑和数据显示分离的方法,这个方法的假设前提是如果业务逻辑被聚集到一个部件里面,而且界面和用户围绕数据的交互能被改进和个性化定制而不需要重新编写业务逻辑MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
请简述Java Swing/AWT的事件处理机制(说明事件源、事件监听器、以及它们的关系)。 Page.322
请举例说明什么情况下需要使用多线程。
1、使用线程可以把占据时间长的程序中的任务放到后台去处理
2、用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度 3、增加算法效率 4、在一些等待的任务实现上如用户输入、文件读写和网络收发数据等,线程就比较有用了。在这种情况下可以释放一些珍贵的资源如内存占用等等。
相关推荐: