java复习资料.doc_第1页
java复习资料.doc_第2页
java复习资料.doc_第3页
java复习资料.doc_第4页
java复习资料.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

选择题自己看,只有单选,所以多选不用看。6、 开发与运行Java程序需要经过的三个主要步骤为_编辑_、_编译_和 运行 。7、 如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是_Applet_类的子类并且存储该源程序文件的文件名为_MyApplet.java_。8、 如果一个Java Applet程序文件中定义有3个类,则使用Sun公司的JDK编译器 编译该源程序文件将产生_3_个文件名与类名相同而扩展名为class_的字节码文件。15、_abstract_方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。_final_方法是不能被当前类的子类重新定义的方法。10、对于接口的实现,不可以构造一个接口对象,但可以声明一个接口继承类对象。11、在Java语言中所有的类都是直接或间接地继承_object_类而得到的。12、在Java中一个父类可以有_多_个子类,一个类只能有_1_个直接父类。13、小应用程序界面的宽度和高度一般在_html_文件中指定,其中用来指定宽度和高度的关键字分别是_height_和_width_。14、如果一个Java程序既是应用程序又是小应用程序,那么它必定含有_Applet_类的子类,同时含有成员方法_paint_。15、JDK中提供的一个专为查看Applet的工具是_appletviewer_。16、在Applet坐标系中,(0,0)代表输出窗口 左上 角的像素点。13、Java中GUI工具包有_awt_和_swing_。14、通过调用方法_setLayout_可以改变当前容器的布局方式。15、通过_add_方法向容器中添加组件。16、AWT布局管理器有_FlowLayout_、_BorderLayout_、_GridLayout_、_CardLayout_和_GridBagLayout_。10、对于接口的实现,不可以构造一个接口对象,但可以声明一个接口继承类对象。11、在Java语言中所有的类都是直接或间接地继承_object_类而得到的。12、在Java中一个父类可以有_多_个子类,一个类只能有_1_个直接父类。程序填空:1.public class Sumpublic static void main(String args)int j=10;System.out.println(j is : +j);calculate(j);System.out.println(At last, j is : +j);static void calculate (int j)for (int i = 0;i10;i+)j+;System.out.println(j in calculate() is: +j);输出结果为:j is : (1) j in calculate() is : (2)At last j is : (3)答案:(1) 10; (2) 20; (3) 10。2. 按要求填空abstract class SuperAbstractvoid a()abstract void b();abstract int c(int i);interface AsSupervoid x();abstract class SubAbstract extends SuperAbstract implements AsSuperpublic void b()abstract String f();public class InheritAbstract extends SubAbstractpublic void x()public int c(int i ) public String f()public static void main(String args)InheritAbstract instance=new InheritAbstract();instance.x();instance.a();instance.b();instance.c(100);System.out.println(instance.f(); 在以上这段程序中:抽象类有:SuperAbstract和(1)(写出类名)非抽象类有:(2)(写出类名)接口有:(3)(写出接口名)AsSuper中的x()方法是(4)方法,所以在InheritAbstract中必须对它进行(5)答案:(1) SuperAbstract;(2) InheritAbstract;(3) AsSuper;(4) 抽象;(5) 覆盖和实现。3. 按注释完成程序public class Leaf private int i = 0; /此属性值用于检验Leaf increment() /定义方法increment(),返回值是Leaf类的对象i+;return (1) ;/将当前对象的地址作为返回值返回void print() System.out.println( i = + i);public static void main(String args)Leaf x = (2); /创建Leaf类的对象xx.increment().increment().increment().print();/多次调用方法increment(),返回的都是x的地址,i 值表示调用次数输出结果为 i = (3) 答案:(1) this;(2) new Leaf();(3) 34.按注释提示完成文件复制的程序 /FileStream源代码如下: import java.io.*; class FileStream public static void main(String args ) try File inFile = new File(file1.txt);/指定源文件 File outFile = new File(file2.txt);/指定目标文件 FileInputStream fis =(1); FileOutputStream fos = new FileOutputStream(outFile); int c; /逐字节从源文件中输入,再输出到fos流while (c = fis.read ()!=-1) (2); fis.close(); fos.close();catch (Exception e) System.out.println(FileStreamsTest: +e); 答案:(1) new FileInputStream(inFile);(2) fos.write(c);5. 阅读程序,给出结果:/ AbstractClassDemo.java源代码如下:abstract class Shape /定义抽象类Shape和抽象方法displayabstract void display();class Circle extends Shape void display() /实现抽象类的方法System.out.println(Circle);class Rectangle extends Shape void display() /实现抽象类的方法System.out.println(Rectangle);class Triangle extends Shape void display() /实现抽象类的方法System.out.println(Triangle);public class AbstractClassDemopublic static void main(String args)(new Circle().display();/定义无名对象来调用对应的display方法(new Rectangle().display();(new Triangle().display();输出结果是 ?答案:(1) Circle; (2) Rectangle; (3) Triangle。6.下面是一个类的定义:public class _Myclass_ int x, y;Myclass ( int i, _int j_) / 构造函数x=i;y=j;7.下面是用户程序对 Applet 类中方法 paint( ) 的重新定义。public void paint(Graphics _g_ )int i=689;g.drawString (“i=” +_String.ValueOf(i)_ ,20,60); 8.下面是一个Java Application 的主类的定义,其功能是输出所有命令行参数。 import java.io.*;public class MyClasspublic static void main(String args )if( args.length !=_0_)for(int i=0; i args.length; i+)System.out.println(_argsi_);else System.out.println(没有命令行参数);9.下面是一个小程序的主类myprogram的定义, 其中A、B是该主类所在源程序中已定义的另两个类的类名: import java awt.*;import java applet.*;public class myprogram extends Applet/定义小程序的主类A a; B b;public _void_ init( )a=new A( ); b=_new_ B( ); 10.下面程序的功能是输出数组各元素的和。import java.awt.Graphics;import java.applet.Applet;public class SumArray extends Appletfloat a; a= new _ float 6;float sum=0.0f;public void init( )for ( int j = 0; j a.length; j+ ) aj = j+1;for ( int i = 0 ; i a.length; i+ ) sum+= ai;public void paint( Graphics g )g.drawString( Total of array elements: + _String.ValueOf(sum)_ , 25, 25 );程序设计题12、实现两个定时线程,一个线程每隔1秒显示一次,一个线程每隔3秒显示一次。import java.io.*;public class Timestatic Lefthand left; /声明静态的类的对象 static Righthand right; public static void main(String args) left=new Lefthand() ; /创建两个线程。 right=new Righthand(); left.start(); /线程开始运行后,Lefthand类中的run方法将被执行。 right.start(); class Lefthand extends Thread /lefthand类继承Thread类public void run() for(;) System.out.println(每1秒显示一次!);Trysleep(1000); /使当前活动线程睡眠1秒 catch(InterruptedException e) /捕捉异常 class Righthand extends Threadpublic void run() for(;) System.out.println(每3秒显示一次!);Trysleep(3000); catch(InterruptedException e) 13、创建两个线程,每个线程打印出线程名字后再睡眠,给其它线程以执行的机会,主线程也要打印出线程名字后再睡眠,每个线程前后共睡眠5次。import java.io.*;public class NameThread extends Threadint time; /time in milliseconds to sleeppublic NameThread(String n,int t)super(n);time=t;public void run()for(int i=1;i=5;i+)System.out.println(getName()+ +i);tryThread.sleep(time);catch(InterruptedException e)return;public static void main(String args)NameThread bonnie=new NameThread(Bonnie,1000);bonnie.start();NameThread clyde=new NameThread(Clyde,700);clyde.start();for(int i=1;i1000)MyException exception=new MyException(m);throw exception;elseSystem.out.println(m);public class Testpublic static void main(String agrs)int m;Student stu1=new Student();m=987;trystu1.speak(m);m=1234;stu1.speak(m);catch(MyException e)e.showStr1();简答题:1、 Java程序是由什么组成的?一个程序中必须有public类吗?Java源文件的命名规则是怎样的?答:一个Java源程序是由若干个类组成。一个Java程序不一定需要有public类:如果源文件中有多个类时,则只能有一个类是public类;如果源文件中只有一个类,则不将该类写成public也将默认它为主类。源文件命名时要求源文件主名应与主类(即用public修饰的类)的类名相同,扩展名为.java。如果没有定义public类,则可以任何一个类名为主文件名,当然这是不主张的,因为它将无法进行被继承使用。另外,对Applet小应用程序来说,其主类必须为public,否则虽然在一些编译编译平台下可以通过(在BlueJ下无法通过)但运行时无法显示结果。 2、怎样区分应用程序和小应用程序?应用程序的主类和小应用程序的主类必须用public修饰吗?答:应用程序的主类当源文件中只有一个类时不必用public修饰,但当有多于一个类时则主类必须用public修饰。小应用程序的主类在任何时候都需要用public来修饰。3、什么是类?什么是对象?对象和类是什么关系?答:类是抽取了同类对象的共同属性和行为形成的对象或实体的“模板”。 对象是现实世界中实体的描述,是其自身所具有的状态特征及可以对这些状态施加的操作结合在一起所构成的独立实体。类和对象之间的关系是抽象和具体的关系:类表达的是一种抽象的概念,它描述了该类对象的共同特征;而对象是具体事物,以类为模板来生成,它具有自己的状态。4、什么是包?它的作用是什么? 解:包是一种松散的类的集合。包的作用主要是把需要协同工作的不同的类组织在一起,使得程序功能清楚、结构分明。5、什么是异常?简述Java的异常处理机制。答:异常是当程序运行的时候,由于各种不可避免的原因而产生的错误。例如除数为零、文件找不到而无法读写、网点连接不上等等。Java程序把运行中各种可能出现的错误都看作异常,Java提供的异常情况处理机制叫异常处理。Java 提供了两种不同的异常抛出机制:throws抛出异常和 throw 抛出异常。throws抛出异常又叫间接抛出异常,throw抛出异常又叫直接抛出异常。throws抛出异常和方法说明联系在一起,是针对以下情况:调用的方法抛出了异常、检测到了错误并使用throw语句抛出异常、程序代码有错误从而异常。方法中出现的异常由catch语句捕获,进行处理。6、系统定义的异常与用户自定义的异常有何不同? 答:系统定义的运行异常通常对应着系统运行错误。由于这种错误可能导致操作系统错误甚至是整个系统的瘫痪,所以需要定义异常来特别处理。而用户自定义异常用来处理程序中可能产生的逻辑错误,使得这种错误能够被系统及是识别并处理,而不至扩散产生更大影响,从而使用户程序更为强健,有更好的容错能力,并使整个系统更加安全稳定。7、什么是事件?什么是委托事件处理模型?解:用户接口的作用是使程序的使用者与程序之间进行交互,如果使用户接口具有交互能力,就必须涉及到事件处理。所谓“事件”,就是指在系统中有某些我们所关心的事情(如:鼠标移动,用户按下了某个键等)发生了,然后系统便通知我们去处理这些事情。这样的概念一般在采用图形用户界面环境的操作系统中,是十分常见的。当用户在组件上作出动作时,就创建了一个Event 对象。 Java事件处理模型有层次事件处理模型和委托事件处理模型。由于同一个事件源上可能发生多种事件,因此java常采取了委托处理机制(Delegation Model),事件源可以把在其自身所有可能发生的事件分别授权给不同的事件处理者来处理。比如在Canvas对象上既可能发生鼠标事件,也可能发生键盘事件,该Canvas对象就可以授权给事件处理者一来处理鼠标事件,同时授权给事件处理者二来处理键盘事件。有时也将事件处理者称为监听器,主要原因也在于监听器时刻监听着事件源上所有发生的事件类型,一旦该事件类型与自己所负责处理的事件类型一致,就马上进行处理。委托模型把事件的处理委托给外部的处理实体进行处理,实现了将事件源和监听器分开的机制。8、什么叫流?简述流的分类? “流”可以被理解为一条“管道”。这条“管道”有两个端口:一端与数据源(当输入数据时)或数据宿(当输出数据时)相连,另一端与程序相连。在与数据源或是数据宿相连的端口,“管道”在读/写数据时能够应付数据源和数据宿的多样性,消化掉因数据源和数据宿的多样性带来的数据读/写的复杂性;而在与程序相连的端口,“管道”提供了输入/输出的统一界面。根据流中的数据传输的方向,流可分为输入流和输出流;根据“管道”里流动的数据的类型,流可分为字符流和字节流;根据流的建立方式和工作原理,流可分为节点流与过滤流。9、什么是线程?它产生的背景是什么?线程有几种状态?说明状态变化调用的方法。答:线程是一个进程在执行过程中产生的多条执行线索。每个线程有它产生、存在和消亡的过程,是动态的。线程由线程内核对象和线程堆栈两部分组成,相对于组成进程的内核对象及虚拟地址空间,线程使用的系统资源比进程少得多。它产生的背景是:操作系统按照一定的策略(优先级、循环等)调度各个进程执行,以最大限度地利用计算机的各种资源。一个进程运行期间,拥有的主要资源包括地址空间(存放text,data,stack)、打开文件表、资源控制信息、核心栈。除了text可被其他进程共享外,上述资源都属进程私有。因此CPU从运行一个进程转换到运行另一个进程时,为进程保存、恢复的开销很大,并发效率低。如果把进程所占私有资源与进程中的运行代码相分离,在一个地址空间中便可运行多个代码段,由此产生线程概念。线程的状态有以下四种:(1)创建状态(New Thread) (2)运行状态(Runnable)(3)不可运行状态(Not Runnable) (4)死亡状态(Dead)对于上面4种状态,各有特定的使线程返回可运行状态的方

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论