Java复习题及答案_第1页
Java复习题及答案_第2页
Java复习题及答案_第3页
Java复习题及答案_第4页
Java复习题及答案_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

共 8 页,第 页1一、判断题(每题 1 分,共 15 分)1、Java 允许创建不规则数组,即 Java 多维数组中各行的列数可以不同。 ( 1 )2、接口和类一样也可以有继承关系,而且都只能支持单继承。 ( 0 )3、所有类至少有一个构造器,构造器用来初始化类的新对象,构造器与类同名,返回类型只能为 void。 ( 0 )4、包是按照目录、子目录存放的,可以在程序中用 package 定义包,若没有 package 一行,则表示该文件中的类不属于任何一个包。 (0 )5、Java 对事件的处理是采用委托方式进行的,即将需要进行事件处理的组件委托给指定的事件处理器进行处理。 ( 1 )6、在异常处理中,若 try 中的代码可能产生多种异常则可以对应多个 catch 语句,若 catch 中的参数类型有父类子类关系,此时应该将父类放在前面,子类放在后面。 ( 0 )7、在实例方法或构造器中,this 用来引用当前对象,通过使用 this 可引用当前对象的任何成员。( 1 )8、我们可以方便地编写 Java 客户机/服务器程序,在客户机/服务器模式中,客户机一般通过套接字(Socket)使用服务器所提供的服务,Socket 由两部分组成: IP 地址和端口号。 ( 1 )9、Java 的屏幕坐标是以像素为单位,容器的左下角被确定为坐标的起点。 ( 0 )10、Java 程序里,创建新的类对象用关键字 new,回收无用的类对象使用关键字 free。 ( 0 )11、当一个方法在运行过程中产生一个异常,则这个方法会终止,但是整个程序不一定终止运行。 (1 )12、如果 f 是父类 Flower 的对象,而 r 是子类 Rose 的对象,则语句 f=r 是正确的。(1 )13、Java 系统的标准输入对象是 System.in,标准输出对象有两个,分别是 System.out 和System.err。 (1 )14、final 类中的属性和方法都必须被 final 修饰符修饰。 ( 0)15、子类可以定义与父类同名的方法,称为方法的覆盖,方法覆盖要求子类的方法与父类的方法名字和参数都相同,但返回值类型可以不同。 ( 0 )二、单项选择题(每题 2 分,共 30 分)1、若在某一个类定义中定义有如下的方法: final void aFinalFunction( );则该方法属于( c )。A、本地方法 B、解态方法 C、最终方法 D、抽象方法2、main 方法是 Java Application 程序执行的入口点,关于 main 方法的方法头以下哪项是合法的( b )。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 中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各共 8 页,第 页2不相同,传回的值也可以不相同。这种面向对象程序的特性称为( c )。A、隐藏 B、覆盖 C、重载 D、Java 不支持此特性4、在 Java applet 程序中,用户自定义的 Applet 子类常常覆盖父类的( c )方法来完成applet 界面的初始化工作。A、start( ) B、stop( ) C、init( ) D、paint( )5、以下程序段执行后将有( b )个字节被写入到文件 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、16 B、12 C、8 D、26、以下代码段执行后的输出结果为( c )。int x=-3; float y=10.0f;System.out.println(y%x);A、不能成功编译 B、-1.0 C、1.0 D、-17、编译并运行以下程序,以下描述哪个选项是正确的( a )。1. class A2. protected String toString()/tostring 只适用于对象的调用3. return super.toString();4. A、行 2 出错,不能成功编译 B、编译通过但运行时出错C、编译通过运行无异常 D、不能成功编译,行 3 出错8、假设 Foo 类有如下定义,设 f 是 Foo 类的一个实例,下列语句调用哪个是错误的?( A )public class Foo int 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、分析下面的程序代码,以下哪个说法是正确的。( B )public class Test extends A public 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); 共 8 页,第 页3A、因为 Test 没有构造方法 Test(),所以这段程序不能编译。B、如果删除 A 类中的构造方法,这个程序可以编译。C、这段程序可以通过编译,但由于方法名冲突,引起一个运行时错误。D、编译成功,运行情况良好。10、类 Test1 定义如下:1public class Test12 public float aMethod(float a, float b) 34将以下哪种方法插入行 3 是不合法的。(B )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、编译运行以下程序后,关于输出结果的说明正确的是 ( C )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则以上程序段的输出结果为 54721 。5、写出以下程序的功能。显示输出文件 newfile.java 的内容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、以下程序的输出结果为 123 。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、以下程序的输出结果为 Inside main() Mug(1) c1 initialized Mugs()。共 8 页,第 页6class 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、以下程序的输出结果为 AB 。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)共 8 页,第 页7 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); 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15C B C C B C A A B B C A A D D1 程序发生异常,捕获异常后并输出:IO Exception 2 false,true3 one,three 4 5 4 7 2 15 显示输出文件 newfile.java 的内容 6 0127Inside main()Mug(1)c1 initializedMugs()8 A B9客户端发送一个实数,服务器端接收并计算该数的平方,然后将求得的平方值发回至客户端显示。客户端可继续向服务器发送直至有一方退出。(4 分)value received from client: 2.0result found: 4.0(4 分)1、在 java 中如果声明一个类为 final,表示什么意思?答:final 是最终的意思,final 可用于定义变量、方法和类但含义不同,声明为 final 的类不能被继承。共 8 页,第 页82、父类的构造方法是否可以被子类覆盖(重写)?答:父类的构造方法不可以被子类覆盖,因为父类和子类的类名是不可能一样的。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 页,第 页98. 垃圾回收的优点和原理。并考虑 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 中的异常处理机制的简单原理和应用。 共 8 页,第 页10当 JAVA 程序违反了 JAVA 的语义规则时,JAVA 虚拟机就会将发生的错误表示为一个异常。违反语义规则包括 2 种情况。一种是 JAVA 类库内置的语义检查。例如数组下标越界,会引发 IndexOutOfB

温馨提示

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

评论

0/150

提交评论