还剩16页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
第一章绪论
1.简述Java技术体系的组成Java技术体系主要由三部分组成Java平台标准版Java SE,Java平台企业版Java EE,以及Java平台微缩版Java MEJava SE为Java桌面和工作组级应用的开发与运行提供了环境它的实现主要包括Java SEDevelopmentKit JDK和Java SERuntime EnvironmentJREJava SE提供了编写与运行Java Applet与Application的编译器、开发工具、运行环境与Java APIJavaEE定义了基于组件的多层企业级应用的开发标准,面向企业级和高端服务器的Internet应用开发它基于JavaSE,包括Enterprise JavaBeansEJB,Java ServletsAPI以及Java ServerPagesJSP等技术,并为企业级应用的开发提供了各种服务和工具Java ME是针对消费类电子设备如移动电话、电视置顶盒、汽车导航系统等的嵌入式计算的一组技术和规范
2.Java的特征有哪些?简述这些特征的含义Java语言的特征包括简单Simple、面向对象Object oriented分布式Distributed^解释型Interpreted、健壮Robust安全Secure、体系结构中立Architecture neutral可移植Portable、高性能High performance多线程Multithreaded和动态Dynamic•简单性Java语言语法和语义都比较单纯,容易学习和使用另外,去掉C++中的指针,取消多重继承和运算符重载,内存管理由程序员移向Java内嵌的自动内存回收机制等•面向对象作为一种面向对象的编程语言,Java不仅最为“纯洁”,也对面向对象方法学的支持也最为全面Java的对象有模块化性质和信息隐藏能力,满足面向对象的封装要求,同时支持继承和多态•分布式Java支持的分布式计算包括两种层次一是数据分布,即应用系统所操作的数据可以分散存储在不同的网络节点上,可以通过Java的URL类访问二是操作分布,即应用系统的计算可通过嵌在WWW页面中的Applet小应用程序,分布到不同的网络节点完成•半编译,半解释采用编译器对程序进行编译,但编译得到的是一种中性的字节码,并不是本机代码,而字节码的执行采取解释执行方式该特征,提高了Java的可移植性,并使得Java语言兼具编译执行的效率优势和解释执行的灵活性•健壮性Java提供自动垃圾收集来进行内存管理,防止程序员在管理内存时容易产生的错误通过集成的面向对象的例外处理机制,帮助程序员正确地进行选择以防止系统的崩溃另外,Java是一种强类型语言,程序编译时要经过严格的类型检查,防止程序运行时出现类型不匹配等问题•安全性Java在语言和运行环境中引入了多级安全措施,其采用的主要安全机制有内存分配及布局由Java运行系统规定运行系统执行基于数字签名技术的代码认证、字节码验证与代码访问权限控制的安全控制模型•体系结构中立Java为了做到结构中立,除了上面提到的编译生成机器无关的字节码抽象类也可有构造方法、普通的成员变量或方法,也可以派生抽象类的子类但抽象类在使用上有特殊的限制,即不能创建抽象类的实例抽象类与接口之间的区别
(1)接口中的所有方法都是抽象的,而抽象类可以定义带有方法体的不同方法
(2)一个类可以实现多个接口,而只能继承一个抽象父类
(3)接口与实现它的类不构成类的继承体系,即接口不是类体系的一部分因此,不相关的类也可以实现相同的接口而抽象类是属于一个类的继承体系,并且一般位于类体系的顶层
5.下列接口的定义,哪个是正确的?1interface Printable{void print{};}2abstract interface Printable{void print;}3abstract interfacePrintable extendsInterface!,Interface2{void print{};}4interfacePrintable{void print;}正确的接口定义4第六章异常处理
1.什么是异常?Java异常处理有哪些方法?在程序运行时打断正常程序流程的任何不正常的情况称为错误或异常例如,试图打开的文件不存在、网络连接中断、操作符越界和要加载的类找不到等异常处理是指程序获得异常并处理,然后继续程序的执行异常处理具体有两种方式:捕获并处理异常;将方法中产生的异常抛出
2.Java中的异常处理主要处理哪些类型的异常?Java的异常处理机制主要针对RuntimeException类型和除Error类型以外的其他Exception类型RuntimeException意味着程序设计或实现问题,如数组使用越界;算术运算异常(如除0运算);空指针异常即访问没有初始化的空指针等正确设计与实现的程序不应产生这些异常对于这类异常,处理的策略是纠正错误其它的异常Exception类,通常是由环境因素引起的,例如文件不存在,无效URL等这类异常经常是由用户的误操作引起的,可以在异常处理中处理,例如提示用户进行正确操作等
3.用户程序如何自定义异常?.首先定义异常类,用户自定义的异常类定义为Exception类的子类这样的异常类可包含普通类的内容定义了自定义异常类后,程序中的方法就可以在恰当的时候利用throw语句将该种异常抛出,注意要在方法的声明中声明抛出该类型的异常之后,Java程序在调用声明抛出自定义异常的方法时,要进行异常处理具体可以采用上面介绍的两种方式利用宜y-catch-finally语句捕获并处理;声明抛出该类型的异常
4.系统异常如何抛出?用户自定义异常如何抛出?如果执行th块里的语句时出现系统定义异常,JVM会自动生成一个相应的异常对象,并定位相应的异常处理语句块用户自定义异常类后,异常是在用户方法的声明中使用throws子句进行声明的,执行throw语句进行异常对象抛出
5.设下列try-catch语句块中的第二个语句s2将引起一个异常,试回答下列问题try si;s2;s3;}catchExceptionType el{}catchExceptionTpye e2{}s4;1s3会执行吗?产生异常后,s3不会执行,系统转型catch语句匹配进行错误处理的语句2如果异常未被捕获,s4会被执行吗?如果异常未被捕获,则运行流程会转型上一层调用程序,s4不会被执行3如果catch子句捕获了异常,s4会执行吗?如果catch子句捕获了异常,s4会执行第七章输入/输出1,什么是节点流?什么是过滤流或处理流?节点流以特定源如磁盘文件、内存某区域或线程之间的管道为端点构造的输入/输出流,它是一种最基本的流过滤流以其它已经存在的流为端点构造的输入/输出流,称为过滤流或处理流,它要对与其相连的另一个流进行某种转换
2.Java的输入/输出流可以实现哪些类型的输入/输出?内存I/O;管道I/O;文件I/O;对象I/O;数据转换,即按基本数据类型读、写数据;缓存I/O,即对数据进行缓存,以减少I/O的次数;流数据计数;流预读,即通过缓存机制进行预读;字节与字符转换等
3.字节流与字符流之间有什么区别?字节流流中的数据以8位字节为单位进行读写,以InputStream与Outputstream为基础类字符流流中的数据以16位字符为单位进行读写,以Reader与Writer为基础类字节流与字符流的主要差别是处理的数据类型不同,其它基本相类似
4.管道流的主要用途是什么?如何创建管道流?管道流可以实现线程间数据的直接传输线程之间通过管道传输数据与共享缓冲区方法相比,不需要进行线程同步,节省内存并提高了程序的运行效率管道流的创建是将管道输出流和管道输入流进行挂接基于管道类的构造方法,可以采取下列两种方式创建管道流PipedlnputStream pin=new PipedlnputStream;PipedOutputStream pout=new PipedOutputStreampin;或PipedlnputStream pin=new PipedlnputStream;PipedOutputStream pout=new PipedOutputStream;pin.connect out;或pout,connect in;管道流创建后,需要把它的输出流连接到一个线程的输出流,并且把它的输入流连接到另一个线程的输入流,才能利用该管道流实现这两个线程之间的数据交流
6.RandomAccessFile类实现了哪两个接口?具有哪些输入输出功能?RandomAccessFile类实现了Datalnput和DataOutput接口RandomAccessFile类提供的文件操作主要分为三类对文件指针的操作、读操作与写操作RandomAccessFile实现的是随机读写,即可以在文件的任意位置进行数据的读写RandomAccessFile类可可以按数据类型读取数据,读方法主要包括readBoolean,readChar,readlnt,readLongO,readFloat,readDouble,readLine,readUTF等这些方法的功能与DatalnputStream类中的同名方法相同其中,readLine从当前位置开始,到第一个‘\n为止,读取一行文本,它将返回一个String对象RandomAccessFile类具有类型转换功能的写操作方法RandomAccessFile类包含的写方法主要包括WriteBoolean,WriteChar,WriteUTF,Writelnt,WriteLongO,WriteFloat,WriteDouble等
8.什么是对象串行化?将Java程序中的对象保存在外存中,称为对象永久化对象永久化的关键是将它的状态以一种串行格式表示出来,以便以后读该对象时能够把它重构出来因此对Java对象的读、写的过程被称为对象串行化Object SerializationJava定义了ObjectInputStream类和oObjectOutputStream类实现对象的串行化
9.利用ObjectlnputStream/ObjectOutputStream可以存取哪种类型的对象?写入对象的方法是什么?读取对象的方法是什么?如果一个对象它所对应的类实现了Serializable接口,则该对象是可以利用ObjectInputStream/ObjectOutputStream进行存取,即ObjectlnputStream/ObjectOutputStream可以存取Serializable类型的对象写入对象的方法,是ObjectOutputStream类的writeObject方法;读取对象的方法是ObjectlnputStream类的readObject方法第八章基于Swing的图形化用户界面
1.Swing与AWT最大的区别是什么?AWT定义各种组件Components类提供平台独立的API,然后利用特定于平台的各种类的实现称为对等组件,peers提供具有特定平台风格的LFSwing与AWT最大的区别是,Swing提供了丰富的组件,并且提供了独立于运行平台的GUI构造框架Swing是纯Java实现的轻量级Light-weight组件,没有本地代码,不依赖操作系统的支持Swing在不同的平台上都能够具有一致的显示风格,并且能够提供本地窗口系统不支持的其它特性
2.Swing组件有哪些特性?Swing组件的特性包括1组件的多样化2采用分离模型结构Separable ModelArchitecture,即采用组件及与组件相关的数据模型或简称模型这样的分离结构3可设置的组件外观感觉Look andFeel,LF4支持高级访问方式,所有Swing组件都实现了Accessible接口,提供对非常规高级访问方式的支持5Swing组件提供热键,支持键盘代替鼠标的操作6对Swing组件可以设置一个和多个边框7可以在组件上使用图标
3.Swing中,能够向JFrame中直接添加组件吗?如何向JFrame中添加组件构造GUISwing组件不能直接添加到顶层容器中,必须添加到一个与顶层容器相关联的内容面板Content Pane上在JDKL5后的版本中,为了方便使用,JFrame的add方法被重写,可以把通过该方法添加的组件自动转交给内容面板向JFrame中添加组件可采用两种方式1用getContentPane方法获得JFrame的内容面板,再使用add方法向其中加入组件2建立一个JPanel或JDesktopPane等中间容器,把组件添加到中间容器中,再用setContentPane方法把该容器设置为JFrame的内容面板,另外,在JDK
1.5后的版本中,可以象操作AWT中的容器一样,直接对容器添加组件
4.AWT中支持几种布局管理器?它们各自的风格是怎样的?AWT支持的布局管理器包括•FlowLayout流式布局•BorderLayout边界布局•GridLayout网格布局•CardLa.yout卡片布局•Gri dBagLayout网格包布局FlowLayout容器内的组件采用从左到右,从上到下逐行摆放BorderLayout布局管理器将容器分为5个区East、West、South、North、Center,可以将组件分别按东、西、南、北、中5个方位摆放GridLayout布局管理器把容器分成n行m列同样大小的网格单元每个网格单元可容纳一个组件,并且此组件将充满网格单元组件按照从左至右,从上至下的顺序填充CardLayout可以使两个或更多的组件一般是Panel共享同一显示空间CardLayout把这些组件像一系列卡片一样叠放,一个时刻只有最上面的是可见的GridBagLayout的组件显示区域是一组动态的、矩形的网格单元,每个组件占有一个或多个网格单元
5.设计GUI的一般步骤是什么?基于Swing的应用程序GUI,一般包括如下部分1引入Swing包或AWT及其它程序包2选择GUI的外观风格LF3创建并设置窗口容器,即创建GUI的顶层容器并进行布局管理器等设置4创建与添加Swing或AWT组件5显示顶层容器,将整个GUI显示出来
6.试述委托方式监听器方式的事件处理机制委托方式监听器方式的事件处理机制中,首先要定义监听器类在Java中每类事件都定义了一个相应的监听器接口,该接口中定义了接收事件的方法实现该接口的类,其对象可作为监听器注册然后需要将监听器类的对象注册为组件的监听器在GUI中,需要响应用户操作的相关组件耍注册一个或多个相应事件的监听器,该监听器中包含了能接收和处理事件的事件处理方法在该类事件产生时,事件对象只向已注册的监听器报告,并运行相应的事件处理方法
7.如何采用内部类实现事件处理?事件适配器给监听器类的定义带来了方便,但同时也限制了监听器类对其它类的继承为了既使用Adaptor类,又避免多重继承的限制,例如,假设我们要编写一个Applet程序,主类名称为MyApplet,MyApplet中要包含鼠标事件的处理方法因为MyApplet类是Applet类的子类,所以该类将不能再继承MouseAdapter解决这个问题的有效方法是采用内部类,,由内部类继承相应Adaptor类该类的对象可以作为执行事件处理的监听器注册例如public classMyClassextends Applet{•••someObject.addMouseListenernew MyAdapter;•••classMyAdapter extendsMouseAdapter{public voidmousedickedMouseEvent e{...//Event handlerimplementation goeshere...
8.Window组件可以使用哪些类型的监听器?Window组件可以使用WindowListener,对窗口的打开、关闭、激活、去活等操作进行响应;WindowFocusListener,对窗口获得聚焦和失去聚焦的操作进行响应;WindowstateListener,当窗口的状态发生变化,如对最小化和最大化等操作进行响应
9.如何设置组件的颜色和字体?Component类是一个抽象类,是AWT中所有组件的父类,也是Swing中JComponent类父类,JComponent类是Swing中除了顶层容器外其他组件的父类Component类为其子类提供了很多功能,包括提供方法setBackGround,setForeGround,setFont等方法设置组件字体、颜色等所以可以调用具体组件的上述方法进行颜色和字体的设置第九章Applet程序设计
1.Applet的运行过程是怎样的?.Applet的运行包括如下四个步骤1浏览器加载指定URL中的HTML文件;2浏览器解析HTML文件;3浏览器加载HTML文件中指定的Applet类;4浏览器中的Java运行环境运行该Applet
2.Applet生命周期相关的方法有哪些?这些方法是如何被调用的?Applet生命周期相关方法包括init,start,stopO,destroy等4种方法init是在装载Applet时被调用,使Applet执行一些基本初始化°start是在init方法之后被调用,使Applet成为激活状态stop是在浏览器离开含有Applet的网页时被调用,可用该方法暂时停止线程Destroy是在浏览器完全关闭之前被调用,彻底终止Applet,从内存卸载并释放该Applet的所有资源
3.Applet显示或刷新过程中要调用哪些方法?.Applet在初次显示,或运行过程中浏览器窗口大小发生变化而引起Applet的显示发生变化时,将调用Applet的paint方法进行Applet绘制当Applet代码需要更新显示内容时,则从程序中调用repaint方法,则AWT线程在接受到该方法的调用后,将调用Applet的update方法,而update方法再调用组件的paint方法实现显示的更新
7.JApplet中是否可以添加AWT组件?为什么?JApplet中一般都使用Swing组件,而不使用AWT组件因为应避免Swing组件与AWT组件混合使用在Swing GUI中应该全部使用轻量级组件,避免使用被称为重量级组件的AWT组件第十章线程
1.试述进程与线程之间的关系进程是内核级的实体包含虚存映象、文件指示符,用户II等这些结构都在内核空间中,用户程序只有通过系统调用才能访问与改变线程是用户级的实体,是程序中的单个执行流,线程结构驻留在用户空间中,能够被普通的用户级函数组成的线程库直接访问寄存器栈指针,程序计数器是线程专有的成分一个进程可以通过运行多个线程来并发地执行多项任务,进程中的所有线程共享该进程的状态
2.Java中线程的模型由几部分构成在Java中线程的模型就是一个CPU、程序代码和数据的封装体,即一个虚拟的CPU,该CPU执行的代码,以及代码所操作的数据
3.创建线程的两种方式是什么?Java中线程体由Thread类的run方法定义,有两种方式进行run方法的定义1实现Runnable接口Runnable接口只提供了一个public voidrun方法,定义一个类实现Runnable接口,并将该类的实例作为参数传给Thread类的一个构造函数,从而创建一个线程;2继承Thread类Thread类本身实现了Runnable接口,通过继承Thread类,重写其中的run方法定义线程体,然后创建该子类的对象创建线程
4.什么是线程调度?Java的线程调度策略是什么?在Java中,为了充分发挥系统的性能,提高多线程并发程序的执行效率,需要定义一定的策略或规则,分配各个线程对CPU的使用权,这就是线程调度Java的线程调度策略是一种基于优先级的抢先式调度这种调度策略的含义是Java基于线程的优先级选择高优先级的线程进行运行该线程当前线程将持续运行,直到它中止运行,或其它高优先级线程成为可运行的在后一种情况,低优先级线程被高优先级线程抢占运行
5.线程的生命周期中包含几个状态?各状态之间是如何进行转换的?线程生命周期状态主要包括新建状态new、可运行状态Runnable、运行状态Running.阻塞状态Blocked和终止状态Dead调用一个线程类的构造方法,便创建了一个线程;新建的线程调用start方法,将使线程的状态从New转换为Runnable;线程依照调度策略获得CPU使用权,则进入运行状态运行状态是线程占有CPU并实际运行的状态此时线程状态的变迁有三种情况1如果线程正常执行结束或应用程序停止运行,线程将进入终止状态终止状态是线程执行结束的状态,没有任何方法可改变它的状态2如果当前线程执行了yield方法,或者当前线程因调度策略由系统控制进入可运行状态3如果发生下面几种情况时,线程就进入阻塞状态线程调用了sleep方法、join方法,进入阻塞状态睡眠时间到或所等待的线程结束时,进入可运行状态;线程调用wait方法时,由运行状态进入阻塞状态线程若被notify等唤醒或被中断、或者等待时间到,线程将进入对象锁阻塞状态如果线程中使用synchronized来请求对象的锁未获得时,也将进入对象锁阻塞状态该状态下的线程当获得对象锁后,将进入可运行状态
6.Java中采用什么机制实现多线程的同步?Java多线程同步采用传统的封锁技术程序中各个并发线程中对同一个对象进行访问的代码段,称为临界区Critical Sections临界区用“synchronized”关键字标识Java通过控制临界区代码的执行,实现线程的同步临界区的控制是通过对象锁进行的Java平台将每个由synchronized someObject{}语句指定的对象someObject设置一个锁,称为对象锁Monitoro对象锁是一种独占的排它锁Exclusive locks,即当一个线程获得了对象的锁后,便拥有该对象的操作权,其他任何线程不能对该对象进行任何操作线程在进入临界区时,首先通过synchronized someObject语句测试并获得对象的锁,只有获得对象锁才能继续执行临界区中的代码,否则将进入等待状态
7.线程创建后如何启动?下列哪些方法是Thread类的静态方法?哪些方法在Java2中已经不建议使用?run;start;stopO;suspend;resume;sleep;yield线程创建后,调用start方法将使线程进入可运行状态,在这种状态下线程依照调度策略获得CPU使用权,则进入运行状态下列方法中,sleep和yield是Thread类的静态方法stop、suspend和resume方法在Java2中已经不建议使用第十一章Java网络程序设计L Java对网络编程提供了哪些支持?Java提供了两个不同层次的网络支持机制1URL层次Java提供了使用URL访问网络资源的类,使得用户不需要考虑URL中标识的各种协议的处理过程,就可以直接获得URL资源信息这种方式适用于访问Interent尤其是WWW上的资源2Socket层次Java中提供了对应Socket机制的一组类,支持流和数据报两种通信过程这种机制中,用户需要自己考虑通信双方约定的协议,虽然烦琐但具有更大的灵活性和更广泛的适用领域支持URL的类,实际上也是依赖于下层支持Socket通信的类来实现的,不过这些类中已有几种主耍协议的处理,如ftp,Http等
2.利用URL通信机制可以使用哪些方式进行网络通信?一种方式是从URL直接读取当成功创建了URL对象后,就可以利用该对象访问网上的资源通过URL可以象访问本地文件一样访问网络上其它主机中的文件除了这种使用方法之外,还可以通过URL的openStream方法,得到java.io.InputStream类的对象,从该输入流方便地读取URL地址的数据另一种方式是通过URLConnection类在应用程序与URL之间建立一个连接,通过URLConnection类的对象,对URL所表示的资源进行读、写操作3,基于Socket可以实现哪两种通信?简述这两种通信的工作原理基于Socket可以实现有连接通信方式和数据报通信方式Java的有连接通信采用流式I/O模式Socket是两个进程间通信链的端点,每个Socket有两个流一个输入流和一个输出流只要向Socket的输出流写,一个进程就可以通过网络连接向其它进程发送数据;同样,通过读Socket的输入流,就可以读取传输来的数据有连接通信一般要经历四个基本步骤创建Socket,建立连接;打开连接到Socket的输入/输出流;按照一定的协议对Socket进行读/写操作;关闭SocketJava在java,net包中提供了两个类DatagramSocket和DatagramPacket支持采用UDP协议的数据报方式通信采用数据报方式进行通信的过程主要分为以下三个步骤创建数据报Socket;构造用于接收或发送的数据报,并调用所创建Socket的receive方法进行数据报接收或调用send发送数据报;通信结束,关闭Socket第十二章JDBC技术
1.试述JDBC的体系结构JDBC技术的主要思想就是为应用程序访问数据库提供统一的接口,屏蔽各种数据库之间的异构性,保证Java程序的可移植性在JDBC技术中,程序员使用JDBC API将标准的SQL语句通过JDBC驱动管理器JDBC DriverManager传递给相应的JDBC驱动JDBC Driver,并由该JDBC驱动传送给所指定的数据库服务器JDBC体系结构如下图所示
2.JDBC驱动有哪几种类型?.JDBC驱动有四种类型JDBC-ODBC桥、本地API部分Java驱动、网络协议完全Java驱动、本地协议完全Java驱动JDBC-ODBC桥,实际上是利用了现有的ODBC,它将JDBC调用翻译为ODBC的调用;本地API部分Java驱动将JDBC调用转换成对特定DBMS客户端API的调用;网络协议完全Java驱动将JDBC的调用转换为独立于任何DBMS的网络协议命令,并发送给一个网络服务器中的数据库中间件,该中间件进一步将网络协议命令转换成某种DBMS所能理解的操作命令;本地协议完全Java驱动直接将JDBC的调用转换为特定DBMS所使用的网络协议命令,并且完全由Java语言实现
3.利用JDBC开发数据库应用的一般步骤是什么?利用JDBC开发数据库应用一般包括如下步骤1建立与数据库的连接2执行SQL语句3处理结果集4关闭数据库连接
4.什么是预编译语句?怎样使用预编译语句?预编译语句PreparedStatement是java,sql中的一个接口,它是Statement的子接口在创建PreparedStatement对象时就指定了SQL语句,该SQL语句将立刻发送给DBMS进行编译当该预编译语句被执行时,DBMS可以直接运行编译后SQL语句另外,预编译语句还支持带有参数的SQL语句,这使得我们可以对相同的SQL语句替换参数从而多次使用因此,当一个SQL语句需要执行多次时,使用预编译语句可以减少执行时间,提高执行效率一般是在需要反复使用一个SQL语句时,使用预编译语句因此预编译语句常常放在一个for或while循环中使用,通过循环反复设置参数从而多次使用该SQL语句
5.什么是存储过程?怎样使用存储过程?存储过程是封装了对数据库更新或查询操的一组SQL语句,形成一个相对独立的逻辑单元,能够完成特定的任务存储过程可以带有参数在Java程序中通过JDBC可以调用存储过程首先要通过一个打开的数据库连接创建一个CallableStatement类型的对象,该对象将包含对存储过程的调用然后再调用该对象的executeQuery方法执行存储过程
6.什么是事务?怎样实现事务操作?事务是保证数据库中数据的完整性与一致性的重要机制事务由一组SQL语句组成,具有原子性,即这组语句要么都执行,要么都不执行JDBC中实现事务操作,关键是下面Connection接口的三个方法通过调用当前连接的setAutoCommit false来关闭这种自动提交模式,从而把多个SQL语句作为一个事务;调用连接的commit方法提交事务;当一个事务执行过程中出现异常而失败时,为了保证数据的一致性,必须调用连接的rollback方法使事务回滚
7.JDBC
2.0与JDBC
3.0中增加了哪些新特性?.JDBC
2.0主要增加了下列功能在SQL语句执行所返回的结果集中,可以向前或向后滚动记录,并可以定位到指定的记录;利用Java API对数据库表中的数据进行更新;批量更新操作;使用SQL3中的数据类型JDBC
3.0在预编译语句、存储过程调用、结果集处理以及所支持的数据类型等方面增加了很多功能,如数据库连接池的操作与配置,事务处理中安全点Savepoint的支持等
8.JDBC
4.0中增加了哪些新特性?在JDBC
4.0中,提供了更好的代码可管理性和灵活性,并且支持更复杂的数据类型JDBC
4.0新特性或新的增强主要体现在驱动和连接管理、异常处理、数据类型支持以及增加API等方面外,还制定了完整统一的语言文本为了使Java的应用程序能不依赖于底层具体的系统,Java语言环境还提供了一个用于访问底层操作系统功能的可扩展类库,当程序使用这些库时,可以确保它能运行在支持Java的各种平台上•可移植性Java的最大特点是“一次编程,处处运行任何机器只要配备了Java解释器,便可运行Java程序这种可移植性源于两方面一是Java的半编译、半解释特征;另一方面是Java体系结构中立,采用标准的独立于硬件平台的数据类型•高性能Java语言的字节码与机器码十分接近,使得字节码到机器码的转换十分快捷另外,Java还提供了即时编译技术,提高了Java应用的运行速度•多线程Java的特点是在语言级嵌入了多线程机制,支持程序的并发处理功能从程序的角度看,一个线程就是应用程序中的一个执行流Java将临界区保护规则等集成到语言中实现线程同步,使这些规则的使用更加方便有效•动态特性Java程序的基本组成单元是类,而Java的类又是运行时动态装载的,这使将Java可以动态地维护应用程序及其支持类之间的一致性
3.Java语言的语法机制与C/C++有何异同?Java的基本语法机制,例如数据类型、表达式、程序流控制、结构化异常处理等,都与C++相同明显区别于C++的语法机制,包括类class、接口Interface.程序包package,多线程以及取消指针
4.Java运行系统由哪些部分组成?Java程序的运行过程是怎样的?.Java运行系统一般包括以下几部分类装配器、字节码验证器、解释器、代码生成器和运行支持库Java运行系统运行的是字节码即.class文件执行字节码的过程可分为三步1代码的装入由类装配器装入程序运行时需要的所有代码,其中包括程序代码中调用到的所有类当装入了运行程序需要的所有类后,运行系统便可以确定整个可执行程序的内存布局2代码的验证由字节码检验器进行安全检查,以确保代码不违反Java的安全性规则,同时字节码验证器还可发现操作数栈溢出、非法数据类型转化等多种错误3代码的执行Java字节码的运行可以有两种方式即时编译Just-In-Time方式和解释执行方式
5.什么是JVMJava虚拟机是一个想象中的,能运行Java字节码的操作平台而JVM规范提供了这个平台的严格的规范说明,包括指令系统,字节码格式等JVM进一步可用软件在不同的计算机系统上实现或用硬件实现JVM的实现包括字节码验证、解释器、内存垃圾回收等,是上述Java运行系统的核心,Java运行系统是各供应商对JVM的具体实现
7.编写一个Java程序,在屏幕上输出“欢迎学习Java语言!”的字符串public classWelcome{public staticvoid mainString args[]{System,out.printin欢迎学习Java语言!〃;第二章面向对象程序设计基本概念
1.什么是对象?什么是类?什么是实体?它们之间的相互关系是怎样的?试举例说明在面向对象方法中,对象是现实世界实体或概念在计算机世界中的抽象表示,是具有唯一对象名、固定对外接口的一组变量/属性和方法的集合,是用来模拟组成或影响现实世界问题的一个或一组因素类定义了对象类型,包含同一类型的对象具有共同的特征与行为使用class定义的类在程序中称为一种抽象数据类型,它是面向对象程序设计语言的基本概念一个类在定义后,我们就可以象使用其它数据类型一样,声明该类的变量并创建该变量所指向的对象,然后通过该变量调用对象的方法实现对对象的操作实体表示现实世界中,客观存在并可区分的事物或概念在面向对象的问题求解方法中,首先对现实世界的问题域进行语义抽象,从各类对象中抽象出对象类型,并得到对象类型之间的关联,形成问题的概念模型接下来,进行概念模型到机器(程序)模型的转换得到机器世界的模型机器模型是由计算机能够理解和处理的类构成的将类实例化就得到了现实世界实体的面向对象的映射一一对象,在程序中对对象进行操作,就可以模拟现实世界中的实体及实体之间相互作用,解决由这些实体构成的现实世界中的问题举例来说,我们很多人都有自行车,你的自行车就是“自行车”这类交通工具中的一个实例,即现实世界的一个实体在机器世界中即程序中的自行车类包含了自行车都有相同的状态,例如两个轮子、脚踏板速度等,以及共同的行为,如刹车等,将自行车类实例化就得到了现实世界的自行车实体的映射一一自行车对象,在程序中对这个对象进行操作,就可以模拟现实世界中的自行车与其他实体之间相互作用
2.什么是对象的状态与行为?设有对象“学生”,试给出这个对象的状态和行为现实世界的对象具有两个特征状态与行为面向对象程序设计语言中的对象是以现实世界的对象为模型构造的,也具有状态与行为,其中状态保存在一组变量中,而对象的行为通过方法实现“学生”的状态包括学号、姓名、年龄、所属院系、专业方向等;“学生”的行为包括注册、选课、基本信息维护等
3.什么是封装与数据隐藏?使用对象的对外接口(方法)将对象的变量与方法实现保护起来,外界只能通过对象的接口访问对象的服务,而对对象其它成员都无法访问,就称为封装因此,对象中的数据封装同时也实现了对象的数据隐藏数据隐藏是通过对象成员的访问控制实现的在Java语言中提供了四种不同层次的访问控制,即public,protected,default和private,从而实现了对象四种不同程度的数据隐藏
4.什么是上溯造型?什么是晚联编?多态的含义是什么?上溯造型的含义是子类沿着类继承体系向上,将其类型塑造为父类类型,使得子类对象能够当作父类对象处理程序中调用对象的方法时,所调用的代码直到运行时刻才确定因此,在程序编译时,编译器可以保证该方法存在并且执行参数与返回结果的类型检查,但却不知道要执行的准确代码在运行时刻,Java运行系统根据对象变量当时所指向对象的实际类型,调用该对象的相应方法这种技术称为晚联编面向对象的多态特征,简而言之就是“对外一个接口,内部多种实现”面向对象程序设计语言支持两种形式的多态运行时多态和编译时多态编译时多态主要是通过重载Overloading技术实现的,即在一个类中相同的方法名可用来定义多种不同的方法运行时多态是在面向对象的继承性的基础上建立的,是运行时动态产生的多态性,是面向对象的重要特性之一
5.怎样理解面向对象程序设计方法的内涵?面向对象程序设计方法的内涵,可以由对象、数据抽象、封装、继承和多态等核心概念和特征表达程序中所有东西都是对象;程序是一系列对象的组合;每个对象都有自己的存储空间,可以容纳其它对象;每个对象都有一种类型,即都归属于一个类,类最主要的特征是对外接口;同一类型的所有对象都能够接收相同的消息,子类与父类具有“同一类型力这就是面向对象程序语言中的多态性
6.面向对象程序设计有哪些优点?面向对象程序设计方法的主要优势是具有更好的可重用性、可扩展性、可管理与维护性在面向对象程序设计中,可重用的代码是类和对象数据抽象、封装、继承、多态等特征都围绕和体现了代码重用的思想面向对象的封装、继承和多态使得程序可以对一个类的内部变量和方法进行修改或增加新的变量和方法,可以按照需要派生新的子类,但仍可以保证调用这些类接口的程序不做改动,从而使程序具有很强的可扩展性与易维护性而面向对象的数据抽象与封装,使程序具有模块化特性,这简化了程序中代码之间的关联,使程序更易于管理和控制第三章Java语言基础L下列标识符哪些是合法的?$88,#67,num,applet,Applet,7#T,b++,-b合法的标识符$88,num,applet,Applet
2.Java有哪些基本数据类型?什么是复合数据类型?对于这两种类型的变量,系统的处理有什么不同?Java基本数据类型包括:boolean,char,byte,short,int,long,double和float复合数据类型一般将用户定义的新类型称为复合数据类型Java以类和接口的形式定义新类型因此在Java中类和接口是两种用户定义的复合数据类型对于这两种类型的变量,系统的处理方式基本数据类型的变量包含了单个值,这个值的长度和格式符合变量所属数据类型的要求,基本类型变量声明时,系统直接给该变量分配空间,因此程序中可以直接操作引用型变量的值是指向内存空间的引用地址,声明时只是给该变量分配引用空间,数据空间未分配引用型变量在声明后必须通过实例化开辟数据空间,才能对变量所指向的对象进行访问
3.设变量i和j的定义如下,试分别计算下列表达式的值inti=l;double d=l.0135/4;246%9+4*4-2;345+43%5*23*3%2;445+45*50%i-;545+45*50%—i;6L5*3+++d;7L5*3+d++;8i+=3/i+3;18;215;348;445;5除0异常;
66.5;
75.5;
874.计算下列逻辑运算表达式的值1true342!x0x03x0||x04x!=0||x=05x=0||x06x!=1二二!x二二11false2false3如果x=0,为false;如果x!=0,为true4true5true6true
5.Java中有哪些类型程序流控制语句?Java语言提供了4类程序流控制语句•循环语句,包括while语句、do while语句和for语句•分支语句,包括if语句和switch语句•跳转语句,包括break语句,continue语句,label:语句,return语句.•异常处理语句,包括try-catch-finally语句和throw语句
6.switch语句与if语句可以相互转换吗?使用switch语句的优点是什么?switch语句可以转换为if语句,但if语句不一定能转换为switch语句因为switch以一个整型表达式的值作为判定条件,而if可以判断各种条件使用switch结构更简单,可读性强,而且程序的执行效率也得到提高
7.试写出下列循环的运行结果Int i=1;while i10{if i++%2=0{System.out.printin i;
8.While循环和do循环有什么区别?while语句运行时,先计算逻辑表达式的值,当值为“true”时,执行循环体语句do while语句首先执行循环体中的语句,然后再求表达式的值,如果为true则继续循环;如果为“false”,则终止循环因此,dowhile循环至少要执行一次循环体
9.循环跳转语句break的作用是什么?试给出下列程序的运行结果inti=1000;whiletrue{ifi10{break;}1二i-10;}System.out.printinz,The valueof iis〃+i;break语句用来从switch语句、循环语句中跳出它结束了switch语句的执行,并把控制流转移到紧跟在switch之后的语句我们还可以使用不带标签的break语句终止循环带标签的break语句结束由标签指定的外层语句的执行上述程序的运行结果是The valueof iis
010.循环跳转语句continue的作用是什么?试给出下列程序的运行结果inti=1000;while true{ifi10{continue;1=i-10;}在for、while和do while循环中,continue语句跳过当前循环的其余语句,执行下一次循环不带标签的continue语句跳过最内层的循环,并开始执行最内层循环的下一次循环上述程序当i的值为0以后,将进入死循环
13.下列数组声明哪些是合法的?1inti=new int30;2double d[]=new double
[30];3Integer[]r=new Integer
1..30;4inti[]=3,4,3,2;5float f[]={
2.3,
4.5,
5.6};6char[]c=new char;7Integer口□r二new Integer⑵;合法声明语句
214.数组变量是基本类型变量还是引用型变量?数组的内存是在什么时候分配的?数组变量是引用型变量数组的声明并不创建实例数组的数据空间,而是给该数组变量分配了一个可用来引用该数组的引用空间数组元素所需的内存空间是通过new运算符或通过数组初始化分配的第四章Java面向对象特性
1.试说明JAVA语言是如何支持多重继承的Java中是通过接口实现多重继承的接口interface机制,允许一个类实现多个接□o这样既避免了多重继承的复杂性,又达到了多继承的效果
2.类的构造方法和成员方法之间有什么区别?类的构造方法是非常特殊的方法,与成员方法的区别包括1构造方法的名称必须与类名相同2构造方法不能有返回值3用户不能直接调用构造方法,必须通过关键字new自动调用它
5.Java中方法调用的参数传递方式是什么?Java中方法调用的参数传递方式是传值,即方法调用不会改变调用程序中作为方法参数的变量的值当方法的参数类型是对象或数组等引用类型时,在方法中可能改变引用型参数所指向的对象的内容,但是对象的引用不会改变
6.this关键字的作用是什么?this是Java使用的一个有特定意义的引用,它指向当前对象自身
7.一个类中的方法,要使同一个包中的类可以访问而其它类不能访问,应该使用怎样的访问控制?对于该方法不加任何访问权限限定,即使用缺省的访问权限--------default或package
8.什么是方法重载?方法重载的规则是什么?方法的重载是在一个类的定义中,多个方法使用相同的方法名,这些方法功能类似但参数不同Java中规定重载的方法必须遵循下列原则1方法的参数表必须不同,包括参数的类型或个数,以此区分不同方法体;2方法的返回类型、修饰符可以相同也可不同
9.什么是方法重写?方法重写的规则是什么?重写Overriding是指子类重新实现从父类继承而来的成员方法Java中方法重写要遵守以下规则1子类中重写方法的返回值类型必须与父类中被重写方法的返回值类型相同2子类中重写方法的访问权限不能缩小3子类中重写方法不能抛出新的异常
10.试说明JAVA语言中多态的含义及实现机制多态的含义是,对外一个接口,内部多种实现Java中的多态包括运行时多态和编译时多态编译时多态主要是通过重载Overloading技术实现的,运行时多态是通过上溯造型和动态联编技术实现的上溯造型使一个对象既可以当作它自己的类型也可以作为其父类的类型对待,这意味着子类对象可作为父类的对象使用;父类的对象变量可以指向子类对象这样通过一个父类变量发出的方法调用,可能执行的是该方法在父类中的实现,也可能是在某个子类中的实现,这只能在运行时刻根据该变量指向的具体对象类型确定,这就是运行时多态
11.给出下列程序的运行结果class Meal{Meal{System,out.printin z,Meal/z;}class Bread{Bread{System.out.printin Z/Bread z,;}class Cheese{Cheese{System.out.printin/zCheese z/;}class Lettuce{Lettuce{System.out.printin Lettuce,z;}class Lunchextends Meal{Lunch{System,out.printin Lunch〃;}classPortableLunch extendsLunch{PortableLunch{System,out.printin^PortableLunch〃;}public classSandwich extendsPortableLunch{private Breadb=new Bread;private Cheesec=new Cheese;private Lettuce1=new Lettuce;publicSandwichO{System.out.printinSandwich〃;public staticvoid mainString口args{new Sandwich;程序运行结果Meal LunchPortableLunch BreadCheese LettuceSandwich第五章Java高级特征
1.举例说明类方法与实例方法以及类变量与实例变量之间的区别类方法要通过类名访问,实例方法需要通过实例对象访问例如,java,lang的System类中的exit方法类变量只在系统加载其所在类时分配空间并初始化,并且在创建该类的实例时将不再分配空间,所有的实例将共享类的静态变量类变量在类外直接用类名调用,而不象实例变量那样需要通过实例对象才能访问例如,java,lang的System中的out变量,该变量的定义为:staticPrintStreamout,所以当我们需要向监控台输出信息时,可以在程序中直接调用System.out.println”
2.什么是接口?接口的意义是什么?接口interface从定义形式上类似于抽象类接口中声明了方法,但不定义方法体,因此接口只是定义了一组对外的公共接口与类相比,接口只规定了一个类的基本形式,不涉及任何实现细节实现一个接口的类将具有接口规定的行为Java中规定一个类只能继承一个父类,但可以实现多个接口,因此利用接口实现了多重继承而没有强行形成类的继承关系避免产生代码冲突,保证了Java的简单性与代码的安全可靠,同时对面向对象方法论的支持更纯洁
3.什么是包?如何定义包?包是Java中类和接口的一种组织、管理和使用的单位,是相关类与接口的一个集合,使类和接口易于查找和使用,并提供了独立的类命名空间和访问保护使用package语句指定一个源文件中的类属于一个特定的包Package语句的格式如下:package pkgl[.pkg2[.pkg3--]]如果源文件中没有package语句,则指定为无名包o
4.什么是抽象类?抽象类与接口有何区别?抽象类是包含一个或多个抽象方法的类,只有声明而没有方法体的方法称为抽象方法。
个人认证
优秀文档
获得点赞 0