《Java语言程序设计-第三版-习题答案.docx》由会员分享,可在线阅读,更多相关《Java语言程序设计-第三版-习题答案.docx(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第一章绪论1 .简述Java技术体系的组成。Java技术体系主要由三部分组成:Java平台标准版Java SE, Java平台企业版Java EE, 以及Java平台微缩版Java ME。Java SE为Java桌面和工作组级应用的开发与运行提供了环境。它的实现主要包括Java SE Development Kit (JDK)和 Java SE Runtime Environment (JRE)。Java SE 提供了编写 与运行Java Applet与Application的编译器、开发工具、运行环境与Java API。Java EE 定义了基于组件的多层企业级应用的开发标准,面向企业级和高
2、端服务器的Internet应用 开发。它基于 Java SE,包括 Enterprise JavaBeans (EJB), Java Servlets API 以及 Java Server Pages(JSP)等技术,并为企业级应用的开发提供了各种服务和工具。Java ME是针 对消费类电子设备如移动电话、电视置顶盒、汽车导航系统等的嵌入式计算的一组技术和规 范。2 . Java的特征有哪些?简述这些特征的含义。Java语言的特征包括:简单(Simple)、面向对象(Object oriented ) 分布式 (Distributed) 解释型(Interpreted)、健壮(Robust)
3、安全(Secure)、体系结构中立 (Architecture neutral) 可移植(Portable)、高性能(High performance) 多线程 (Multithreaded)和动态(Dynamic) 简单性:Java语言语法和语义都比较单纯,容易学习和使用。另外,去掉C+中的指针, 取消多重继承和运算符重载,内存管理由程序员移向Java内嵌的自动内存回收机制等 面向对象:作为一种面向对象的编程语言,Java不仅最为“纯洁”,也对面向对象方法 学的支持也最为全面。Java的对象有模块化性质和信息隐藏能力,满足面向对象的封 装要求,同时支持继承和多态。 分布式:Java支持的分布
4、式计算包括两种层次:一是数据分布,即应用系统所操作的 数据可以分散存储在不同的网络节点上,可以通过Java的URL类访问。二是操作分布, 即应用系统的计算可通过嵌在WWW页面中的Applet (小应用程序),分布到不同的网络 节点完成。 半编译,半解释:采用编译器对程序进行编译,但编译得到的是一种中性的字节码,并 不是本机代码,而字节码的执行采取解释执行方式。该特征,提高了 Java的可移植性, 并使得Java语言兼具编译执行的效率优势和解释执行的灵活性。 健壮性:Java提供自动垃圾收集来进行内存管理,防止程序员在管理内存时容易产生 的错误。通过集成的面向对象的例外处理机制,帮助程序员正确地
5、进行选择以防止系统 的崩溃。另外,Java是一种强类型语言,程序编译时要经过严格的类型检查,防止程 序运行时出现类型不匹配等问题。 安全性:Java在语言和运行环境中引入了多级安全措施,其采用的主要安全机制有: 内存分配及布局由Java运行系统规定。运行系统执行基于数字签名技术的代码认证、 字节码验证与代码访问权限控制的安全控制模型。 体系结构中立:Java为了做到结构中立,除了上面提到的编译生成机器无关的字节码 抽象类也可有构造方法、普通的成员变量或方法,也可以派生抽象类的子类。但抽象类在使 用上有特殊的限制,即不能创建抽象类的实例。抽象类与接口之间的区别:(1) 接口中的所有方法都是抽象的
6、,而抽象类可以定义带有方法体的不同方法。(2) 一个类可以实现多个接口,而只能继承一个抽象父类。(3) 接口与实现它的类不构成类的继承体系,即接口不是类体系的一部分。因此,不相 关的类也可以实现相同的接口。而抽象类是属于一个类的继承体系,并且一般位于 类体系的顶层。5.下列接口的定义,哪个是正确的?(1) interface Printable void print () ;(2)abstract interface Printable void print ();(3)abstract interface Printable extends Interface!, Interface2 vo
7、id print () ;(4)interface Printablevoid print ();正确的接口定义:(4)第六章异常处理1 .什么是异常? Java异常处理有哪些方法?在程序运行时打断正常程序流程的任何不正常的情况称为错误或异常。例如,试图打 开的文件不存在、网络连接中断、操作符越界和要加载的类找不到等。异常处理是指程序获得异常并处理,然后继续程序的执行。异常处理具体有两种方式: 捕获并处理异常;将方法中产生的异常抛出。2 . Java中的异常处理主要处理哪些类型的异常?Java的异常处理机制主要针对RuntimeException类型和除Error类型以外的其他 Excepti
8、on类型。RuntimeException意味着程序设计或实现问题,如:数组使用越界;算术 运算异常(如除0运算);空指针异常即访问没有初始化的空指针等。正确设计与实现的程 序不应产生这些异常。对于这类异常,处理的策略是纠正错误。其它的异常Exception类, 通常是由环境因素引起的,例如:文件不存在,无效URL等。这类异常经常是由用户的误操 作引起的,可以在异常处理中处理,例如提示用户进行正确操作等3 .用户程序如何自定义异常?.首先定义异常类,用户自定义的异常类定义为Exception类的子类。这样的异常类可包含普通类的内容。定义了自定义异常类后,程序中的方法就可以在恰当的时候利用thr
9、ow 语句将该种异常抛出,注意要在方法的声明中声明抛出该类型的异常。之后,Java程序在 调用声明抛出自定义异常的方法时,要进行异常处理。具体可以采用上面介绍的两种方式: 利用宜y-catch-finally语句捕获并处理;声明抛出该类型的异常。4 .系统异常如何抛出?用户自定义异常如何抛出?如果执行th块里的语句时出现系统定义异常,JVM会自动生成一个相应的异常对象, 并定位相应的异常处理语句块。用户自定义异常类后,异常是在用户方法的声明中使用 throws子句进行声明的,执行throw语句进行异常对象抛出。5 .设下列try-catch语句块中的第二个语句s2将引起一个异常,试回答下列问题
10、:try (si;s2;s3;catch(ExceptionType el) catch(ExceptionTpye e2) s4;(1) s3会执行吗?产生异常后,s3不会执行,系统转型catch语句匹配进行错误处理的语句。(2)如果异常未被捕获,s4会被执行吗?如果异常未被捕获,则运行流程会转型上一层调用程序,s4不会被执行。(3)如果catch子句捕获了异常,s4会执行吗?如果catch子句捕获了异常,s4会执行。第七章输入/输出1,什么是节点流?什么是过滤流或处理流?节点流:以特定源如磁盘文件、内存某区域或线程之间的管道为端点构造的输入/输出 流,它是一种最基本的流。过滤流:以其它已经
11、存在的流为端点构造的输入/输出流,称为过滤流或处理流,它要 对与其相连的另一个流进行某种转换。2 . Java的输入/输出流可以实现哪些类型的输入/输出?内存I/O;管道I/O;文件I/O;对象I/O;数据转换,即按基本数据类型读、写数据;缓 存I/O,即对数据进行缓存,以减少I/O的次数;流数据计数;流预读,即通过缓存机制进行 预读;字节与字符转换等。3 .字节流与字符流之间有什么区别?字节流:流中的数据以8位字节为单位进行读写,以InputStream与Outputstream为 基础类。字符流:流中的数据以16位字符为单位进行读写,以Reader与Writer为基础类。 字节流与字符流的
12、主要差别是处理的数据类型不同,其它基本相类似。4 .管道流的主要用途是什么?如何创建管道流?管道流可以实现线程间数据的直接传输。线程之间通过管道传输数据与共享缓冲区方法 相比,不需要进行线程同步,节省内存并提高了程序的运行效率。管道流的创建是将管道输出流和管道输入流进行挂接。基于管道类的构造方法,可以采 取下列两种方式创建管道流:PipedlnputStream pin= new PipedlnputStream();PipedOutputStream pout = new PipedOutputStream(pin); 或PipedlnputStream pin= new Pipedlnpu
13、tStream();PipedOutputStream pout = new PipedOutputStream(); pin. connect (out);或 pout, connect (in);管道流创建后,需要把它的输出流连接到一个线程的输出流,并且把它的输入流连接到 另一个线程的输入流,才能利用该管道流实现这两个线程之间的数据交流。6. RandomAccessFile类实现了哪两个接口?具有哪些输入输出功能?RandomAccessFile类实现了Datalnput和DataOutput接口。RandomAccessFile类提供的文件操作主要分为三类:对文件指针的操作、读操作与写
14、操作。 RandomAccessFile实现的是随机读写,即可以在文件的任意位置进行数据的读写。 RandomAccessFile类可可以按数据类型读取数据,读方法主要包括:readBoolean(), readChar (), readlnt (), readLongO , readFloat (), readDouble (), readLine (), readUTF() 等。这些方法的功能与DatalnputStream类中的同名方法相同。其中,readLine()从当前位 置开始,到第一个n为止,读取一行文本,它将返回一个String对象。RandomAccessFile 类具有类型
15、转换功能的写操作方法。RandomAccessFile类包含的写方法主要包括: WriteBoolean (), WriteChar (), WriteUTF (), Writelnt (), WriteLongO , WriteFloat (), WriteDouble ()等。8 .什么是对象串行化?将Java程序中的对象保存在外存中,称为对象永久化。对象永久化的关键是将它的状态 以一种串行格式表示出来,以便以后读该对象时能够把它重构出来。因此对Java对象的读、写的 过程被称为对象串行化(Object Serialization) o Java 定义了ObjectInputStream类
16、和 ObjectOutputStream类实现对象的串行化。9 .利用ObjectlnputStream/ObjectOutputStream可以存取哪种类型的对象?写入对象的方 法是什么?读取对象的方法是什么?如果一个对象它所对应的类实现了 Serializable接口,则该对象是可以利用 ObjectInputStream / ObjectOutputStream 进行存取, 即 ObjectlnputStream /ObjectOutputStream可以存取Serializable类型的对象。写入对象的方法,是 ObjectOutputStream类的writeObject ()方法;
17、读取对象的方法是ObjectlnputStream类的 readObject ()方法。第八章 基于Swing的图形化用户界面1. Swing与AWT最大的区别是什么?AWT定义各种组件(Components)类提供平台独立的API,然后利用特定于平台的各种类 的实现(称为对等组件,peers)提供具有特定平台风格的L&F。Swing与AWT最大的区别是, Swing提供了丰富的组件,并且提供了独立于运行平台的GUI构造框架。Swing是纯Java实现 的轻量级(Light-weight)组件,没有本地代码,不依赖操作系统的支持。Swing在不同的 平台上都能够具有一致的显示风格,并且能够提供
18、本地窗口系统不支持的其它特性。2. Swing组件有哪些特性?Swing组件的特性包括:(1)组件的多样化(2)采用分离模型结构(Separable Model Architecture),即采用组件及与组件相关的 数据模型(或简称模型)这样的分离结构。(3)可设置的组件外观感觉(Look and Feel, L&F)(4)支持高级访问方式,所有Swing组件都实现了Accessible接口,提供对非常规高级访问 方式的支持。(5) Swing组件提供热键,支持键盘代替鼠标的操作(6)对Swing组件可以设置一个和多个边框。(7)可以在组件上使用图标3.Swing中,能够向JFrame中直接添
19、加组件吗?如何向JFrame中添加组件构造GUI?Swing组件不能直接添加到顶层容器中,必须添加到一个与顶层容器相关联的内容面板 (Content Pane)上。在JDKL5后的版本中,为了方便使用,JFrame的add()方法被重写, 可以把通过该方法添加的组件自动转交给内容面板。向JFrame中添加组件可采用两种方式:(1)用getContentPane ()方法获得JFrame的内容面板,再使用add ()方法向其中加入 组件。(2)建立一个JPanel或JDesktopPane等中间容器,把组件添加到中间容器中,再用 setContentPane ()方法把该容器设置为JFrame的
20、内容面板,另外,在JDK1.5后的版本中,可以象操作AWT中的容器一样,直接对容器添加组件。4 . AWT中支持几种布局管理器?它们各自的风格是怎样的?AWT支持的布局管理器包括: FlowLayout流式布局 BorderLayout边界布局 GridLayout网格布局 CardLa.yout卡片布局 Gri dBagLayout网格包布局FlowLayout容器内的组件采用从左到右,从上到下逐行摆放。BorderLayout布局管理器 将容器分为5个区:East、West、South、North、Center,可以将组件分别按东、西、南、 北、中5个方位摆放。GridLayout布局管理
21、器把容器分成n行m列同样大小的网格单元。每个 网格单元可容纳一个组件,并且此组件将充满网格单元。组件按照从左至右,从上至下的顺 序填充。CardLayout可以使两个或更多的组件(一般是Panel)共享同一显示空间。CardLayout 把这些组件像一系列卡片一样叠放,一个时刻只有最上面的是可见的。GridBagLayout的组 件显示区域是一组动态的、矩形的网格单元,每个组件占有一个或多个网格单元。5 .设计GUI的一般步骤是什么?基于Swing的应用程序GUI, 一般包括如下部分:(1)引入Swing包或AWT及其它程序包(2)选择GUI的外观风格L&F(3)创建并设置窗口容器,即创建GU
22、I的顶层容器并进行布局管理器等设置(4)创建与添加Swing或AWT组件(5)显示顶层容器,将整个GUI显示出来6 .试述委托方式(监听器方式)的事件处理机制。委托方式(监听器方式)的事件处理机制中,首先要定义监听器类。在Java中每类事件 都定义了一个相应的监听器接口,该接口中定义了接收事件的方法。实现该接口的类,其对 象可作为监听器注册。然后需要将监听器类的对象注册为组件的监听器。在GUI中,需要响 应用户操作的相关组件耍注册一个或多个相应事件的监听器,该监听器中包含了能接收和处 理事件的事件处理方法。在该类事件产生时,事件对象只向已注册的监听器报告,并运行相 应的事件处理方法。7 .如何
23、采用内部类实现事件处理?事件适配器给监听器类的定义带来了方便,但同时也限制了监听器类对其它类的继承。 为了既使用Adaptor类,又避免多重继承的限制,例如,假设我们要编写一个Applet程序, 主类名称为MyApplet, MyApplet中要包含鼠标事件的处理方法。因为MyApplet类是Applet 类的子类,所以该类将不能再继承MouseAdapter。解决这个问题的有效方法是采用内部类, 由内部类继承相应Adaptor类。该类的对象可以作为执行事件处理的监听器注册。例如: public class MyClass extends Applet someObject. addMouse
24、Listener(new MyAdapter(); classMyAdapter extends MouseAdapter public void mousedicked(MouseEvent e) . /Event handler implementation goes here.8 . Window组件可以使用哪些类型的监听器?Window组件可以使用WindowListener,对窗口的打开、关闭、激活、去活等操作进行响 应;WindowFocusListener,对窗口获得聚焦和失去聚焦的操作进行响应; WindowstateListener,当窗口的状态发生变化,如对最小化和最大化等
25、操作进行响应。9 .如何设置组件的颜色和字体?Component类是一个抽象类,是AWT中所有组件的父类,也是Swing中JComponent类父类,JComponent类是Swing中除了顶层容器外其他组件的父类。Component类为其子类提供了很多 功能,包括提供方法setBackGround(), setForeGround(), setFont ()等方法设置组件字体、 颜色等。所以可以调用具体组件的上述方法进行颜色和字体的设置。第九章Applet程序设计1. Applet的运行过程是怎样的?.Applet的运行包括如下四个步骤:(1)浏览器加载指定URL中的HTML文件;(2)浏览
26、器 解析HTML文件;(3)浏览器加载HTML文件中指定的Applet类;(4)浏览器中的Java运行环境 运行该Applet。2. Applet生命周期相关的方法有哪些?这些方法是如何被调用的?Applet生命周期相关方法包括init(), start (), stopO , destroy ()等4种方法。init ()是在装载Applet时被调用,使Applet执行一些基本初始化start ()是在init () 方法之后被调用,使Applet成为激活状态。stop。是在浏览器离开含有Applet的网页时被 调用,可用该方法暂时停止线程。Destroy。是在浏览器完全关闭之前被调用,彻底
27、终止 Applet,从内存卸载并释放该Applet的所有资源。3. Applet显示或刷新过程中要调用哪些方法?.Applet在初次显示,或运行过程中浏览器窗口大小发生变化而引起Applet的显示发生变 化时,将调用Applet的paint ()方法进行Applet绘制。当Applet代码需要更新显示内容时, 则从程序中调用repaint。方法,则AWT线程在接受到该方法的调用后,将调用Applet的 update ()方法,而update ()方法再调用组件的paint ()方法实现显示的更新。7. JApplet中是否可以添加AWT组件?为什么?JApplet中一般都使用Swing组件,而
28、不使用AWT组件。因为应避免Swing组件与AWT 组件混合使用:在Swing GUI中应该全部使用轻量级组件,避免使用被称为重量级组件的 AWT组件。第十章线程1 .试述进程与线程之间的关系。进程是内核级的实体。包含虚存映象、文件指示符,用户II)等。这些结构都在内核空间 中,用户程序只有通过系统调用才能访问与改变。线程是用户级的实体,是程序中的单个执 行流,线程结构驻留在用户空间中,能够被普通的用户级函数组成的线程库直接访问。寄存 器(栈指针,程序计数器)是线程专有的成分。一个进程可以通过运行多个线程来并发地执 行多项任务,进程中的所有线程共享该进程的状态。2 . Java中线程的模型由几
29、部分构成?在Java中线程的模型就是一个CPU、程序代码和数据的封装体,即一个虚拟的CPU,该CPU 执行的代码,以及代码所操作的数据。3 .创建线程的两种方式是什么?Java中线程体由Thread类的run()方法定义,有两种方式进行run ()方法的定义:(1) 实现Runnable接口。 Runnable接口只提供了一个public void run()方法,定义一个 类实现Runnable接口,并将该类的实例作为参数传给Thread类的一个构造函数,从而创建一 个线程;(2)继承Thread类。Thread类本身实现了Runnable接口,通过继承Thread类, 重写其中的run()
30、方法定义线程体,然后创建该子类的对象创建线程。4 .什么是线程调度? Java的线程调度策略是什么?在Java中,为了充分发挥系统的性能,提高多线程并发程序的执行效率,需要定义一定 的策略或规则,分配各个线程对CPU的使用权,这就是线程调度。Java的线程调度策略是一种基于优先级的抢先式调度。这种调度策略的含义是:Java 基于线程的优先级选择高优先级的线程进行运行。该线程(当前线程)将持续运行,直到它 中止运行,或其它高优先级线程成为可运行的。在后一种情况,低优先级线程被高优先级线 程抢占运行。5 .线程的生命周期中包含几个状态?各状态之间是如何进行转换的?线程生命周期状态主要包括:新建状态
31、(new )、可运行状态(Runnable)、运行状态 (Running).阻塞状态(Blocked)和终止状态(Dead)。调用一个线程类的构造方法,便创建了一个线程;新建的线程调用start。方法,将使 线程的状态从New转换为Runnable;线程依照调度策略获得CPU使用权,则进入运行状态。 运行状态是线程占有CPU并实际运行的状态。此时线程状态的变迁有三种情况:(1)如果线 程正常执行结束或应用程序停止运行,线程将进入终止状态。终止状态是线程执行结束的状 态,没有任何方法可改变它的状态。(2)如果当前线程执行了 yield()方法,或者当前线 程因调度策略由系统控制进入可运行状态。(
32、3)如果发生下面几种情况时,线程就进入阻塞 状态:线程调用了 sleep()方法、join()方法,进入阻塞状态。睡眠时间到或所等待的线 程结束时,进入可运行状态;线程调用wait ()方法时,由运行状态进入阻塞状态。线程若 被notify。等唤醒或被中断、或者等待时间到,线程将进入对象锁阻塞状态。如果线程中 使用synchronized来请求对象的锁未获得时,也将进入对象锁阻塞状态。该状态下的线程 当获得对象锁后,将进入可运行状态。6 . Java中采用什么机制实现多线程的同步?Java多线程同步采用传统的封锁技术。程序中各个并发线程中对同一个对象进行访问 的代码段,称为临界区(Critic
33、al Sections)。临界区用“synchronized”关键字标识。Java 通过控制临界区代码的执行,实现线程的同步。临界区的控制是通过对象锁进行的。Java 平台将每个由synchronized (someObject) 语句指定的对象someObject设置一个锁,称 为对象锁(Monitor)o对象锁是一种独占的排它锁(Exclusive locks),即当一个线程获得 了对象的锁后,便拥有该对象的操作权,其他任何线程不能对该对象进行任何操作。线程在 进入临界区时,首先通过synchronized (someObject)语句测试并获得对象的锁,只有获 得对象锁才能继续执行临界区
34、中的代码,否则将进入等待状态。7 .线程创建后如何启动?下列哪些方法是Thread类的静态方法?哪些方法在Java 2中已经不建议使用?run() ; start() ; stopO ; suspend() ; resume() ; sleep() ; yield。线程创建后,调用start。方法将使线程进入可运行状态,在这种状态下线程依照调度 策略获得CPU使用权,则进入运行状态。下列方法中,sleep。和yield。是Thread类的静态方法。stop。、suspend。和resume() 方法在Java 2中已经不建议使用。第十一章Java网络程序设计L Java对网络编程提供了哪些支持
35、?Java提供了两个不同层次的网络支持机制:(1)URL层次。Java提供了使用URL访问网络资源的类,使得用户不需要考虑URL中标识 的各种协议的处理过程,就可以直接获得URL资源信息。这种方式适用于访问Interent尤 其是WWW上的资源。(2) Socket层次。Java中提供了对应Socket机制的一组类,支持流和数据报两种通信过 程。这种机制中,用户需要自己考虑通信双方约定的协议,虽然烦琐但具有更大的灵活性和 更广泛的适用领域。支持URL的类,实际上也是依赖于下层支持Socket通信的类来实现的, 不过这些类中已有几种主耍协议的处理,如ftp, Http等。2.利用URL通信机制可
36、以使用哪些方式进行网络通信?一种方式是从URL直接读取。当成功创建了 URL对象后,就可以利用该对象访问网上的 资源。通过URL可以象访问本地文件一样访问网络上其它主机中的文件。除了这种使用方法 之外,还可以通过URL的openStream ()方法,得到java. io. InputStream类的对象,从该 输入流方便地读取URL地址的数据。另一种方式是通过URLConnection类在应用程序与URL 之间建立一个连接,通过URLConnection类的对象,对URL所表示的资源进行读、写操作。3,基于Socket可以实现哪两种通信?简述这两种通信的工作原理。基于Socket可以实现有连
37、接通信方式和数据报通信方式。Java的有连接通信采用流式I/O模式。Socket是两个进程间通信链的端点,每个Socket 有两个流:一个输入流和一个输出流。只要向Socket的输出流写,一个进程就可以通过网 络连接向其它进程发送数据;同样,通过读Socket的输入流,就可以读取传输来的数据。 有连接通信一般要经历四个基本步骤:创建Socket,建立连接;打开连接到Socket的输入 /输出流;按照一定的协议对Socket进行读/写操作;关闭Socket。Java 在 java, net 包中提供了两个类:DatagramSocket 和 DatagramPacket 支持采用 UDP 协议的
38、数据报方式通信。采用数据报方式进行通信的过程主要分为以下三个步骤:创建数据 报Socket;构造用于接收或发送的数据报,并调用所创建Socket的receive。方法进行数 据报接收或调用send。发送数据报;通信结束,关闭Socket。第十二章JDBC技术1 .试述JDBC的体系结构。JDBC技术的主要思想就是为应用程序访问数据库提供统一的接口,屏蔽各种数据库之 间的异构性,保证Java程序的可移植性。在JDBC技术中,程序员使用JDBC API将标准的 SQL语句通过JDBC驱动管理器(JDBC Driver Manager)传递给相应的JDBC驱动(JDBC Driver),并由该JDB
39、C驱动传送给所指定的数据库服务器。JDBC体系结构如下图所示。2 . JDBC驱动有哪几种类型?.JDBC驱动有四种类型:JDBC-ODBC桥、本地API部分Java驱动、网络协议完全Java 驱动、本地协议完全Java驱动。JDBC-ODBC桥,实际上是利用了现有的ODBC,它将JDBC调用翻译为ODBC的调用;本地 API部分Java驱动将JDBC调用转换成对特定DBMS客户端API的调用;网络协议完全Java 驱动将JDBC的调用转换为独立于任何DBMS的网络协议命令,并发送给一个网络服务器中的 数据库中间件,该中间件进一步将网络协议命令转换成某种DBMS所能理解的操作命令;本 地协议完
40、全Java驱动直接将JDBC的调用转换为特定DBMS所使用的网络协议命令,并且完 全由Java语言实现。3 .利用JDBC开发数据库应用的一般步骤是什么?利用JDBC开发数据库应用一般包括如下步骤:(1) 建立与数据库的连接。(2) 执行SQL语句。(3) 处理结果集。(4) 关闭数据库连接。4 .什么是预编译语句?怎样使用预编译语句?预编译语句PreparedStatement是java, sql中的一个接口,它是Statement的子接口。 在创建PreparedStatement对象时就指定了 SQL语句,该SQL语句将立刻发送给DBMS进行 编译。当该预编译语句被执行时,DBMS可以直
41、接运行编译后SQL语句。另外,预编译语句 还支持带有参数的SQL语句,这使得我们可以对相同的SQL语句替换参数从而多次使用。因 此,当一个SQL语句需要执行多次时,使用预编译语句可以减少执行时间,提高执行效率。一般是在需要反复使用一个SQL语句时,使用预编译语句。因此预编译语句常常放在一 个for或while循环中使用,通过循环反复设置参数从而多次使用该SQL语句。5 .什么是存储过程?怎样使用存储过程?存储过程是封装了对数据库更新或查询操的一组SQL语句,形成一个相对独立的逻辑单 元,能够完成特定的任务。存储过程可以带有参数。在Java程序中通过JDBC可以调用存储过程。首先要通过一个打开的
42、数据库连接创建一 个CallableStatement类型的对象,该对象将包含对存储过程的调用。然后再调用该对象的 executeQuery ()方法执行存储过程。6 .什么是事务?怎样实现事务操作?事务是保证数据库中数据的完整性与一致性的重要机制。事务由一组SQL语句组成,具 有原子性,即这组语句要么都执行,要么都不执行。JDBC中实现事务操作,关键是下面Connection接口的三个方法:通过调用当前连接的 setAutoCommit (false)来关闭这种自动提交模式,从而把多个SQL语句作为一个事务;调用 连接的commit。方法提交事务;当一个事务执行过程中出现异常而失败时,为了保
43、证数据 的一致性,必须调用连接的rollback。方法使事务回滚。7 . JDBC 2. 0与JDBC 3. 0中增加了哪些新特性?.JDBC 2.0主要增加了下列功能:在SQL语句执行所返回的结果集中,可以向前或向后 滚动记录,并可以定位到指定的记录;利用Java API对数据库表中的数据进行更新;批量 更新操作;使用SQL3中的数据类型。JDBC 3.0在预编译语句、存储过程调用、结果集处理以及所支持的数据类型等方面增 加了很多功能,如数据库连接池的操作与配置,事务处理中安全点(Savepoint)的支持等。8 . JDBC 4.0中增加了哪些新特性?在JDBC4.0中,提供了更好的代码可
44、管理性和灵活性,并且支持更复杂的数据类型。 JDBC4.0新特性或新的增强主要体现在驱动和连接管理、异常处理、数据类型支持以及增加 API等方面。外,还制定了完整统一的语言文本。为了使Java的应用程序能不依赖于底层具体的系 统,Java语言环境还提供了一个用于访问底层操作系统功能的可扩展类库,当程序使 用这些库时,可以确保它能运行在支持Java的各种平台上。 可移植性:Java的最大特点是“一次编程,处处运行。任何机器只要配备了 Java解 释器,便可运行Java程序。这种可移植性源于两方面:一是Java的半编译、半解释特 征;另一方面是Java体系结构中立,采用标准的独立于硬件平台的数据类
45、型。 高性能:Java语言的字节码与机器码十分接近,使得字节码到机器码的转换十分快捷。 另外,Java还提供了即时编译技术,提高了 Java应用的运行速度。 多线程:Java的特点是在语言级嵌入了多线程机制,支持程序的并发处理功能。从程 序的角度看,一个线程就是应用程序中的一个执行流。Java将临界区保护规则等集成 到语言中实现线程同步,使这些规则的使用更加方便有效。 动态特性:Java程序的基本组成单元是类,而Java的类又是运行时动态装载的,这使 将Java可以动态地维护应用程序及其支持类之间的一致性。3. Java语言的语法机制与C/C+有何异同?Java的基本语法机制,例如:数据类型、
46、表达式、程序流控制、结构化异常处理等, 都与C+相同。明显区别于C+的语法机制,包括类(class)、接口 (Interface).程序包 (package),多线程以及取消指针。4. Java运行系统由哪些部分组成? Java程序的运行过程是怎样的?.Java运行系统一般包括以下几部分:类装配器、字节码验证器、解释器、代码生成器 和运行支持库。Java运行系统运行的是字节码即.class文件。执行字节码的过程可分为三步:(1)代码的装入由类装配器装入程序运行时需要的所有代码,其中包括程序代码中调用到的所有类。 当装入了运行程序需要的所有类后,运行系统便可以确定整个可执行程序的内存布局。 (2
47、)代码的验证由字节码检验器进行安全检查,以确保代码不违反Java的安全性规则,同时字节码 验证器还可发现操作数栈溢出、非法数据类型转化等多种错误。(3)代码的执行Java字节码的运行可以有两种方式:即时编译(Just-In-Time)方式和解释执行方式。5. 什么是JVM?Java虚拟机是一个想象中的,能运行Java字节码的操作平台。而JVM规范提供了这个 平台的严格的规范说明,包括指令系统,字节码格式等。JVM进一步可用软件在不同的计算 机系统上实现或用硬件实现。JVM的实现包括字节码验证、解释器、内存垃圾回收等,是上 述Java运行系统的核心,Java运行系统是各供应商对JVM的具体实现。
48、7.编写一个Java程序,在屏幕上输出“欢迎学习Java语言! ”的字符串。public class Welcomepublic static void main (String args)System, out. printin (欢迎学习 Java 语言! );第二章面向对象程序设计基本概念1 .什么是对象?什么是类?什么是实体?它们之间的相互关系是怎样的?试举例说明。在面向对象方法中,对象是现实世界实体或概念在计算机世界中的抽象表示,是具有唯 一对象名、固定对外接口的一组变量/属性和方法的集合,是用来模拟组成或影响现实世界 问题的一个或一组因素。类定义了对象类型,包含同一类型的对象具有共同的特征与行为。使用class定义的类 在程序中称为一种抽象数据类型,它是面向对象程序设计语言的基本概念。一个类在定义后, 我们就可以象使用其它数据类型一样,声明该类的变量并创