Java复习题及答案.doc_第1页
Java复习题及答案.doc_第2页
Java复习题及答案.doc_第3页
Java复习题及答案.doc_第4页
Java复习题及答案.doc_第5页
免费预览已结束,剩余7页可下载查看

下载本文档

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

文档简介

一、判断题(每题1分,共15分)1、Java允许创建不规则数组,即Java多维数组中各行的列数可以不同。 ( )2、接口和类一样也可以有继承关系,而且都只能支持单继承。( )3、所有类至少有一个构造器,构造器用来初始化类的新对象,构造器与类同名,返回类型只能为void。 ( )4、包是按照目录、子目录存放的,可以在程序中用package定义包,若没有package一行,则表示该文件中的类不属于任何一个包。 ( )5、Java对事件的处理是采用委托方式进行的,即将需要进行事件处理的组件委托给指定的事件处理器进行处理。 ( )6、在异常处理中,若try中的代码可能产生多种异常则可以对应多个catch语句,若catch中的参数类型有父类子类关系,此时应该将父类放在前面,子类放在后面。 ( )7、在实例方法或构造器中,this用来引用当前对象,通过使用this可引用当前对象的任何成员。 ( )8、我们可以方便地编写Java客户机/服务器程序,在客户机/服务器模式中,客户机一般通过套接字(Socket)使用服务器所提供的服务,Socket由两部分组成:IP地址和端口号。 ( )9、Java的屏幕坐标是以像素为单位,容器的左下角被确定为坐标的起点。 ( )10、Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free。 ( )11、当一个方法在运行过程中产生一个异常,则这个方法会终止,但是整个程序不一定终止运行。 ( )12、如果f是父类Flower的对象,而r是子类Rose的对象,则语句f=r是正确的。( )13、Java系统的标准输入对象是System.in,标准输出对象有两个,分别是System.out和System.err。 ( )14、final类中的属性和方法都必须被final修饰符修饰。 ( )15、子类可以定义与父类同名的方法,称为方法的覆盖,方法覆盖要求子类的方法与父类的方法名字和参数都相同,但返回值类型可以不同。 ( )二、单项选择题(每题2分,共30分)1、若在某一个类定义中定义有如下的方法: final void aFinalFunction( );则该方法属于( )。A、本地方法 B、解态方法 C、最终方法 D、抽象方法2、main方法是Java Application程序执行的入口点,关于main方法的方法头以下哪项是合法的( )。A、 public static void main()B、 public static void main(String args)C、 public static int main(String args)D、 public void main(String arg )3、在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序的特性称为( )。A、隐藏 B、覆盖 C、重载 D、Java不支持此特性4、在Java applet程序中,用户自定义的Applet子类常常覆盖父类的( )方法来完成applet界面的初始化工作。A、start( ) B、stop( )C、init( )D、paint( )5、以下程序段执行后将有( )个字节被写入到文件afile.txt中。 tryFileOutputStream fos=new FileOutputStream(“afile.txt”);DataOutputStream dos=new DataOutputStream(fos);dos.writeInt(3);dos.writeDouble(0.01);dos.close();fos.close( );catch(IOException e) A、16B、12C、8D、26、以下代码段执行后的输出结果为( )。int x=-3; float y=10.0f;System.out.println(y%x);A、不能成功编译B、-1.0C、1.0D、-17、编译并运行以下程序,以下描述哪个选项是正确的( )。1. class A2.protected String toString()3.return super.toString();4.A、行2出错,不能成功编译B、编译通过但运行时出错C、编译通过运行无异常D、不能成功编译,行3出错8、假设Foo类有如下定义,设f是Foo类的一个实例,下列语句调用哪个是错误的?( )public class Fooint i;static String s;void imethod() static void smethod() A、Foo.imethod();B、f.imethod();C、System.out.println(f.i);D、Foo.smethod()9、分析下面的程序代码,以下哪个说法是正确的。( )public class Test extends Apublic static void main(String args)Test t=new Test();t.print();class A String s; A(String s) this.s=s; public void print()System.out.println(s);A、因为Test没有构造方法Test(),所以这段程序不能编译。B、如果删除A类中的构造方法,这个程序可以编译。C、这段程序可以通过编译,但由于方法名冲突,引起一个运行时错误。D、编译成功,运行情况良好。10、类Test1定义如下:1public class Test12public float aMethod(float a, float b) 34将以下哪种方法插入行3是不合法的。( )A、public float aMethod(float a, float b,float c) B、public float aMethod(float c,float d) C、public int aMethod(int a, int b) D、private float aMethod(int a,int b,int c) 11、编译运行以下程序后,关于输出结果的说明正确的是 ( )public class Conditionalpublic static void main(String args )int x=1;System.out.println(“value is “+ (x10)break Label1;System.out.print(“two,”);System.out.println(“three”);4、阅读以下程序:import java.io.* ; public class Reverse public static void main(String args ) int i , n =5 ; int a = new int5; for ( i = 0 ; i = 0 ; i - ) System.out.print(ai+ ); System.out.println( ); 若输入:12745则以上程序段的输出结果为 。5、写出以下程序的功能。import java.io.*;class FileApppublic static void main(String args) throws IOExceptionint b;FileInputStream fileIn=new FileInputStream(“newfile.java”);while(b=fileIn.read()!=-1)System.out.print(char)b);6、以下程序的输出结果为 。class Teststatic int num;int c;public Test( )num+;public static void main(String args)System.out.print(x.num);Test x=new Test();System.out.print(x.num);Test x=new Test();System.out.println(x.num);7、以下程序的输出结果为 。class Mug Mug(int marker) System.out.println(Mug( + marker + ); void f(int marker) System.out.println(f( + marker + );public class Mugs Mug c1;c1 = new Mug(1);System.out.println(c1 initialized);Mugs() System.out.println(Mugs();public static void main(String args) System.out.println(Inside main();Mugs x = new Mugs();8、以下程序的输出结果为 。class Apublic A()System.out.print(“ A ”);public class B extends Apublic B()System.out.print(“ B ”);public static void main(String args)new B( );9、阅读以下程序段,假定服务器端和客户端程序正常运行无异常发生,请回答以下问题:描述程序功能。(4分)假定在客户端输入2.0,请写出服务器端的输出结果。(4分) /服务器端程序import java.io.*;import .*;public class Server public static void main(String args) try ServerSocket serverSocket = new ServerSocket(8000); Socket connectToClient = serverSocket.accept(); DataInputStream isFromClient = new DataInputStream( connectToClient.getInputStream(); DataOutputStream osToClient = new DataOutputStream( connectToClient.getOutputStream(); while (true) double value = isFromClient.readDouble(); System.out.println(value received from client: +value); double result = value*value; osToClient.writeDouble(result); osToClient.flush(); System.out.println(result: + result); catch(IOException ex) System.err.println(ex); /客户端程序import java.io.*;import .*;public class Client public static void main(String args) try Socket connectToServer = new Socket(localhost, 8000); DataInputStream isFromServer = new DataInputStream( connectToServer.getInputStream(); DataOutputStream osToServer = new DataOutputStream(connectToServer.getOutputStream(); while (true) System.out.print(Please enter a double value: ); double value=Double.parseDouble(new BufferedReader(new InputStreamReader(System.in),1).readLine(); osToServer.writeDouble(value); osToServer.flush(); double result = isFromServer.readDouble(); System.out.println(result received from the server is + result); catch (IOException ex) System.err.println(ex); 123456789101112131415123456789101112131415CBCCBCAABBCAADD1程序发生异常,捕获异常后并输出:IO Exception2false,true3one,three45 4 7 2 15显示输出文件newfile.java的内容60127Inside main()Mug(1)c1 initializedMugs()8A B9客户端发送一个实数,服务器端接收并计算该数的平方,然后将求得的平方值发回至客户端显示。客户端可继续向服务器发送直至有一方退出。(4分)value received from client: 2.0result found: 4.0(4分)1、在java中如果声明一个类为final,表示什么意思?答:final是最终的意思,final可用于定义变量、方法和类但含义不同,声明为final的类不能被继承。2、父类的构造方法是否可以被子类覆盖(重写)?答:父类的构造方法不可以被子类覆盖,因为父类和子类的类名是不可能一样的。3、请讲述String 和StringBuffer的区别。答:String 类所定义的对象是用于存放“长度固定”的字符串。StringBuffer类所定义的对象是用于存放“长度可变动”的字符串。4、如果有两个类A、B(注意不是接口),你想同时使用这两个类的功能,那么你会如何编写这个C类呢?答:因为类A、B不是接口,所以是不可以直接继承的,但可以将A、B类定义成父子类,那么C类就能实现A、B类的功能了。假如A为B的父类,B为C的父类,此时C就能实现A、B的功能。5、结合Java视频Lesson5(多线程),分析sleep()和wait()方法的区别。答: Sleeping睡眠的意思 : sleep() 方法用来暂时中止执行的线程。在睡眠后,线程将进入就绪状态。waiting等待的意思: 如果调用了 wait() 方法,线程将处于等待状态。用于在两个或多个线程并发运行时。6、谈谈你对抽象类和接口的理解。答:定义抽象类的目的是提供可由其子类共享的一般形式、子类可以根据自身需要扩展抽象类、抽象类不能实例化、抽象方法没有函数体、抽象方法必须在子类中给出具体实现。他使用extends来继承。接口:一个接口允许一个类从几个接口继承而来,Java 程序一次只能继承一个类但可以实现几个接口,接口不能有任何具体的方法,接口也可用来定义可由类使用的一组常量。其实现方式是interface来实现。7. Java的接口和C+的虚类的相同和不同处。 由于Java不支持多继承,而有可能某个类或对象要使用分别在几个类或对象里面的方法或属性,现有的单继承机制就不能满足要求。与继承相比,接口有更高的灵活性,因为接口中没有任何实现代码。当一个类实现了接口以后,该类要实现接口里面所有的方法和属性,并且接口里面的属性在默认状态下面都是 public static,所有方法默认情况下是public.一个类可以实现多个接口。 8. 垃圾回收的优点和原理。并考虑2种回收机制。 Java语言中一个显著的特点就是引入了垃圾回收机制,使c+程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清楚和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收。 9.谈谈final, finally, finalize的区别。 Final修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。 Finally再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。 Finalize方法名。Java 技术允许使用 finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。 10.数组有没有length()这个方法? String有没有length()这个方法?举例说明使用方法? 数组没有length()这个方法,有length的属性。 String有有length()这个方法。 11. Java中的异常处理机制的简单原理和应用。 当JAVA程序违反了JAVA的语义规则时,JAVA虚拟机就会将发生的错误表示为一个异常。违反语义规则包括2种情况。一种是JAVA类库内置的语义检查。例如数组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发 NullPointerException.另一种情况就是JAVA允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用 throw关键字引发异常。所有的异常都是java.lang.Thowable的子类。 一、单选择题(每小题2分,共10分)1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B )。 A. .java B. .class C. .html D. .exe2、设 x = 1 , y = 2 , z = 3,则表达式 yz/x 的值是( A )。 A. 3 B. 3. 5 C. 4 D. 53、在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的( D )方法来完成一些画图操作。 A. start( ) B. stop( ) C. init( ) D. paint( )4、不允许作为类及类成员的访问控制符的是( C )。 A. public B. private C. static D. protected5、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A )。 A. static void method( ) B. public void meth

温馨提示

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

评论

0/150

提交评论